GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: phylmd/rrtm/su0phy.F90 Lines: 268 408 65.7 %
Date: 2023-06-30 12:56:34 Branches: 27 118 22.9 %

Line Branch Exec Source
1
1
SUBROUTINE SU0PHY(KULOUT)
2
3
USE PARKIND1  ,ONLY : JPIM     ,JPRB
4
USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
5
6
!USE YOMLUN   , ONLY : NULOUT   ,NULNAM  MPL 14.04.09
7
USE YOMLUN   , ONLY : NULOUT
8
! Ce qui concerne LSLPHY commente par MPL 24.11.08
9
!USE YOMSLPHY , ONLY : LSLPHY
10
USE YOMPHY   , ONLY : NBITER   ,NOIR, NDPSFI, NPHYREP ,LMPHYS   ,LREASUR  ,&
11
 & LCAPE    ,LCONDWT  ,LCVPP    ,LCVDD    ,LHUNEG   ,&
12
 & LNEIGE   ,LRNUMX   ,LCLSATUR,L2PHYS    ,LCVRA    ,LGWD     ,&
13
 & LGWDC    ,LHMTO    ,LNEBCO   ,LNEBN    ,LNEBR    ,LQXRTGH, LHUCN,&
14
 & LNEBT    ,LND2DIFF  ,LOZONE   ,LRAY     ,LRAYFM   ,LRAYFM15 ,&
15
 & LRRMES   ,LSFHYD   ,LSNV     ,LSOLV    ,LFGEL    ,&
16
 & LSRCON   ,LSRCONT  ,LSLC     ,LRRGUST  ,LRELAXW  ,&
17
 & LAEROSEA ,LAEROLAN ,LAEROSOO ,LAERODES ,LAEROVOL ,LAEROSUL ,LRELAXT  ,&
18
 & LO3ABC   ,LSTRA    ,LSTRAS   ,LTHERMO  ,LVDIF    ,&
19
 & LRAYLU   ,LREWS    ,LRPROX   ,LRMIX    ,LRSTAB   ,&
20
 & LRAUTOEV ,LRAYPL   ,LCVLIS   ,LCVCAS   ,LVGSN    ,&
21
 & LNEBNXR  ,LFPCOR   ,LNOIAS   ,CGMIXLEN ,LPRGML   ,LGLT     ,&
22
 & LNEWD    ,LRTPP    ,LRTDL    ,LDIFCONS ,LECT     ,&
23
 & LCVPGY   ,LPROCLD  ,LEVAPP   ,LCOLLEC  ,LPTKE    ,L3MT     ,&
24
 & LCVPRO   ,LCDDPRO  ,LSCMF    ,LVOIGT   ,LVFULL   ,&
25
 & LNSMLIS, LPHCDPI   ,&
26
 & NPHY     ,JPHYEC   ,JPHYMF   ,JPHYARO  , &
27
 & LAJUCV   ,LPBLE    ,LNEBGR   ,LNEBGY   ,&
28
 & LBCCOND  ,LCVRAV3  ,LZ0HSREL ,LBLVAR   ,&
29
 & LADJCLD  ,LAUTONEB ,LSSD     ,LCVPPKF  ,LECTFL ,&
30
 & LPIL     ,LPHSPSH  ,LSMROT   ,LSMNIMBT ,&
31
 & LSMTPS   ,L1DRHCRI ,LGWRHCRI ,NSMTBOT   , &
32
 & NSMDNEB  ,NPRAG    ,NPRAC    ,NPRRI    ,LSTRAPRO, LNEWSTAT
33
USE YOMARPHY , ONLY : LMPA    ,LMICRO   ,LTURB    ,&
34
 & LMSE  ,LKFBCONV ,LKFBD    ,LKFBS    ,LUSECHEM ,&
35
 & LORILAM  ,LRDUST, LBUFLUX ,CCOUPLING
36
USE YOEPHY   , ONLY : LEPHYS    ,&
37
 & LECOND   ,LECUMF   ,LEDCLD   ,LEEVAP   ,LEGWDG   ,&
38
 & LEOZOC   ,LEQNGT   ,LERADI   ,LERADS   ,&
39
 & LESHCV   ,LESICE   ,LESURF   ,LEVDIF   ,&
40
 & LAGPHY   ,LEPCLD   ,LECO2DIU ,&
41
 & LEO3CH   ,LBUD23   ,LEMETHOX ,LERA40   ,LECURR   ,LVDFTRAC ,&
42
 & LEOCWA   ,LEOCCO   ,LEOCSA   ,LMFTRAC  ,LERAIN   ,LE4ALB   ,&
43
 & RTHRFRTI ,NEPHYS_PCFULL, LEMWAVE
44
USE YOEWCOU  , ONLY : NSTPW    ,RSOUTW   ,RNORTW   ,RDEGREW  ,&
45
 & LWCOU    ,LWCOU2W
46
! Ce qui concerne RCLDTOPP commente par MPL 24.11.08
47
!USE YOECLDP  , ONLY : RCLDTOPP
48
USE YOPHLC   , ONLY : ALPHA    ,AH0      ,USTARL   ,&
49
 & USTARS   ,ALANDZ0  ,ASEAZ0   ,LSPHLC   ,LVDFLC   ,&
50
 & LSDRLC   ,LCZDEB   ,LZMCON   ,LKEXP    ,LVDFDS   ,&
51
 & LSDRDS
52
USE YOMCT0   , ONLY : NCONF    ,&
53
 & LRETCFOU ,LWRTCFOU, LAROME,LFPOS,LPC_FULL
54
USE YOMCT0B  , ONLY : LECMWF
55
! Tous les YOM* ci-dessous commentes par MPL 24.11.08
56
!USE YOMINI   , ONLY : NEINI
57
!USE YOMDFI   , ONLY : NEDFI
58
!USE YOMVRTL  , ONLY : L131TL
59
!USE YOPHNC   , ONLY : LETRAJP  ,LETRAJPT ,LERADI2  ,LERADS2   ,&
60
! & LERADSW2 ,LERADN2 ,LERADFL2 ,LEDCLD2  ,LENCLD2   ,&
61
! & LEVAPLS2 ,LEVDIF2 ,LEGWDG2  ,LECUMF2  ,LECUBM2   ,&
62
! & LECOND2  ,LEQNGT2 ,LESURF2  ,LEKPERT  ,LTRACLNPH
63
!USE YOEPHLI  , ONLY : LENOPERT
64
!USE YOMNCL   , ONLY : LNCLIN   ,LREGCL
65
USE YOMSIMPHL, ONLY : LSIMPH   ,LTRAJPS  ,LTRAJPST ,&
66
 & LSMOOTHD ,LSMOOTHA ,LSMOOTHB ,LCVRASP  ,&
67
 & LGWDSP   ,LRAYSP   ,LSTRASP  ,LVDIFSP  ,LRRMESSP ,LCLOUDS
