source: LMDZ6/trunk/libf/phylmd/rrtm/su0phy.F90 @ 3981

Last change on this file since 3981 was 1990, checked in by Laurent Fairhead, 10 years ago

Corrections à la version r1989 pour permettre la compilation avec RRTM
Inclusion de la licence CeCILL_V2 pour RRTM


Changes to revision r1989 to enable RRTM code compilation
RRTM part put under CeCILL_V2 licence

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
File size: 34.6 KB
Line 
1SUBROUTINE SU0PHY(KULOUT)
2
3USE PARKIND1  ,ONLY : JPIM     ,JPRB
4USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
5
6!USE YOMLUN   , ONLY : NULOUT   ,NULNAM  MPL 14.04.09
7USE YOMLUN   , ONLY : NULOUT
8! Ce qui concerne LSLPHY commente par MPL 24.11.08
9!USE YOMSLPHY , ONLY : LSLPHY
10USE 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
33USE YOMARPHY , ONLY : LMPA    ,LMICRO   ,LTURB    ,&
34 & LMSE  ,LKFBCONV ,LKFBD    ,LKFBS    ,LUSECHEM ,&
35 & LORILAM  ,LRDUST, LBUFLUX ,CCOUPLING
36USE 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
44USE 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 
48USE YOPHLC   , ONLY : ALPHA    ,AH0      ,USTARL   ,&
49 & USTARS   ,ALANDZ0  ,ASEAZ0   ,LSPHLC   ,LVDFLC   ,&
50 & LSDRLC   ,LCZDEB   ,LZMCON   ,LKEXP    ,LVDFDS   ,&
51 & LSDRDS 
52USE YOMCT0   , ONLY : NCONF    ,&
53 & LRETCFOU ,LWRTCFOU, LAROME,LFPOS,LPC_FULL
54USE 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
65USE YOMSIMPHL, ONLY : LSIMPH   ,LTRAJPS  ,LTRAJPST ,&
66 & LSMOOTHD ,LSMOOTHA ,LSMOOTHB ,LCVRASP  ,&
67 & LGWDSP   ,LRAYSP   ,LSTRASP  ,LVDIFSP  ,LRRMESSP ,LCLOUDS 
68USE 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
189IMPLICIT NONE
190
191INTEGER(KIND=JPIM),INTENT(IN)    :: KULOUT
192
193!     ------------------------------------------------------------------
194
195INTEGER(KIND=JPIM) :: IERR
196REAL(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!     ------------------------------------------------------------------
215print*,'Dans SUOPHY ', KULOUT
216
217IF (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
227LMPHYS=.FALSE.
228LREASUR=.TRUE.
229
230CGMIXLEN='Z'
231LPRGML=.FALSE.
232LCAPE=.FALSE.
233LCONDWT=.FALSE.
234LCVCAS=.FALSE.
235LCVLIS=.FALSE.
236LCVPP=.FALSE.
237LCVPPKF=.FALSE.
238LCVDD=.FALSE.
239LHUNEG=.TRUE.
240LNEIGE=.TRUE.
241LRNUMX=.FALSE.
242LCLSATUR=.FALSE.
243LVOIGT=.FALSE.
244LVFULL=.FALSE.
245LRRGUST=.FALSE.
246L2PHYS=.FALSE.
247LO3ABC=.FALSE.
248LAEROSEA=.FALSE.
249LAEROLAN=.FALSE.
250LAEROSOO=.FALSE.
251LAERODES=.FALSE.
252LAEROVOL=.FALSE.
253LAEROSUL=.FALSE.
254LRELAXT=.FALSE.
255LRELAXW=.FALSE.
256LE4ALB=.FALSE.
257LGLT=.FALSE.
258LNEWD=.FALSE.
259LDIFCONS=.FALSE.
260LECT=.FALSE.
261LPTKE=.FALSE.
262LECTFL=.FALSE.
263LPBLE=.FALSE.
264LCVPGY=.FALSE.
265L3MT=.FALSE.
266
267LCVRA=.FALSE.
268LGWDC=.FALSE.
269LGWD=.FALSE.
270LHMTO=.FALSE.
271LNEBCO=.FALSE.
272LNEBN=.FALSE.
273LNEBNXR=.FALSE.
274LNEBR=.FALSE.
275LNEBT=.FALSE.
276LND2DIFF=.FALSE.
277LQXRTGH=.FALSE.
278LHUCN=.FALSE.
279LOZONE=.FALSE.
280LRAY=.FALSE.
281LRAYLU=.FALSE.
282LREWS=.FALSE.
283LRPROX=.FALSE.
284LRMIX=.FALSE.
285LRSTAB=.FALSE.
286LRAUTOEV=.FALSE.
287LRTPP=.FALSE.
288LRTDL=.FALSE.
289LRAYPL=.FALSE.
290LRAYFM=.FALSE.
291LRAYFM15=.FALSE.
292LRRMES=.FALSE.
293LSFHYD=.FALSE.
294LSNV=.FALSE.
295LSOLV=.FALSE.
296LFGEL=.FALSE.
297LSRCON=.FALSE.
298LSRCONT=.FALSE.
299LSLC=.FALSE.
300LSTRA=.FALSE.
301LSTRAS=.FALSE.
302LTHERMO=.FALSE.
303LVDIF=.FALSE.
304LVGSN=.FALSE.
305LFPCOR=.FALSE.
306LNOIAS=.FALSE.
307LPHCDPI=.FALSE.
308LBLVAR=.FALSE.
309
310LZ0HSREL=.FALSE.
311
312NBITER=2
313NDPSFI=0
314NPHYREP=1
315NOIR=0
316
317! ---------------------------------------------------
318! ALARO-0 (cloud)
319! ---------------------------------------------------
320LPIL=.FALSE.
321LSTRAPRO=.FALSE.
322LNEWSTAT=.TRUE.
323LPHSPSH=.FALSE. ! Pseudo Historic Surface Precip Sensible Heat Flux
324LSMROT=.FALSE.
325LSMTPS=.FALSE.
326LSMNIMBT=.FALSE.
327L1DRHCRI=.FALSE.
328LGWRHCRI=.FALSE.
329NSMTBOT=0 ! interpolate
330NSMDNEB=2 ! gradient limitation
331NPRAG=1
332NPRAC=1
333NPRRI=1
334! ---------------------------------------------------
335! ALARO-0 (prognostic convection)
336! ---------------------------------------------------
337LCVPRO=.FALSE.
338LCDDPRO=.FALSE.
339LSCMF=.FALSE.
340
341! - - - - - - - - - - - - - - - - - - - - - - - - - -
342! Cloud and precipitation prognostic scheme (Lopez) :
343! - - - - - - - - - - - - - - - - - - - - - - - - - -
344
345LPROCLD=.FALSE.
346LEVAPP=.TRUE.
347LCOLLEC=.TRUE.
348LNSMLIS=.TRUE.
349LADJCLD=.TRUE.
350LAUTONEB=.FALSE.
351LSSD=.FALSE.
352
353!AROME physics
354LMPA=.FALSE.
355LMICRO=.FALSE.
356LTURB=.FALSE.
357LMSE=.FALSE.
358LKFBCONV=.FALSE.
359LKFBD=.FALSE.
360LKFBS=.FALSE.
361LUSECHEM=.FALSE.
362LORILAM=.FALSE.
363LRDUST=.FALSE.
364LBUFLUX=.TRUE.
365CCOUPLING='E'
366
367! - - - - - - - - - - -
368! Module YOMPHY :
369! - - - - - - - - - - -
370
371LAJUCV=.FALSE.
372LNEBGR=.FALSE.
373LNEBGY=.FALSE.
374LBCCOND=.FALSE.
375
376LCVRAV3=.FALSE.
377
378!*    1.1.2  Set default values for simplified physical parametrization
379!            of Meteo-France
380!     -----------------------------------------------------------------
381
382LSIMPH=.FALSE.
383LTRAJPS=.FALSE.
384LTRAJPST=.FALSE.
385LSMOOTHD=.FALSE.
386LSMOOTHA=.FALSE.
387LSMOOTHB=.FALSE.
388LCLOUDS=.FALSE.
389
390LCVRASP=.FALSE.
391LGWDSP=.FALSE.
392LRAYSP=.FALSE.
393LSTRASP=.FALSE.
394LVDIFSP=.FALSE.
395LRRMESSP=.FALSE.
396
397LRCOEF=.FALSE.
398LTLADDIA=.FALSE.
399LGLOBRAD=.FALSE.
400
401!*    1.2.1  Set default values for ECMWF physics package
402!            --------------------------------------------
403
404LEPHYS=.FALSE.
405LAGPHY=.TRUE.
406
407LECOND=.FALSE.
408LEPCLD=.FALSE.
409LECUMF=.FALSE.
410LEDCLD=.FALSE.
411LEEVAP=.TRUE.
412LEGWDG=.FALSE.
413LEOZOC=.FALSE.
414LEQNGT=.FALSE.
415LERADI=.FALSE.
416LERADS=.FALSE.
417LESHCV=.FALSE.
418LESICE=.TRUE.
419LESURF=.FALSE.
420LEVDIF=.FALSE.
421LEOCWA=.FALSE.
422LEOCCO=.FALSE.
423LEOCSA=.FALSE.
424LEMETHOX=.FALSE.
425LERA40=.FALSE.
426LECURR=.FALSE.
427LVDFTRAC=.TRUE.
428LMFTRAC=.TRUE.
429LERAIN=.FALSE.
430LE4ALB=.FALSE.
431RTHRFRTI=0.0_JPRB
432!NPHYINT=0
433LE4ALB=.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
480LSPHLC  = .FALSE.
481LVDFLC  = .FALSE.
482LVDFDS  = .TRUE.
483LSDRLC  = .TRUE.
484LSDRDS  = .FALSE.
485LCZDEB  = .FALSE.
486LZMCON  = .TRUE.
487LKEXP   = .TRUE.
488ALPHA   = 3._JPRB
489AH0     = 1000.0_JPRB
490USTARL  = 0.5_JPRB
491USTARS  = 0.2_JPRB
492ALANDZ0 = 0.05_JPRB
493ASEAZ0  = 0.0005_JPRB
494
495NSTPW=2
496!     NSTPW=30
497
498LWCOU=.FALSE.
499LWCOU2W=.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
509RNORTW= 81.0_JPRB
510RSOUTW=-81.0_JPRB
511RDEGREW=1.5_JPRB
512
513!        1.3 Modify default values according to LECMWF
514
515IF (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
595ELSE
596  IF ((NCONF == 1).OR.(NCONF == 131).OR.(NCONF == 401)&
597     & .OR.(NCONF == 501).OR.(NCONF == 601)&
598     & .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
665ENDIF
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
688NEPHYS_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
694IF(LPC_FULL)THEN
695  IF(NEPHYS_PCFULL < 2 .OR.NEPHYS_PCFULL > 3)THEN
696    CALL ABOR1(' SU0PHY: NEPHYS_PCFULL')
697  ENDIF
698ELSE
699  NEPHYS_PCFULL=3
700ENDIF
701
702IF(     NCONF == 201.OR.NCONF == 202 &
703   & .OR.NCONF == 421.OR.NCONF == 422 &
704   & .OR.NCONF == 521.OR.NCONF == 522  )THEN 
705  LREASUR=.FALSE.
706ENDIF
707!IF(.NOT.(LEPHYS.OR.LMPHYS)) THEN
708!  LAGPHY=.FALSE.
709!  LSLPHY=.FALSE.
710!  WRITE(NULOUT,'('' INFO - LSLPHY RESET TO .FALSE. '')')
711!ENDIF
712IF(LEPCLD) THEN
713  LECOND=.FALSE.
714ENDIF
715IF(LAGPHY.AND.NDPSFI /= 0) THEN
716  NDPSFI=0
717  WRITE(NULOUT,'('' WARNING - NDPSFI RESET TO 0 '')')
718ENDIF
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
740CALL SUSCM(KULOUT)
741
742!     ------------------------------------------------------------------
743
744!*       3.    Do tests of consistency.
745!              ------------------------
746
747IERR=0
748
749! * Test that adequate physics is activated when at least one of the
750!   options LRETCFOU, LWRTCFOU, LRCOEF,is set to .TRUE.
751IF( 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
766ENDIF
767IF( 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. '
776ENDIF
777IF( 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
792ENDIF
793
794! * Test that options LRETCFOU, LWRTCFOU are set to .FALSE.
795!   when at least LRCOEF=.TRUE.
796IF( (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. '
804ENDIF
805
806! * Test that option LSRCONT is set to .FALSE. when LSRCON=.FALSE.
807IF( (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. '
814ENDIF
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)
835IF (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 '
839ENDIF
840
841! TESTS FOR ALARO-0 (prognostic convection)
842IF (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
849ENDIF
850
851IF (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 '
857ENDIF
858
859! * Use simplified physics with LMPA=T?
860IF(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.'
866ENDIF
867
868
869IF (IERR >= 1) THEN
870  CALL FLUSH(KULOUT)
871  CALL ABOR1(' SU0PHY: ABOR1 CALLED')
872ENDIF
873
874!     ------------------------------------------------------------------
875
876!*       4.    Print final values.
877!              -------------------
878
879WRITE(UNIT=KULOUT,FMT='('' COMMON YOMPHY '')')
880WRITE(UNIT=KULOUT,FMT='('' LMPHYS= '',L5,'' LREASUR = '',L5)')LMPHYS,LREASUR
881if (1==0) then       !!!!! A REVOIR (MPL)
882WRITE(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
901else
902  print*,'OKL'
903  print*,'LOGICS',&
904 & LCONDWT,LCVPP,LCVPPKF,LNEIGE,LRNUMX,LCLSATUR,LHUNEG,LVOIGT,LVFULL,L2PHYS,LCVDD,&
905 & LCAPE,LSRCON,LCVLIS,LCVCAS,LSRCONT,LO3ABC,LAEROSEA,LAEROLAN,LAEROSOO, &
906 & LAERODES,LAEROVOL,LAEROSUL,LRELAXT,LRELAXW,LSLC,LRRGUST,LNEWD,LGLT,&
907 & LDIFCONS,LECT,LECTFL,LPBLE,LCVPGY,LPTKE,L3MT
908endif
909WRITE(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 & LCVRA,LFPCOR,LNOIAS,LGWD,LHMTO,LRAY,LSFHYD,LSTRA,LTHERMO,LVDIF,LNEBCO,&
924 & LNEBT,LRRMES,LOZONE,LNEBR,LSNV,LSOLV,LFGEL,LVGSN,LND2DIFF,&
925 & LNEBN,LNEBNXR,LQXRTGH,LSTRAS,LHUCN,LGWDC,&
926 & LRAYFM,LRAYFM15,LRAYLU,LREWS,&
927 & LRPROX,LRMIX,LRSTAB,LRAUTOEV,LRTPP,LRTDL,LRAYPL
928WRITE(UNIT=KULOUT,FMT='('' NBITER = '',I2,'' NDPSFI = '',I2,'' NPHYREP = '',I2)') &
929 & NBITER,NDPSFI,NPHYREP 
930WRITE(UNIT=KULOUT,FMT='('' NOIR = '',I2)')NOIR
931!WRITE(UNIT=KULOUT,FMT='('' NPHYINT = '',I2)')NPHYINT
932
933WRITE(UNIT=KULOUT,FMT='('' - - - - - - - - - -'')')
934WRITE(UNIT=KULOUT,FMT='('' COMMON YOMPHY'')')
935WRITE(UNIT=KULOUT,FMT='('' - - - - - - - - - -'')')
936WRITE(UNIT=KULOUT,FMT='(&
937 & '' LECT    = '',L5,'' LAJUCV  = '',L5,/, &
938 & '' LCVRAV3 = '',L5, &
939 & '' LNEBGR  = '',L5,'' LNEBGY  = '',L5,'' LBCCOND = '',L5 &
940 & )') LECT,    LAJUCV,  &
941 & LCVRAV3, LNEBGR, LNEBGY, LBCCOND
942
943WRITE(UNIT=KULOUT,FMT='('' - - - - - - - - -'')')
944WRITE(UNIT=KULOUT,FMT='('' MICROPHYSICS KEY '')')
945WRITE(UNIT=KULOUT,FMT='('' - - - - - - - - -'')')
946WRITE(UNIT=KULOUT,FMT='(  '' LPROCLD = '',L5 &
947 &,'' LEVAPP  = '',L5,'' LCOLLEC = '',L5,'' LNSMLIS  = '',L5 &
948 &,'' LADJCLD  = '',L5,'' LAUTONEB  = '',L5,'' LSSD = '',L5)')&
949 &LPROCLD,LEVAPP,LCOLLEC,LNSMLIS,LADJCLD,LAUTONEB,LSSD
950
951WRITE(UNIT=KULOUT,FMT='('' ALARO-0 cloud '')')
952WRITE(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  &) ')LPIL,LSTRAPRO,LNEWSTAT,LPHSPSH,LSMROT,LSMTPS, LSMNIMBT, &
961  &    L1DRHCRI, LGWRHCRI,&
962  &    NSMTBOT,NSMDNEB, NPRAG,NPRAC,NPRRI
963
964WRITE(UNIT=KULOUT,FMT='('' ALARO-0 prognostic convection  '')')
965WRITE(UNIT=KULOUT,&
966  &FMT='('' LCVPRO ='',L1,'' LCDDPRO ='',L1,'' LSCMF ='',L1)') &
967  &    LCVPRO,LCDDPRO,LSCMF
968
969WRITE(UNIT=KULOUT,FMT='('' COMMON YOMSIMPHL '')')
970WRITE(UNIT=KULOUT,FMT='('' LSIMPH= '',L5,'' LTRAJPS = '',L5 &
971 & ,'' LTRAJPST = '',L5 &
972 & ,'' LSMOOTHD = '',L5,'' LSMOOTHA = '',L5,'' LSMOOTHB = '',L5 &
973 & ,'' LCLOUDS = '',L5 )')&
974 & LSIMPH,LTRAJPS,LTRAJPST,LSMOOTHD,LSMOOTHA, &
975 & LSMOOTHB,LCLOUDS 
976WRITE(UNIT=KULOUT,FMT='('' LCVRASP = '',L5,'' LGWDSP = '',L5 &
977 & ,'' LRAYSP = '',L5,'' LSTRASP = '',L5,'' LVDIFSP = '',L5 &
978 & ,'' LRRMESSP = '',L5)')&
979 & LCVRASP,LGWDSP,LRAYSP,LSTRASP,LVDIFSP,LRRMESSP 
980WRITE(UNIT=KULOUT,FMT='('' COMMON YOMRCOEF '')')
981WRITE(UNIT=KULOUT,FMT='('' LRCOEF= '',L5 &
982 & ,'' LTLADDIA = '',L5,'' LGLOBRAD = '',L5)')&
983 & LRCOEF,LTLADDIA,LGLOBRAD 
984
985! TEST OF CONSISTENCY FOR RADIATION SCHEMES
986
987IF(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
992ENDIF
993
994!     TESTS OF CONSISTENCY INSIDE YOMPHY
995
996IF(LSTRAS.AND.LRNUMX)THEN
997  WRITE(NULOUT,FMT='('' ACPLUIS AND LRNUMX ARE NOT COMPATIBLE''&
998   & ,''      FOR THE MOMENT'')') 
999  CALL ABOR1('SU0PHY: ABOR1 CALLED')
1000ENDIF
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
1016WRITE(UNIT=KULOUT,FMT='('' COMMON YOMARPHY '')')
1017WRITE(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 & LMPA,LMICRO,LTURB,LMSE,LKFBCONV,LKFBD,LKFBS,LUSECHEM,&
1023 & LORILAM,LRDUST
1024
1025WRITE(UNIT=KULOUT,FMT='('' COMMON YOEPHY '')')
1026WRITE(UNIT=KULOUT,FMT='('' LEPHYS = '',L5, &
1027 & '' LECOND = '',L5,'' LECUMF = '',L5 &
1028 & )')&
1029 & LEPHYS,LECOND,LECUMF 
1030!WRITE(NULOUT,'("RCLDTOPP=",F10.2)') RCLDTOPP
1031WRITE(UNIT=KULOUT,FMT='('' LEDCLD = '',L5,'' LEGWDG = '',L5 &
1032 & ,'' LEOZOC = '',L5,'' LEQNGT = '',L5 &
1033 & ,'' LEO3CH = '',L5)')&
1034 & LEDCLD,LEGWDG,LEOZOC,LEQNGT,LEO3CH 
1035WRITE(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 & LERADI,LESHCV,LESURF,LEVDIF,LEOCWA,LEOCCO,LEOCSA,LECURR,RTHRFRTI
1041WRITE(UNIT=KULOUT,FMT='('' LEPCLD = '',L5,'' LEMETHOX= '',L5 &
1042 & ,'' LE4ALB = '',L5 &
1043 & )')&
1044 & 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
1097WRITE(UNIT=KULOUT,FMT='('' LSPHLC = '',L5,'' LVDFLC = '',L5 &
1098 & ,'' LVDFDS = '',L5,'' LSDRLC = '',L5,'' LSDRDS = '',L5)')&
1099 & LSPHLC,LVDFLC,LVDFDS,LSDRLC,LSDRDS 
1100WRITE(UNIT=KULOUT,FMT='('' LCZDEB = '',L5,'' LZMCON = '',L5 &
1101 & ,'' LKEXP  = '',L5)') LCZDEB,LZMCON,LKEXP 
1102WRITE(UNIT=KULOUT,FMT='('' ALPHA  = '',E16.6)') ALPHA
1103WRITE(UNIT=KULOUT,FMT='('' AH0    = '',E16.6,''m'')') AH0
1104WRITE(UNIT=KULOUT,FMT='('' USTARL = '',E16.6,''m s-1'')') USTARL
1105WRITE(UNIT=KULOUT,FMT='('' USTARS = '',E16.6,''m s-1'')') USTARS
1106WRITE(UNIT=KULOUT,FMT='('' ALANDZ0= '',E16.6,''m'')') ALANDZ0
1107WRITE(UNIT=KULOUT,FMT='('' ASEAZ0 = '',E16.6,''m'')') ASEAZ0
1108
1109IF (LAGPHY) THEN
1110  WRITE(UNIT=KULOUT,FMT='('' LAGPHY = '',L5,'' THE PHYSICS PAC&
1111   & KAGE IS CALLED AFTER THE DYNAMICS IN LAGGED MODE'')')LAGPHY 
1112ELSE
1113  WRITE(UNIT=KULOUT,FMT='('' LAGPHY = '',L5,'' THE PHYSICS PAC&
1114   & KAGE IS CALLED BEFORE THE DYNAMICS '')')LAGPHY 
1115ENDIF
1116WRITE(UNIT=KULOUT,FMT=*) 'CGMIXLEN=',TRIM(CGMIXLEN)
1117WRITE(UNIT=KULOUT,FMT='('' LPRGML = '',L4)') LPRGML
1118
1119!     ------------------------------------------------------------------
1120
1121IF (LHOOK) CALL DR_HOOK('SU0PHY',1,ZHOOK_HANDLE)
1122END SUBROUTINE SU0PHY
Note: See TracBrowser for help on using the repository browser.