68
USE YOMRCOEF , ONLY : LRCOEF    ,LTLADDIA ,LGLOBRAD
69
!USE YOMIOP   , ONLY : NPCKFT95 ,NEXPBT95
70
!USE YOMDYNA  , ONLY : LGWADV
71
!USE YOMCOAPHY   , ONLY : NPHYINT
72
73
!**** *SU0PHY*   - Initialize common YOxPHY controlling physics
74
75
!     Purpose.
76
!     --------
77
!           Initialize YOxPHY, the common that includes the
78
!           basic switches for the physics of the model.
79
80
!**   Interface.
81
!     ----------
82
!        *CALL* *SU0PHY(KULOUT) from SU0YOMA
83
84
!        Explicit arguments :
85
!        --------------------
86
!        KULOUT : Logical unit for the output
87
88
!        Implicit arguments :
89
!        --------------------
90
91
!     Method.
92
!     -------
93
!        See documentation
94
95
!     Externals.
96
!     ----------
97
98
!     Reference.
99
!     ----------
100
!        ECMWF Research Department documentation of the IFS
101
102
!        or
103
104
!        Documentation ARPEGE (depending on which physics will be used)
105
106
!     Author.
107
!     -------
108
!        J.-J. Morcrette                    *ECMWF*
109
!        J.-F. Geleyn for the ARPEGE rewriting.
110
111
!     Modifications.
112
!     --------------
113
!        Original : 91-11-12
114
!        Modified 92-02-22 by M. Deque (tests of consistency with *YOMDPHY*)
115
!        Modified by R. EL Khatib : 93-04-02 Set-up defaults controled by LECMWF
116
!        Modified 94-02-28 by M.  Deque  : Shallow convection clouds
117
!        Modified 93-10-28 by Ph. Dandin : FMR scheme with MF physics
118
!        Modified 93-08-24 by D. Giard (test of consistency with digital filter)
119
!        Modified by M. Hamrud    : 93-06-05 Make use of LECMWF for ECMWF
120
!        Modified 95-11-27 by M. Deque (2nd call to APLPAR)
121
!        Modified 96-01-10 by M. Janiskova (logical switches for simpl.ph.par.)
122
!        Modified 97-02-28 by J.M. Piriou (cloudiness scheme switch LNEBN)
123
!        Modified 97-04-17 by J.M. Piriou (default values)
124
!        Modified by F. Rabier    : 96-09-25 Full physics set-up for 801 job
125
!        Modified by G. Hello     : 97-07-31 Full MF physics set-up for 801
126
!        Modified by M. Deque     : 97-05-25 Frozen FMR
127
!        Modified by E.Bazile     : 97-11-18 Soil freezing (LFGEL)
128
!        Modified by M. Deque     : 98-01-05 Cleaning of NDPSFI
129
!        Modified by M. Janiskova : 98-11-18 Full MF physics set-up for 131
130
!                                 : 99-02-21 Set-up for radiation coef.
131
!        Modified by C. Jakob     : 98-04    Methane oxidation
132
!        Modified by T. Bergot    : 98-08  Full MF physics set-up for 601
133
!        Modified by E.Bazile     : 99-02-12 Superficial soil freezing (LFGELS)
134
!        Modified by L. Gerard    : 98-12-07 LSRCON
135
!        Modified by J.M. Piriou  : 99-04-19 Moon radiation
136
!        Modified 99-02-17 by K. YESSAD: options LRETCFOU, LWRTCFOU.
137
!        Modified by J.M. Piriou  : 99-06-18 LCVLIS and LCVCAS
138
!        Modified by J.M. Piriou  : 99-07-07 Introduce reproductibility in physics (NPHYREP).
139
!        Modified by D. Giard     : 2000-10-25 LVGSN (snow and vegetation)
140
!        Modified by E. Bazile    : 2000-11-12 CYCORA's default value.
141
!        Modified by F. Bouyssel  : 2001-03-03 LRRMESSP
142
!        Modified by J.M. Piriou  : 2001-11-27 LSRCONT
143
!        Modified by J.M. Piriou  : 2002-11-15 LNEBNXR
144
!        Modified by F. Bouyssel  : 2002-06-25 LCVPPLIS and LRRGUST
145
!        R. El Khatib : 2001-08-07 Pruning options
146
!        J.M. Piriou  : 2002-01-10 set default values to operational ones.
147
!        Modified by A.Beljaars   : 2002-11-12 LECURR (Ocean current)
148
!        Modified by Y. Bouteloup : 2002-03-05 LO3ABC
149
!        Modified 08-2002 C. Smith : use "w" as prognostic variable in the
150
!         semi-lag advection of vertical divergence in the NH model.
151
!        Modified by F. Bouyssel  : 2002-12-18 Cleaning of LCVPPLIS
152
!        Modified by E. Bazile      : 2003-02-13 LFPCOR
153
!        Modified by E. Bazile      : 2003-02-18 LNOIAS
154
!        Modified by M. Janiskova : 2003-05 set-up for ECMWF stat.cloud scheme
155
!        M.Hamrud      01-Oct-2003 CY28 Cleaning
156
!        P. Viterbo   ECMWF   03-12-2004  Include user-defined RTHRFRTI
157
!        Modified by Y Seity      : 2004-11-16 For AROME setup, default values
158
!            for namarphy keys,read namarphy, switch off arp/ald physics keys
159
!        Modified by R. Brozkova : 2004-11 modifs for Xu-Randall cloud. scheme
160
!        P. Marquet and F. Bouyssel : 2004-08-18 (Lopez)
161
!        G. Hello : 2005-04-25 Lground initialization (surfex and arome)
162
!        Y. Seity : 2005-09-25 LRDUST, LORILAM and LUSECHEM initialisation
163
!                 for AROME
164
!        T. Kovacic : 2006-03-17 LPHCDPI, NPHY, LBUFLUX; for DDH and BUDGET
165
!        Modified by F. Bouyssel  : 2005-01-25 Change default of LNSMLIS
166
!        D.Salmond     22-Nov-2005 Mods for coarser/finer physics
167
!        P. Lopez      14-02-2006  Added switch LTRACLNPH for including
168
!                                  tracers in linearized physics
169
!        R.Brozkova : pre ALARO 0 modset: mixing lengths computation
170
!        Modified by GMGEC/EAC   : 2006-03 list of modif.
171
!                 P. Marquet  : 99-01-18 Dry Conv. Adj.     (LAJUCV)
172
!                 P. Marquet  : 02-02-14 YOMPHY
173
!                 P. Marquet  : 02-06-18 LBCCOND (Becht/Chab ACCOND)
174
!                 P. Marquet  : 02-08-30 LCVRAV3    (old ACCVIMP_V3)
175
!                     and new cloud model : 2006-03-03
176
!        Modified by E. Bazile    : 2006-04-11 Add LPBLE in case of LECT
177
!        Modified by E. Bazile    : 2006-04-20 Add LADJCLD,LCVPPKF, LECTFL
178
!                 JF. Gueremy : LZ0HSREL initialised (used in ACHMT)
179
!        Modified by F. Bouyssel  : 2006-10-30 Add LAUTONEB, LSSD
180
!        Modified by F. Vana     : 2006-01-30 LPTKE
181
!        Modifed by D. Banciu    : 2006-08-31 LND2DIFF
182
!        M. Bellus : 28-Sep-2006 ALARO-0 phasing: L3MT,LCVPRO,LCDDPRO,LSCMF,
183
!                    LVOIGT,LVFULL,LPIL,LPHSPSH,LSMROT,LSMNIMBT,LSMTPS,
184
!                    L1DRHCRI,LGWRHCRI,NSMTBOT,NSMDNEB,NPRAG,NPRAC,NPRRI,
185
!                    LSTRAPRO,LNEWSTAT ; removed duplicity in LPBLE
186
!        JJMorcrette 20060721 MODIS albedo
187
!     ------------------------------------------------------------------
188
189
IMPLICIT NONE
190
191
INTEGER(KIND=JPIM),INTENT(IN)    :: KULOUT
192
193
!     ------------------------------------------------------------------
194
195
INTEGER(KIND=JPIM) :: IERR
196
REAL(KIND=JPRB) :: ZHOOK_HANDLE
197
198
!     ------------------------------------------------------------------
199
200
#include "abor1.intfb.h"
201
#include "posnam.intfb.h"
202
#include "suscm.intfb.h"
203
204
!     ------------------------------------------------------------------
205
206
#include "namphy.h"
207
!#include "namarphy.h"
208
#include "naephy.h"
209
#include "naphlc.h"
210
!#include "namtrajp.h"
211
!#include "namsimphl.h"
212
!#include "namrcoef.h"
213
214
!     ------------------------------------------------------------------
215
1
print*,'Dans SUOPHY ', KULOUT
216
217
1
IF (LHOOK) CALL DR_HOOK('SU0PHY',0,ZHOOK_HANDLE)
218
219
!     ------------------------------------------------------------------
220
221
!*       1.    Set default values.
222
!              -------------------
223
224
!*       1.1.1 Set default values for Meteo-France physics
225
!              -------------------------------------------
226
227
1
LMPHYS=.FALSE.
228
1
LREASUR=.TRUE.
229
230
1
CGMIXLEN='Z'
231
1
LPRGML=.FALSE.
232
1
LCAPE=.FALSE.
233
1
LCONDWT=.FALSE.
234
1
LCVCAS=.FALSE.
235
1
LCVLIS=.FALSE.
236
1
LCVPP=.FALSE.
237
1
LCVPPKF=.FALSE.
238
1
LCVDD=.FALSE.
239
1
LHUNEG=.TRUE.
240
1
LNEIGE=.TRUE.
241
1
LRNUMX=.FALSE.
242
1
LCLSATUR=.FALSE.
243
1
LVOIGT=.FALSE.
244
1
LVFULL=.FALSE.
245
1
LRRGUST=.FALSE.
246
1
L2PHYS=.FALSE.
247
1
LO3ABC=.FALSE.
248
1
LAEROSEA=.FALSE.
249
1
LAEROLAN=.FALSE.
250
1
LAEROSOO=.FALSE.
251
1
LAERODES=.FALSE.
252
1
LAEROVOL=.FALSE.
253
1
LAEROSUL=.FALSE.
254
1
LRELAXT=.FALSE.
255
1
LRELAXW=.FALSE.
256
1
LE4ALB=.FALSE.
257
1
LGLT=.FALSE.
258
1
LNEWD=.FALSE.
259
1
LDIFCONS=.FALSE.
260
1
LECT=.FALSE.
261
1
LPTKE=.FALSE.
262
1
LECTFL=.FALSE.
263
1
LPBLE=.FALSE.
264
1
LCVPGY=.FALSE.
265
1
L3MT=.FALSE.
266
267
1
LCVRA=.FALSE.
268
1
LGWDC=.FALSE.
269
1
LGWD=.FALSE.
270
1
LHMTO=.FALSE.
271
1
LNEBCO=.FALSE.
272
1
LNEBN=.FALSE.
273
1
LNEBNXR=.FALSE.
274
1
LNEBR=.FALSE.
275
1
LNEBT=.FALSE.
276
1
LND2DIFF=.FALSE.
277
1
LQXRTGH=.FALSE.
278
1
LHUCN=.FALSE.
279
1
LOZONE=.FALSE.
280
1
LRAY=.FALSE.
281
1
LRAYLU=.FALSE.
282
1
LREWS=.FALSE.
283
1
LRPROX=.FALSE.
284
1
LRMIX=.FALSE.
285
1
LRSTAB=.FALSE.
286
1
LRAUTOEV=.FALSE.
287
1
LRTPP=.FALSE.
288
1
LRTDL=.FALSE.
289
1
LRAYPL=.FALSE.
290
1
LRAYFM=.FALSE.
291
1
LRAYFM15=.FALSE.
292
1
LRRMES=.FALSE.
293
1
LSFHYD=.FALSE.
294
1
LSNV=.FALSE.
295
1
LSOLV=.FALSE.
296
1
LFGEL=.FALSE.
297
1
LSRCON=.FALSE.
298
1
LSRCONT=.FALSE.
299
1
LSLC=.FALSE.
300
1
LSTRA=.FALSE.
301
1
LSTRAS=.FALSE.
302
1
LTHERMO=.FALSE.
303
1
LVDIF=.FALSE.
304
1
LVGSN=.FALSE.
305
1
LFPCOR=.FALSE.
306
1
LNOIAS=.FALSE.
307
1
LPHCDPI=.FALSE.
308
1
LBLVAR=.FALSE.
309
310
1
LZ0HSREL=.FALSE.
311
312
1
NBITER=2
313
1
NDPSFI=0
314
1
NPHYREP=1
315
1
NOIR=0
316
317
! ---------------------------------------------------
318
! ALARO-0 (cloud)
319
! ---------------------------------------------------
320
1
LPIL=.FALSE.
321
1
LSTRAPRO=.FALSE.
322
1
LNEWSTAT=.TRUE.
323
1
LPHSPSH=.FALSE. ! Pseudo Historic Surface Precip Sensible Heat Flux
324
1
LSMROT=.FALSE.
325
1
LSMTPS=.FALSE.
326
1
LSMNIMBT=.FALSE.
327
1
L1DRHCRI=.FALSE.
328
1
LGWRHCRI=.FALSE.
329
1
NSMTBOT=0 ! interpolate
330
1
NSMDNEB=2 ! gradient limitation
331
1
NPRAG=1
332
1
NPRAC=1
333
1
NPRRI=1
334
! ---------------------------------------------------
335
! ALARO-0 (prognostic convection)
336
! ---------------------------------------------------
337
1
LCVPRO=.FALSE.
338
1
LCDDPRO=.FALSE.
339
1
LSCMF=.FALSE.
340
341
! - - - - - - - - - - - - - - - - - - - - - - - - - -
342
! Cloud and precipitation prognostic scheme (Lopez) :
343
! - - - - - - - - - - - - - - - - - - - - - - - - - -
344
345
1
LPROCLD=.FALSE.
346
1
LEVAPP=.TRUE.
347
1
LCOLLEC=.TRUE.
348
1
LNSMLIS=.TRUE.
349
1
LADJCLD=.TRUE.
350
1
LAUTONEB=.FALSE.
351
1
LSSD=.FALSE.
352
353
!AROME physics
354
1
LMPA=.FALSE.
355
1
LMICRO=.FALSE.
356
1
LTURB=.FALSE.
357
1
LMSE=.FALSE.
358
1
LKFBCONV=.FALSE.
359
1
LKFBD=.FALSE.
360
1
LKFBS=.FALSE.
361
1
LUSECHEM=.FALSE.
362
1
LORILAM=.FALSE.
363
1
LRDUST=.FALSE.
364
1
LBUFLUX=.TRUE.
365
1
CCOUPLING='E'
366
367
! - - - - - - - - - - -
368
! Module YOMPHY :
369
! - - - - - - - - - - -
370
371
1
LAJUCV=.FALSE.
372
1
LNEBGR=.FALSE.
373
1
LNEBGY=.FALSE.
374
1
LBCCOND=.FALSE.
375
376
1
LCVRAV3=.FALSE.
377
378
!*    1.1.2  Set default values for simplified physical parametrization
379
!            of Meteo-France
380
!     -----------------------------------------------------------------
381
382
1
LSIMPH=.FALSE.
383
1
LTRAJPS=.FALSE.
384
1
LTRAJPST=.FALSE.
385
1
LSMOOTHD=.FALSE.
386
1
LSMOOTHA=.FALSE.
387
1
LSMOOTHB=.FALSE.
388
1
LCLOUDS=.FALSE.
389
390
1
LCVRASP=.FALSE.
391
1
LGWDSP=.FALSE.
392
1
LRAYSP=.FALSE.
393
1
LSTRASP=.FALSE.
394
1
LVDIFSP=.FALSE.
395
1
LRRMESSP=.FALSE.
396
397
1
LRCOEF=.FALSE.
398
1
LTLADDIA=.FALSE.
399
1
LGLOBRAD=.FALSE.
400
401
!*    1.2.1  Set default values for ECMWF physics package
402
!            --------------------------------------------
403
404
1
LEPHYS=.FALSE.
405
1
LAGPHY=.TRUE.
406
407
1
LECOND=.FALSE.
408
1
LEPCLD=.FALSE.
409
1
LECUMF=.FALSE.
410
1
LEDCLD=.FALSE.
411
1
LEEVAP=.TRUE.
412
1
LEGWDG=.FALSE.
413
1
LEOZOC=.FALSE.
414
1
LEQNGT=.FALSE.
415
1
LERADI=.FALSE.
416
1
LERADS=.FALSE.
417
1
LESHCV=.FALSE.
418
1
LESICE=.TRUE.
419
1
LESURF=.FALSE.
420
1
LEVDIF=.FALSE.
421
1
LEOCWA=.FALSE.
422
1
LEOCCO=.FALSE.
423
1
LEOCSA=.FALSE.
424
1
LEMETHOX=.FALSE.
425
1
LERA40=.FALSE.
426
1
LECURR=.FALSE.
427
1
LVDFTRAC=.TRUE.
428
1
LMFTRAC=.TRUE.
429
1
LERAIN=.FALSE.
430
LE4ALB=.FALSE.
431
1
RTHRFRTI=0.0_JPRB
432
!NPHYINT=0
433
LE4ALB=.FALSE.
434
435
!-------------------------------------------------------
436
! pressure above which cloud scheme is not called
437
! !!!WARNING!!! this has to be in the part of the domain
438
! where the pure pressure level grid is used, otherwise
439
! the code is not bit-reproducible!!!
440
! Don't call the cloud scheme for pressures lower than 1hPa
441
!RCLDTOPP=100.0_JPRB
442
443
!--------------------------------------------------------
444
445
!*     1.2.2  Set-up linearized physical parametrization of ECMWF
446
!             ---------------------------------------------------
447
448
!LETRAJP = .FALSE.
449
!LETRAJPT= .FALSE.
450
!LERADI2 = .FALSE.
451
!LERADS2 = .FALSE.
452
!LERADSW2= .FALSE.
453
!LERADN2 = .FALSE.
454
!LERADFL2= .FALSE.
455
!LEDCLD2 = .FALSE.
456
!LENCLD2 = .FALSE.
457
!LEVAPLS2= .FALSE.
458
!LEVDIF2 = .FALSE.
459
!LEGWDG2 = .FALSE.
460
!LECUMF2 = .FALSE.
461
!LECUBM2 = .FALSE.
462
!LECOND2 = .FALSE.
463
!LEQNGT2 = .FALSE.
464
!LESURF2 = .FALSE.
465
!LEKPERT = .FALSE.
466
!LNCLIN  = .FALSE.
467
!LREGCL  = .FALSE.
468
!LTRACLNPH = .FALSE.
469
470
! No perturbation of surface arrays
471
!LENOPERT = .TRUE.
472
473
!*       Packing parameters
474
!        -------------------
475
!NPCKFT95 = 1
476
!NEXPBT95 = 6
477
478
!     LOGICAL FOR THE VERT DIFF SCHEME VDIFLCZ USED IN CONF 601
479
480
1
LSPHLC  = .FALSE.
481
1
LVDFLC  = .FALSE.
482
1
LVDFDS  = .TRUE.
483
1
LSDRLC  = .TRUE.
484
1
LSDRDS  = .FALSE.
485
1
LCZDEB  = .FALSE.
486
1
LZMCON  = .TRUE.
487
1
LKEXP   = .TRUE.
488
1
ALPHA   = 3._JPRB
489
1
AH0     = 1000.0_JPRB
490
1
USTARL  = 0.5_JPRB
491
1
USTARS  = 0.2_JPRB
492
1
ALANDZ0 = 0.05_JPRB
493
1
ASEAZ0  = 0.0005_JPRB
494
495
1
NSTPW=2
496
!     NSTPW=30
497
498
1
LWCOU=.FALSE.
499
1
LWCOU2W=.FALSE.
500
501
!  Setup for 3 degree resolution wave model
502
503
!     RNORTW= 72.0
504
!     RSOUTW=-63.0
505
!     RDEGREW=3.0
506
507
!  Setup for 1.5 degree resolution wave model
508
509
1
RNORTW= 81.0_JPRB
510
1
RSOUTW=-81.0_JPRB
511
1
RDEGREW=1.5_JPRB
512
513
!        1.3 Modify default values according to LECMWF
514
515
1
IF (LECMWF) THEN
516
  LEPCLD=.TRUE.
517
  LEVDIF=.TRUE.
518
  LEOCWA=.FALSE.
519
  LEOCCO=.FALSE.
520
  LEOCSA=.TRUE.
521
  LESURF=.TRUE.
522
  LECOND=.FALSE.
523
  LECUMF=.TRUE.
524
  LEEVAP=.TRUE.
525
  LEGWDG=.TRUE.
526
  LEOZOC=.TRUE.
527
  LEQNGT=.TRUE.
528
  LERADI=.TRUE.
529
  LERADS=.TRUE.
530
  LESICE=.TRUE.
531
  LEDCLD=.TRUE.
532
  LEO3CH=.FALSE.
533
  LECO2DIU=.FALSE.
534
  LEMETHOX=.TRUE.
535
  IF(NCONF == 1) THEN
536
    LEPHYS=.TRUE.
537
  ENDIF
538
  IF(NCONF == 131) THEN
539
!   LERADI2 = .TRUE.
540
!   LERADS2 = .TRUE.
541
!   LEVDIF2 = .TRUE.
542
!   LEGWDG2 = .TRUE.
543
!   LECUMF2 = .TRUE.
544
!   LECOND2 = .TRUE.
545
!    IF(L131TL) THEN
546
!      LEPHYS=.TRUE.
547
!      LECOND=.TRUE.
548
!      LEPCLD=.FALSE.
549
!    ENDIF
550
    LSPHLC=.TRUE.
551
    LVDFLC=.TRUE.
552
    LSDRLC=.TRUE.
553
    LZMCON=.TRUE.
554
    LKEXP =.TRUE.
555
  ENDIF
556
  IF (NCONF == 401 .OR. NCONF == 501) THEN
557
    LEPHYS = .TRUE.
558
    LECOND = .TRUE.
559
    LEPCLD = .FALSE.
560
561
!   LETRAJP = .TRUE.
562
!   LERADI2 = .TRUE.
563
!   LERADS2 = .TRUE.
564
!   LEVDIF2 = .TRUE.
565
!   LEGWDG2 = .TRUE.
566
!   LECUMF2 = .TRUE.
567
!   LECOND2 = .TRUE.
568
  ENDIF
569
570
  IF(NCONF == 601.OR.NCONF == 801) THEN
571
572
!      Full physics when computing the trajectory
573
574
    LEPHYS=.TRUE.
575
576
!      Simple scheme for TL and ADJ
577
578
    LSPHLC  = .TRUE.
579
    LVDFLC  = .TRUE.
580
    LVDFDS  = .TRUE.
581
    LSDRLC  = .TRUE.
582
    LSDRDS  = .TRUE.
583
    LCZDEB  = .FALSE.
584
    LZMCON  = .TRUE.
585
    LKEXP   = .TRUE.
586
    ALPHA   = 3._JPRB
587
    AH0     = 1000.0_JPRB
588
    USTARL  = 0.5_JPRB
589
    USTARS  = 0.2_JPRB
590
    ALANDZ0 = 0.05_JPRB
591
    ASEAZ0  = 0.0005_JPRB
592
593
  ENDIF
594
  NPHY = JPHYEC
595
ELSE
596
  IF ((NCONF == 1).OR.(NCONF == 131).OR.(NCONF == 401)&
597
     & .OR.(NCONF == 501).OR.(NCONF == 601)&
598



1
     & .OR.(NCONF == 701).OR.(NCONF == 801)) THEN
599
    LAGPHY=.FALSE.
600
    LCVCAS=.TRUE.
601
    LCVDD=.TRUE.
602
    LCVLIS=.TRUE.
603
    LCVPP=.TRUE.
604
    LSRCONT=.FALSE.
605
    LCVRA=.TRUE.
606
    LFGEL=.TRUE.
607
    LGWD=.TRUE.
608
    LHMTO=.TRUE.
609
    LMPHYS=.TRUE.
610
    LNEBN=.TRUE.
611
    LNEBT=.FALSE.
612
    LNEBNXR=.FALSE.
613
    LNEIGE=.TRUE.
614
    LRAY=.TRUE.
615
    LRAYLU=.TRUE.
616
    LRAYPL=.TRUE.
617
    LRRMES=.TRUE.
618
    LSFHYD=.TRUE.
619
    LSOLV=.TRUE.
620
    LSRCON=.TRUE.
621
    LSTRA=.TRUE.
622
    LTHERMO=.TRUE.
623
    LVDIF=.TRUE.
624
    NPHY = JPHYMF
625
    IF(LAROME.AND..NOT.LFPOS) THEN
626
      !extinction of MF phsic's keys for arome's run
627
      !lfpos is added for 927 confs for example.
628
      LCVRA=.FALSE.
629
      LGWD=.FALSE.
630
      LGWDC=.FALSE.
631
      LNEBCO=.FALSE.
632
      LNEBN=.FALSE.
633
      LNEBR=.FALSE.
634
      LNEBT=.FALSE.
635
      LOZONE=.FALSE.
636
      LRAY=.FALSE.
637
      LRAYLU=.FALSE.
638
      LREWS=.FALSE.
639
      LRAYPL=.FALSE.
640
      LRAYFM=.FALSE.
641
      LRAYFM15=.FALSE.
642
      LRRMES=.FALSE.
643
      LSFHYD=.FALSE.
644
      LSNV=.FALSE.
645
      LSOLV=.FALSE.
646
      LFGEL=.FALSE.
647
      LSTRA=.FALSE.
648
      LSTRAS=.FALSE.
649
      LVDIF=.FALSE.
650
      !initialisation of AROME's physic ones
651
      LMPA=.TRUE.
652
      LMICRO=.FALSE.
653
      LTURB=.FALSE.
654
      LMSE=.FALSE.
655
      LKFBCONV=.FALSE.
656
      LUSECHEM=.FALSE.
657
      LKFBD=.FALSE.
658
      LKFBS=.FALSE.
659
      LUSECHEM=.FALSE.
660
      LORILAM=.FALSE.
661
      LRDUST=.FALSE.
662
      NPHY = JPHYARO
663
    ENDIF
664
  ENDIF
665
ENDIF
666
667
!     ------------------------------------------------------------------
668
669
!*       2.    Modify default values.
670
!              ----------------------
671
672
! Ce qui concerne NAMPHY commente par MPL le 14.04.09
673
!CALL POSNAM(NULNAM,'NAMPHY')
674
!READ(NULNAM,NAMPHY)
675
676
! Ce qui concerne NAMARPHY commente par MPL le 24.11.08
677
!CALL POSNAM(NULNAM,'NAMARPHY')
678
!READ(NULNAM,NAMARPHY)
679
!IF(LMSE) THEN
680
!  LSOLV=.FALSE.
681
!  LFGEL=.FALSE.
682
!  LSNV=.FALSE.
683
!  LVGSN=.FALSE.
684
!  WRITE(NULOUT,'('' INFO -old isba-lsolv,lfgel,lsnv,lvgsn- reset to .F. '', &
685
!                 &'' when using lground i.e. surfex '')')
686
!ENDIF
687
688
1
NEPHYS_PCFULL=3
689
690
! Ce qui concerne NAEPHY commente par MPL le 14.04.09
691
!CALL POSNAM(NULNAM,'NAEPHY')
692
!READ(NULNAM,NAEPHY)
693
694
IF(LPC_FULL)THEN
695
  IF(NEPHYS_PCFULL < 2 .OR.NEPHYS_PCFULL > 3)THEN
696
    CALL ABOR1(' SU0PHY: NEPHYS_PCFULL')
697
  ENDIF
698
ELSE
699
  NEPHYS_PCFULL=3
700
ENDIF
701
702
IF(     NCONF == 201.OR.NCONF == 202 &
703
   & .OR.NCONF == 421.OR.NCONF == 422 &
704


1
   & .OR.NCONF == 521.OR.NCONF == 522  )THEN
705
  LREASUR=.FALSE.
706
ENDIF
707
!IF(.NOT.(LEPHYS.OR.LMPHYS)) THEN
708
!  LAGPHY=.FALSE.
709
!  LSLPHY=.FALSE.
710
!  WRITE(NULOUT,'('' INFO - LSLPHY RESET TO .FALSE. '')')
711
!ENDIF
712
1
IF(LEPCLD) THEN
713
  LECOND=.FALSE.
714
ENDIF
715
IF(LAGPHY.AND.NDPSFI /= 0) THEN
716
  NDPSFI=0
717
  WRITE(NULOUT,'('' WARNING - NDPSFI RESET TO 0 '')')
718
ENDIF
719
720
! Commente par MPL 24.11.08
721
!CALL POSNAM(NULNAM,'NAPHLC')
722
!READ(NULNAM,NAPHLC)
723
724
! Commente par MPL 24.11.08
725
!CALL POSNAM (NULNAM,'NAMTRAJP')
726
!READ (NULNAM,NAMTRAJP)
727
728
! Commente par MPL 24.11.08
729
!CALL POSNAM(NULNAM,'NAMSIMPHL')
730
!READ(NULNAM,NAMSIMPHL)
731
732
! Commente par MPL 24.11.08
733
!CALL POSNAM(NULNAM,'NAMRCOEF')
734
!READ(NULNAM,NAMRCOEF)
735
736
!-------------------------------------------------
737
! Initialize profile extractions for the Single Column Model .
738
!-------------------------------------------------
739
740
1
CALL SUSCM(KULOUT)
741
742
!     ------------------------------------------------------------------
743
744
!*       3.    Do tests of consistency.
745
!              ------------------------
746
747
1
IERR=0
748
749
! * Test that adequate physics is activated when at least one of the
750
!   options LRETCFOU, LWRTCFOU, LRCOEF,is set to .TRUE.
751


1
IF( LWRTCFOU .AND. ((.NOT.LMPHYS).OR.LEPHYS.OR.LAGPHY) ) THEN
752
  IERR=IERR+1
753
  WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
754
  WRITE(KULOUT,'(1X,A,A,A)') ' SU0PHY: options ',&
755
   & 'LWRTC, LWRTCFOU ',&
756
   & 'require the following options for physics:'
757
  WRITE(KULOUT,'(1X,A)') '         - LMPHYS=.TRUE. '
758
  WRITE(KULOUT,'(1X,A)') '         - LEPHYS=.FALSE. '
759
  WRITE(KULOUT,'(1X,A)') '         - LAGPHY=.FALSE. '
760
  IF(.NOT.LRAYSP) THEN
761
    WRITE(KULOUT,'(1X,A,A,A)') ' SU0PHY: option ',&
762
     & ' LWRTCFOU ',&
763
     & 'require the following option for simplified physics:'
764
    WRITE(KULOUT,'(1X,A)') '         - LRAYSP=.TRUE. '
765
  ENDIF
766
ENDIF
767


1
IF( LRETCFOU .AND. ((.NOT.(LMPHYS.OR.LSIMPH)).OR.LEPHYS.OR.LAGPHY) ) THEN
768
  IERR=IERR+1
769
  WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
770
  WRITE(KULOUT,'(1X,A,A,A)') ' SU0PHY: option ',&
771
   & ' LRETCFOU ',&
772
   & 'require the following options for physics:'
773
  WRITE(KULOUT,'(1X,A)') '         - LMPHYS=.TRUE. or LSIMPH=.TRUE.'
774
  WRITE(KULOUT,'(1X,A)') '         - LEPHYS=.FALSE. '
775
  WRITE(KULOUT,'(1X,A)') '         - LAGPHY=.FALSE. '
776
ENDIF
777


1
IF( LRCOEF .AND. ((.NOT.LMPHYS).OR.LEPHYS.OR.LAGPHY) ) THEN
778
  IERR=IERR+1
779
  WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
780
  WRITE(KULOUT,'(1X,A,A,A)') ' SU0PHY: options ',&
781
   & 'LRCOEF ',&
782
   & 'require the following options for physics:'
783
  WRITE(KULOUT,'(1X,A)') '         - LMPHYS=.TRUE. '
784
  WRITE(KULOUT,'(1X,A)') '         - LEPHYS=.FALSE. '
785
  WRITE(KULOUT,'(1X,A)') '         - LAGPHY=.FALSE. '
786
  IF(.NOT.LRAYSP) THEN
787
    WRITE(KULOUT,'(1X,A,A,A)') ' SU0PHY: options ',&
788
     & 'LRCOEF ',&
789
     & 'require the following option for simplified physics:'
790
    WRITE(KULOUT,'(1X,A)') '         - LRAYSP=.TRUE. '
791
  ENDIF
792
ENDIF
793
794
! * Test that options LRETCFOU, LWRTCFOU are set to .FALSE.
795
!   when at least LRCOEF=.TRUE.
796

1
IF( (LRCOEF) .AND. (LRETCFOU.OR.LWRTCFOU) ) THEN
797
  IERR=IERR+1
798
  WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
799
  WRITE(KULOUT,'(1X,A,A,A)') ' SU0PHY: options ',&
800
   & 'LRCOEF ',&
801
   & 'require that:'
802
  WRITE(KULOUT,'(1X,A)') '         - LRETCFOU=.FALSE. '
803
  WRITE(KULOUT,'(1X,A)') '         - LWRTCFOU=.FALSE. '
804
ENDIF
805
806
! * Test that option LSRCONT is set to .FALSE. when LSRCON=.FALSE.
807

1
IF( (LSRCONT) .AND. (.NOT.LSRCON) ) THEN
808
  IERR=IERR+1
809
  WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
810
  WRITE(KULOUT,'(1X,A,A,A)') ' SU0PHY: options ',&
811
   & 'LSRCONT ',&
812
   & 'require that:'
813
  WRITE(KULOUT,'(1X,A)') '         - LSRCON=.TRUE. '
814
ENDIF
815
816
! * Use NDPSFI=1 when not available or inconsistent with some other options?
817
!IF(LGWADV .AND. (NDPSFI==1)) THEN
818
  ! * these two options actually can run together on an informatic
819
  !   point of view, but the current assumptions done with LGWADV=T
820
  !   are that a particle which is on the Earth surface remains
821
  !   on the Earth surface; this is equivalent to assume that "etadot_surf"
822
  !   is always zero. This condition is satisfied when NDPSFI=0
823
  !   but not when NDPSFI=1 which gives a non-zero value to "etadot_surf".
824
  !   So one forbids combination "LGWADV .AND. (NDPSFI==1)" which leads
825
  !   to inconsistencies in the model at the surface.
826
!  IERR=IERR+1
827
!  WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
828
!  WRITE(KULOUT,'(1X,A,A,A)') ' SU0PHY: options ',&
829
!   & 'NDPSFI=1 ',&
830
!   & 'require that:'
831
!  WRITE(KULOUT,'(1X,A)') '         - LGWADV=.FALSE. '
832
!ENDIF
833
834
! TESTS FOR ALARO-0 (cloud)
835

1
IF (LPIL.AND..NOT.LCONDWT) THEN
836
  IERR=IERR+1
837
  WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
838
  WRITE(KULOUT,'(1X,A)') ' SU0PHY: LPIL requires LCONDWT '
839
ENDIF
840
841
! TESTS FOR ALARO-0 (prognostic convection)
842
1
IF (LCVPRO) THEN
843
  LCDDPRO=.TRUE.
844
  IF (NCONF /= 1)THEN
845
    WRITE(KULOUT,'(1X, A)') 'WARNING: LCVPRO requires NCONF=1'
846
    LCVPRO=.FALSE.
847
    LCDDPRO=.FALSE.
848
  ENDIF
849
ENDIF
850
851

1
IF (LPHSPSH .AND. .NOT.(L3MT.OR.LSTRAPRO)) THEN
852
  ! * For the time being, LPHSPSH requires L3MT.OR.LSTRAPRO (missing code
853
  !   in CPTEND in the other cases, to be coded later).
854
  IERR=IERR+1
855
  WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
856
  WRITE(KULOUT,'(1X,A)') ' SU0PHY: LPHSPSH requires L3MT.OR.LSTRAPRO '
857
ENDIF
858
859
! * Use simplified physics with LMPA=T?
860

1
IF(LMPA.AND.LSIMPH) THEN
861
  ! * Simplified physics is not consistent with AROME physics
862
  !   concerning most of the physical parameterizations.
863
  IERR=IERR+1
864
  WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
865
  WRITE(KULOUT,'(1X,A)') ' SU0PHY: LMPA and LSIMPH cannot be both to T.'
866
ENDIF
867
868
869
1
IF (IERR >= 1) THEN
870
  CALL FLUSH(KULOUT)
871
  CALL ABOR1(' SU0PHY: ABOR1 CALLED')
872
ENDIF
873
874
!     ------------------------------------------------------------------
875
876
!*       4.    Print final values.
877
!              -------------------
878
879
1
WRITE(UNIT=KULOUT,FMT='('' COMMON YOMPHY '')')
880
1
WRITE(UNIT=KULOUT,FMT='('' LMPHYS= '',L5,'' LREASUR = '',L5)')LMPHYS,LREASUR
881
if (1==0) then       !!!!! A REVOIR (MPL)
882
WRITE(UNIT=KULOUT,FMT='('' LCONDWT='',L5,'' LCVPP = '',L5,&
883
 & '' LCVPPKF = '',L5,&
884
 & '' LNEIGE = '',L5,'' LRNUMX = '',L5,'' LCLSATUR = '',L5,'' LHUNEG = '',L5,&
885
 & '' LVOIGT = '',L5,'' LVFULL = '',L5,&
886
 & '' L2PHYS = '',L5,&
887
 & '' LCVDD = '',L5,'' LCAPE= '',L5,'' LSRCON = '',L5,&
888
 & '' LCVLIS = '',L5,'' LCVCAS= '',L5,'' LSRCONT= '',L5,'' LO3ABC= '',L5,  &
889
 & '' LAEROSEA = '',L5,'' LAEROLAN = '',L5,'' LAEROSOO = '',L5, &
890
 & '' LAERODES = '',L5,'' LAEROVOL = '',L5,'' LAEROSUL = '',L5, &
891
 & '' LRELAXT  = '',L5,'' LRELAXW  = '',L5,&
892
 & '' LSLC = '',L5,'' LRRGUST= '',L5, &
893
 & '' LNEWD = '',L5,'' LGLT= '',L5,'' LDIFCONS= '',L5, &
894
 & '' LECT = '',L5,'' LECTFL = '',L5,'' LPBLE = '',L5,'' LCVPGY= '',L5, &
895
 & '' LPTKE= '',L5,'' L3MT= '',L5 &
896
 & )')&
897
 & LCONDWT,LCVPP,LCVPPKF,LNEIGE,LRNUMX,LCLSATUR,LHUNEG,LVOIGT,LVFULL,L2PHYS,LCVDD,&
898
 & LCAPE,LSRCON,LCVLIS,LCVCAS,LSRCONT,LO3ABC,LAEROSEA,LAEROLAN,LAEROSOO, &
899
 & LAERODES,LAEROVOL,LAEROSUL,LRELAXT,LRELAXW,LSLC,LRRGUST,LNEWD,LGLT,&
900
 & LDIFCONS,LECT,LECTFL,LPBLE,LCVPGY,LPTKE,L3MT
901
else
902
1
  print*,'OKL'
903
1
  print*,'LOGICS',&
904
1
 & LCONDWT,LCVPP,LCVPPKF,LNEIGE,LRNUMX,LCLSATUR,LHUNEG,LVOIGT,LVFULL,L2PHYS,LCVDD,&
905
1
 & LCAPE,LSRCON,LCVLIS,LCVCAS,LSRCONT,LO3ABC,LAEROSEA,LAEROLAN,LAEROSOO, &
906
1
 & LAERODES,LAEROVOL,LAEROSUL,LRELAXT,LRELAXW,LSLC,LRRGUST,LNEWD,LGLT,&
907
2
 & LDIFCONS,LECT,LECTFL,LPBLE,LCVPGY,LPTKE,L3MT
908
endif
909
WRITE(UNIT=KULOUT,FMT='('' LCVRA = '',L5 ,'' LFPCOR = '',L5&
910
 & ,'' LNOIAS = '',L5 &
911
 & ,'' LGWD = '',L5,'' LHMTO = '',L5,'' LRAY = '',L5 &
912
 & ,'' LSFHYD = '',L5,'' LSTRA = '',L5,'' LTHERMO = '',L5,/&
913
 & ,'' LVDIF = '',L5,'' LNEBCO = '',L5,'' LNEBT = '',L5,/&
914
 & ,'' LRRMES = '',L5,'' LOZONE = '',L5,'' LNEBR = '',L5,/&
915
 & ,'' LSNV = '',L5,'' LSOLV = '',L5,'' LFGEL = '',L5,/&
916
 & ,'' LVGSN ='',L5,'' LND2DIFF ='',L5,/&
917
 & ,'' LNEBN = '',L5,'' LNEBNXR = '',L5,'' LQXRTGH = '',L5,'' LSTRAS = '',L5,/&
918
 & ,'' LHUCN = '',L5,'' LGWDC     = '',L5,'' LRAYFM = '',L5,'' LRAYFM15= '',L5,/&
919
 & ,'' LRAYLU  = '',L5,'' LREWS  = '',L5,'' LRPROX = '',L5 /&
920
 & ,'' LRMIX   = '',L5,'' LRSTAB = '',L5,''LRAUTOEV = '',L5 /&
921
 & ,'' LRTPP = '',L5,'' LRTDL = '',L5,'' LRAYPL = '',L5 &
922
 & )')&
923
1
 & LCVRA,LFPCOR,LNOIAS,LGWD,LHMTO,LRAY,LSFHYD,LSTRA,LTHERMO,LVDIF,LNEBCO,&
924
1
 & LNEBT,LRRMES,LOZONE,LNEBR,LSNV,LSOLV,LFGEL,LVGSN,LND2DIFF,&
925
1
 & LNEBN,LNEBNXR,LQXRTGH,LSTRAS,LHUCN,LGWDC,&
926
1
 & LRAYFM,LRAYFM15,LRAYLU,LREWS,&
927
2
 & LRPROX,LRMIX,LRSTAB,LRAUTOEV,LRTPP,LRTDL,LRAYPL
928
WRITE(UNIT=KULOUT,FMT='('' NBITER = '',I2,'' NDPSFI = '',I2,'' NPHYREP = '',I2)') &
929
1
 & NBITER,NDPSFI,NPHYREP
930
1
WRITE(UNIT=KULOUT,FMT='('' NOIR = '',I2)')NOIR
931
!WRITE(UNIT=KULOUT,FMT='('' NPHYINT = '',I2)')NPHYINT
932
933
1
WRITE(UNIT=KULOUT,FMT='('' - - - - - - - - - -'')')
934
1
WRITE(UNIT=KULOUT,FMT='('' COMMON YOMPHY'')')
935
1
WRITE(UNIT=KULOUT,FMT='('' - - - - - - - - - -'')')
936
WRITE(UNIT=KULOUT,FMT='(&
937
 & '' LECT    = '',L5,'' LAJUCV  = '',L5,/, &
938
 & '' LCVRAV3 = '',L5, &
939
 & '' LNEBGR  = '',L5,'' LNEBGY  = '',L5,'' LBCCOND = '',L5 &
940
1
 & )') LECT,    LAJUCV,  &
941
2
 & LCVRAV3, LNEBGR, LNEBGY, LBCCOND
942
943
1
WRITE(UNIT=KULOUT,FMT='('' - - - - - - - - -'')')
944
1
WRITE(UNIT=KULOUT,FMT='('' MICROPHYSICS KEY '')')
945
1
WRITE(UNIT=KULOUT,FMT='('' - - - - - - - - -'')')
946
WRITE(UNIT=KULOUT,FMT='(  '' LPROCLD = '',L5 &
947
 &,'' LEVAPP  = '',L5,'' LCOLLEC = '',L5,'' LNSMLIS  = '',L5 &
948
 &,'' LADJCLD  = '',L5,'' LAUTONEB  = '',L5,'' LSSD = '',L5)')&
949
1
 &LPROCLD,LEVAPP,LCOLLEC,LNSMLIS,LADJCLD,LAUTONEB,LSSD
950
951
1
WRITE(UNIT=KULOUT,FMT='('' ALARO-0 cloud '')')
952
WRITE(UNIT=KULOUT,FMT='('' LPIL = '',L5,'' LSTRAPRO = '',L5 &
953
  &,'' LNEWSTAT = '',L5 &
954
  &,'' LPHSPSH = '',L5 ,'' LSMROT = '',L5 &
955
  &,'' LSMTPS = '',L5 ,'' LSMNIMBT = '',L5 &
956
  &,'' L1DRHCRI = '',L5 ,'' LGWRHCRI = '',L5 &
957
  &,'' NSMTBOT = '',I2,'' NSMDNEB = '',I2 &
958
  &,'' NPRAG = '',I2,'' NPRAC = '',I2 &
959
  &,'' NPRRI = '',I2 &
960
1
  &) ')LPIL,LSTRAPRO,LNEWSTAT,LPHSPSH,LSMROT,LSMTPS, LSMNIMBT, &
961
1
  &    L1DRHCRI, LGWRHCRI,&
962
2
  &    NSMTBOT,NSMDNEB, NPRAG,NPRAC,NPRRI
963
964
1
WRITE(UNIT=KULOUT,FMT='('' ALARO-0 prognostic convection  '')')
965
WRITE(UNIT=KULOUT,&
966
  &FMT='('' LCVPRO ='',L1,'' LCDDPRO ='',L1,'' LSCMF ='',L1)') &
967
1
  &    LCVPRO,LCDDPRO,LSCMF
968
969
1
WRITE(UNIT=KULOUT,FMT='('' COMMON YOMSIMPHL '')')
970
WRITE(UNIT=KULOUT,FMT='('' LSIMPH= '',L5,'' LTRAJPS = '',L5 &
971
 & ,'' LTRAJPST = '',L5 &
972
 & ,'' LSMOOTHD = '',L5,'' LSMOOTHA = '',L5,'' LSMOOTHB = '',L5 &
973
 & ,'' LCLOUDS = '',L5 )')&
974
1
 & LSIMPH,LTRAJPS,LTRAJPST,LSMOOTHD,LSMOOTHA, &
975
2
 & LSMOOTHB,LCLOUDS
976
WRITE(UNIT=KULOUT,FMT='('' LCVRASP = '',L5,'' LGWDSP = '',L5 &
977
 & ,'' LRAYSP = '',L5,'' LSTRASP = '',L5,'' LVDIFSP = '',L5 &
978
 & ,'' LRRMESSP = '',L5)')&
979
1
 & LCVRASP,LGWDSP,LRAYSP,LSTRASP,LVDIFSP,LRRMESSP
980
1
WRITE(UNIT=KULOUT,FMT='('' COMMON YOMRCOEF '')')
981
WRITE(UNIT=KULOUT,FMT='('' LRCOEF= '',L5 &
982
 & ,'' LTLADDIA = '',L5,'' LGLOBRAD = '',L5)')&
983
1
 & LRCOEF,LTLADDIA,LGLOBRAD
984
985
! TEST OF CONSISTENCY FOR RADIATION SCHEMES
986
987
1
IF(LMPHYS) THEN
988
  IF((LRAY.AND.LRAYFM).OR.(LRAY.AND.LRAYFM15).OR.(LRAYFM15.AND.LRAYFM)) THEN
989
    WRITE(NULOUT,'('' WARNING - 2 RADIATION SCHEMES... '')')
990
    CALL ABOR1('SU0PHY: ABOR1 CALLED')
991
  ENDIF
992
ENDIF
993
994
!     TESTS OF CONSISTENCY INSIDE YOMPHY
995
996

1
IF(LSTRAS.AND.LRNUMX)THEN
997
  WRITE(NULOUT,FMT='('' ACPLUIS AND LRNUMX ARE NOT COMPATIBLE''&
998
   & ,''      FOR THE MOMENT'')')
999
  CALL ABOR1('SU0PHY: ABOR1 CALLED')
1000
ENDIF
1001
1002
!     TESTS OF CONSISTENCY BETWEEN YOMPHY AND INITIALIZATION
1003
1004
!IF (.NOT.LMPHYS.AND..NOT.LEPHYS) THEN
1005
! Digital Filter Initialisation
1006
!  IF ((NEINI == 2.OR.NEINI == 4).AND.NEDFI >= 2) THEN
1007
!    IF (NEDFI <= 5) THEN
1008
!      WRITE(NULOUT,FMT='('' YOMPHY AND YEMDFI ARE NOT COMPATIBLE'')')
1009
!      CALL ABOR1(' DIABATIC DFI WITHOUT PHYSICS !')
1010
!    ELSE
1011
!      WRITE(NULOUT,FMT='('' CAUTION : FORWARD DFI WITHOUT PHYSICS'')')
1012
!    ENDIF
1013
!  ENDIF
1014
!ENDIF
1015
1016
1
WRITE(UNIT=KULOUT,FMT='('' COMMON YOMARPHY '')')
1017
WRITE(UNIT=KULOUT,FMT='('' LMPA = '',L5, &
1018
 & '' LMICRO = '',L5,'' LTURB = '',L5, &
1019
 & '' LMSE = '',L5,'' LKFBCONV = '',L5,&
1020
 & '' LKFBD = '',L5,'' LKFBS = '',L5,&
1021
 & '' LUSECHEM = '',L5,'' LORILAM = '',L5,'' LRDUST = '',L5)')&
1022
1
 & LMPA,LMICRO,LTURB,LMSE,LKFBCONV,LKFBD,LKFBS,LUSECHEM,&
1023
2
 & LORILAM,LRDUST
1024
1025
1
WRITE(UNIT=KULOUT,FMT='('' COMMON YOEPHY '')')
1026
WRITE(UNIT=KULOUT,FMT='('' LEPHYS = '',L5, &
1027
 & '' LECOND = '',L5,'' LECUMF = '',L5 &
1028
 & )')&
1029
1
 & LEPHYS,LECOND,LECUMF
1030
!WRITE(NULOUT,'("RCLDTOPP=",F10.2)') RCLDTOPP
1031
WRITE(UNIT=KULOUT,FMT='('' LEDCLD = '',L5,'' LEGWDG = '',L5 &
1032
 & ,'' LEOZOC = '',L5,'' LEQNGT = '',L5 &
1033
 & ,'' LEO3CH = '',L5)')&
1034
1
 & LEDCLD,LEGWDG,LEOZOC,LEQNGT,LEO3CH
1035
WRITE(UNIT=KULOUT,FMT='('' LERADI = '',L5 &
1036
 & ,'' LESHCV = '',L5,'' LESURF = '',L5,'' LEVDIF = '',L5 &
1037
 & ,'' LEOCWA = '',L5,'' LEOCCO = '',L5,'' LEOCSA = '',L5 &
1038
 & ,'' LECURR = '',L5,'' RTHRFRTI = '',F7.2 &
1039
 & )')&
1040
1
 & LERADI,LESHCV,LESURF,LEVDIF,LEOCWA,LEOCCO,LEOCSA,LECURR,RTHRFRTI
1041
WRITE(UNIT=KULOUT,FMT='('' LEPCLD = '',L5,'' LEMETHOX= '',L5 &
1042
 & ,'' LE4ALB = '',L5 &
1043
 & )')&
1044
1
 & LEPCLD,LEMETHOX,LE4ALB
1045
1046
! Do not allow storage of trajectory in TL physics if tracers
1047
! are to be included in linearized physics (temporary)
1048
!IF (LETRAJP .AND. LETRAJPT .AND. LTRACLNPH) THEN
1049
!  WRITE(UNIT=KULOUT,FMT='('' CAUTION : STORAGE OF TRAJECTORY IN LINEAR. PHYSICS NOT YET '')')
1050
!  WRITE(UNIT=KULOUT,FMT='('' IMPLEMENTED FOR TRACERS: LETRAJPT WILL BE RESET TO .FALSE. '')')
1051
!ENDIF
1052
1053
!IF (LETRAJP) THEN
1054
!  WRITE(UNIT=KULOUT,FMT='('' ======================== '')')
1055
!  WRITE(UNIT=KULOUT,FMT='('' LINEAR PHYSICS ACTIVATED '')')
1056
!  WRITE(UNIT=KULOUT,FMT='('' ======================== '')')
1057
!  WRITE(UNIT=KULOUT,FMT='('' LERADI2 = '',L4 &
1058
!   & ,'' LERADS2 = '',L4 &
1059
!   & ,'' LERADSW2= '',L4 &
1060
!   & ,'' LERADN2 = '',L4 &
1061
!   & ,'' LERADFL2= '',L4 &
1062
!   & )')&
1063
!   & LERADI2,LERADS2,LERADSW2,LERADN2,LERADFL2
1064
!  WRITE(UNIT=KULOUT,FMT='('' LEDCLD2 = '',L4 &
1065
!   & ,'' LENCLD2 = '',L4 &
1066
!   & ,'' LEVAPLS2= '',L4 &
1067
!   & ,'' LREGCL  = '',L4 &
1068
!   & ,'' LNCLIN  = '',L4 &
1069
!   & )')&
1070
!   & LEDCLD2,LENCLD2,LEVAPLS2,LREGCL,LNCLIN
1071
!  WRITE(UNIT=KULOUT,FMT='('' LECUMF2 = '',L4 &
1072
!   & ,'' LECUBM2 = '',L4 &
1073
!   & ,'' LECOND2 = '',L4    &
1074
!   & )')&
1075
!   & LECUMF2,LECUBM2,LECOND2
1076
!  WRITE(UNIT=KULOUT,FMT='('' LEVDIF2 = '',L4 &
1077
!   & ,'' LEGWDG2 = '',L4 &
1078
!   & ,'' LEQNGT2 = '',L4 &
1079
!   & ,'' LESURF2 = '',L4 &
1080
!   & )')&
1081
!   & LEVDIF2,LEGWDG2,LEQNGT2,LESURF2
1082
!  WRITE(UNIT=KULOUT,FMT='('' LEKPERT = '',L4,'' LENOPERT = '',L4)')&
1083
!   & LEKPERT,LENOPERT
1084
!  WRITE(UNIT=KULOUT,FMT='('' ======================== '')')
1085
!  WRITE(UNIT=KULOUT,FMT='('' LETRAJPT = '',L4)')LETRAJPT
1086
!  WRITE(UNIT=KULOUT,FMT='('' ======================== '')')
1087
!  WRITE(UNIT=KULOUT,FMT='('' LTRACLNPH = '',L4)')LTRACLNPH
1088
!  WRITE(UNIT=KULOUT,FMT='('' ======================== '')')
1089
!ELSE
1090
!  WRITE(UNIT=KULOUT,FMT='('' ============================ '')')
1091
!  WRITE(UNIT=KULOUT,FMT='('' LINEAR PHYSICS NOT ACTIVATED '')')
1092
!  WRITE(UNIT=KULOUT,FMT='('' ============================ '')')
1093
!  WRITE(UNIT=KULOUT,FMT='('' LENCLD2 = '',L4)')LENCLD2
1094
!  WRITE(UNIT=KULOUT,FMT='('' LEVAPLS2= '',L4)')LEVAPLS2
1095
!ENDIF
1096
1097
WRITE(UNIT=KULOUT,FMT='('' LSPHLC = '',L5,'' LVDFLC = '',L5 &
1098
 & ,'' LVDFDS = '',L5,'' LSDRLC = '',L5,'' LSDRDS = '',L5)')&
1099
1
 & LSPHLC,LVDFLC,LVDFDS,LSDRLC,LSDRDS
1100
WRITE(UNIT=KULOUT,FMT='('' LCZDEB = '',L5,'' LZMCON = '',L5 &
1101
1
 & ,'' LKEXP  = '',L5)') LCZDEB,LZMCON,LKEXP
1102
1
WRITE(UNIT=KULOUT,FMT='('' ALPHA  = '',E16.6)') ALPHA
1103
1
WRITE(UNIT=KULOUT,FMT='('' AH0    = '',E16.6,''m'')') AH0
1104
1
WRITE(UNIT=KULOUT,FMT='('' USTARL = '',E16.6,''m s-1'')') USTARL
1105
1
WRITE(UNIT=KULOUT,FMT='('' USTARS = '',E16.6,''m s-1'')') USTARS
1106
1
WRITE(UNIT=KULOUT,FMT='('' ALANDZ0= '',E16.6,''m'')') ALANDZ0
1107
1
WRITE(UNIT=KULOUT,FMT='('' ASEAZ0 = '',E16.6,''m'')') ASEAZ0
1108
1109
1
IF (LAGPHY) THEN
1110
  WRITE(UNIT=KULOUT,FMT='('' LAGPHY = '',L5,'' THE PHYSICS PAC&
1111
1
   & KAGE IS CALLED AFTER THE DYNAMICS IN LAGGED MODE'')')LAGPHY
1112
ELSE
1113
  WRITE(UNIT=KULOUT,FMT='('' LAGPHY = '',L5,'' THE PHYSICS PAC&
1114
   & KAGE IS CALLED BEFORE THE DYNAMICS '')')LAGPHY
1115
ENDIF
1116
1
WRITE(UNIT=KULOUT,FMT=*) 'CGMIXLEN=',TRIM(CGMIXLEN)
1117
1
WRITE(UNIT=KULOUT,FMT='('' LPRGML = '',L4)') LPRGML
1118
1119
!     ------------------------------------------------------------------
1120
1121
1
IF (LHOOK) CALL DR_HOOK('SU0PHY',1,ZHOOK_HANDLE)
1122
1
END SUBROUTINE SU0PHY