GCC Code Coverage Report


Directory: ./
File: rad/su0phy.f90
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 268 408 65.7%
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 INTERFACE
201 SUBROUTINE ABOR1(CDTEXT)
202 CHARACTER(LEN=*) :: CDTEXT
203 END SUBROUTINE ABOR1
204 END INTERFACE
205 INTERFACE
206 SUBROUTINE POSNAM(KULNAM,CDNAML)
207 USE PARKIND1 ,ONLY : JPIM ,JPRB
208 INTEGER(KIND=JPIM),INTENT(IN) :: KULNAM
209 CHARACTER(LEN=*) ,INTENT(IN) :: CDNAML
210 END SUBROUTINE POSNAM
211 END INTERFACE
212 INTERFACE
213 SUBROUTINE SUSCM(KULOUT)
214 USE PARKIND1 ,ONLY : JPIM ,JPRB
215 INTEGER(KIND=JPIM),INTENT(IN) :: KULOUT
216 END SUBROUTINE SUSCM
217 END INTERFACE
218
219 ! ------------------------------------------------------------------
220
221 ! ------------------------------------------------------------------
222 NAMELIST/NAMPHY/&
223 ! * GROUPE DES CLES GENERALES.
224 &LMPHYS,LSLC &
225 ! * GROUPE DES CLES NE COMMANDANT PAS L'APPEL AUX ROUTINES AM-----.
226 &,LCAPE,LCONDWT,LCVCAS,LCVDD,LCVLIS,LCVPP,LHUNEG,LNEIGE &
227 &,LRNUMX,LCLSATUR,LSRCON,LSRCONT,L2PHYS,LRRGUST,LO3ABC,LNEBNXR &
228 &,LFPCOR,LNOIAS,LGLT,LNEWD,LHUCN,LQXRTGH &
229 &,LPROCLD,LEVAPP,LCOLLEC,LNSMLIS,LRELAXT,LRELAXW &
230 &,LAEROSEA,LAEROLAN,LAEROSOO,LAERODES,LAEROVOL,LAEROSUL &
231 &,LSSD,LPHCDPI,LBLVAR &
232 &,LZ0HSREL,LCVPRO,LCDDPRO &
233
234 ! * GROUPE DES CLES COMMANDANT L'APPEL AUX ROUTINES AM-----.
235 &,CGMIXLEN,LPRGML,LCVRA,LGWD,LGWDC,LNEBCO,LNEBN,LNEBR,LNEBT,LND2DIFF &
236 &,LOZONE,LRAY,LRAYLU,LREWS &
237 &,LRPROX,LRMIX,LRSTAB,LRAUTOEV,LVOIGT,LVFULL,LRTPP,LRTDL,LRAYPL &
238 &,LRAYFM,LRAYFM15,LRRMES,LSFHYD,LSNV,LSOLV,LFGEL,LSTRA,LSTRAS &
239 &,LVDIF,L3MT,LSCMF &
240 ! * GROUPE DES INDICES DE CALCUL.
241 &,NBITER,NOIR,NDPSFI,NPHYREP,LVGSN,LDIFCONS,LECT,LPTKE,LCVPGY,LPBLE &
242 &,LADJCLD,LCVPPKF,LECTFL,LAJUCV,LNEBGR,LNEBGY,LCVRAV3,LBCCOND &
243 &,LPIL, LSTRAPRO, LNEWSTAT, LPHSPSH, LSMNIMBT, LSMROT, LSMTPS &
244 &,L1DRHCRI, LGWRHCRI, NSMTBOT, NSMDNEB, NPRAG, NPRAC, NPRRI &
245 &,LAUTONEB
246 ! ------------------------------------------------------------------
247 !#include "namarphy.h"
248 ! -----------------------------------------------------------------
249 NAMELIST/NAEPHY/&
250 &LEPHYS, LECOND, LECUMF, LEDCLD, LEEVAP &
251 &, LEGWDG, LEOZOC, LEQNGT, LERADI, LERADS &
252 &, LESHCV, LESICE, LESURF, LEVDIF, LE4ALB &
253 &, LEPCLD, LAGPHY ,LEO3CH, LECO2DIU &
254 &, LWCOU ,LWCOU2W, LBUD23,LEMETHOX,LERA40,LERAIN &
255 &, LVDFTRAC,LMFTRAC,LEOCWA,LEOCCO,LEOCSA,NSTPW &
256 &, LECURR,RSOUTW ,RNORTW ,RDEGREW &
257 &, RTHRFRTI &
258 !&, RCLDTOPP & MPL 24.11.08
259 !&, NPHYINT & MPL 24.11.08
260 &, NEPHYS_PCFULL &
261 &, LEMWAVE
262 ! -----------------------------------------------------------------
263
264
265 ! -----------------------------------------------------------------
266 NAMELIST/NAPHLC/ LSPHLC, LVDFLC, LSDRLC, LCZDEB, LZMCON, LKEXP &
267 &,LVDFDS, LSDRDS &
268 &,ALPHA, AH0, USTARL, USTARS, ALANDZ0, ASEAZ0
269 ! -----------------------------------------------------------------
270
271
272 !#include "namtrajp.h"
273 !#include "namsimphl.h"
274 !#include "namrcoef.h"
275
276 ! ------------------------------------------------------------------
277 1 print*,'Dans SUOPHY ', KULOUT
278
279
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 IF (LHOOK) CALL DR_HOOK('SU0PHY',0,ZHOOK_HANDLE)
280
281 ! ------------------------------------------------------------------
282
283 !* 1. Set default values.
284 ! -------------------
285
286 !* 1.1.1 Set default values for Meteo-France physics
287 ! -------------------------------------------
288
289 1 LMPHYS=.FALSE.
290 1 LREASUR=.TRUE.
291
292 1 CGMIXLEN='Z'
293 1 LPRGML=.FALSE.
294 1 LCAPE=.FALSE.
295 1 LCONDWT=.FALSE.
296 1 LCVCAS=.FALSE.
297 1 LCVLIS=.FALSE.
298 1 LCVPP=.FALSE.
299 1 LCVPPKF=.FALSE.
300 1 LCVDD=.FALSE.
301 1 LHUNEG=.TRUE.
302 1 LNEIGE=.TRUE.
303 1 LRNUMX=.FALSE.
304 1 LCLSATUR=.FALSE.
305 1 LVOIGT=.FALSE.
306 1 LVFULL=.FALSE.
307 1 LRRGUST=.FALSE.
308 1 L2PHYS=.FALSE.
309 1 LO3ABC=.FALSE.
310 1 LAEROSEA=.FALSE.
311 1 LAEROLAN=.FALSE.
312 1 LAEROSOO=.FALSE.
313 1 LAERODES=.FALSE.
314 1 LAEROVOL=.FALSE.
315 1 LAEROSUL=.FALSE.
316 1 LRELAXT=.FALSE.
317 1 LRELAXW=.FALSE.
318 1 LE4ALB=.FALSE.
319 1 LGLT=.FALSE.
320 1 LNEWD=.FALSE.
321 1 LDIFCONS=.FALSE.
322 1 LECT=.FALSE.
323 1 LPTKE=.FALSE.
324 1 LECTFL=.FALSE.
325 1 LPBLE=.FALSE.
326 1 LCVPGY=.FALSE.
327 1 L3MT=.FALSE.
328
329 1 LCVRA=.FALSE.
330 1 LGWDC=.FALSE.
331 1 LGWD=.FALSE.
332 1 LHMTO=.FALSE.
333 1 LNEBCO=.FALSE.
334 1 LNEBN=.FALSE.
335 1 LNEBNXR=.FALSE.
336 1 LNEBR=.FALSE.
337 1 LNEBT=.FALSE.
338 1 LND2DIFF=.FALSE.
339 1 LQXRTGH=.FALSE.
340 1 LHUCN=.FALSE.
341 1 LOZONE=.FALSE.
342 1 LRAY=.FALSE.
343 1 LRAYLU=.FALSE.
344 1 LREWS=.FALSE.
345 1 LRPROX=.FALSE.
346 1 LRMIX=.FALSE.
347 1 LRSTAB=.FALSE.
348 1 LRAUTOEV=.FALSE.
349 1 LRTPP=.FALSE.
350 1 LRTDL=.FALSE.
351 1 LRAYPL=.FALSE.
352 1 LRAYFM=.FALSE.
353 1 LRAYFM15=.FALSE.
354 1 LRRMES=.FALSE.
355 1 LSFHYD=.FALSE.
356 1 LSNV=.FALSE.
357 1 LSOLV=.FALSE.
358 1 LFGEL=.FALSE.
359 1 LSRCON=.FALSE.
360 1 LSRCONT=.FALSE.
361 1 LSLC=.FALSE.
362 1 LSTRA=.FALSE.
363 1 LSTRAS=.FALSE.
364 1 LTHERMO=.FALSE.
365 1 LVDIF=.FALSE.
366 1 LVGSN=.FALSE.
367 1 LFPCOR=.FALSE.
368 1 LNOIAS=.FALSE.
369 1 LPHCDPI=.FALSE.
370 1 LBLVAR=.FALSE.
371
372 1 LZ0HSREL=.FALSE.
373
374 1 NBITER=2
375 1 NDPSFI=0
376 1 NPHYREP=1
377 1 NOIR=0
378
379 ! ---------------------------------------------------
380 ! ALARO-0 (cloud)
381 ! ---------------------------------------------------
382 1 LPIL=.FALSE.
383 1 LSTRAPRO=.FALSE.
384 1 LNEWSTAT=.TRUE.
385 1 LPHSPSH=.FALSE. ! Pseudo Historic Surface Precip Sensible Heat Flux
386 1 LSMROT=.FALSE.
387 1 LSMTPS=.FALSE.
388 1 LSMNIMBT=.FALSE.
389 1 L1DRHCRI=.FALSE.
390 1 LGWRHCRI=.FALSE.
391 1 NSMTBOT=0 ! interpolate
392 1 NSMDNEB=2 ! gradient limitation
393 1 NPRAG=1
394 1 NPRAC=1
395 1 NPRRI=1
396 ! ---------------------------------------------------
397 ! ALARO-0 (prognostic convection)
398 ! ---------------------------------------------------
399 1 LCVPRO=.FALSE.
400 1 LCDDPRO=.FALSE.
401 1 LSCMF=.FALSE.
402
403 ! - - - - - - - - - - - - - - - - - - - - - - - - - -
404 ! Cloud and precipitation prognostic scheme (Lopez) :
405 ! - - - - - - - - - - - - - - - - - - - - - - - - - -
406
407 1 LPROCLD=.FALSE.
408 1 LEVAPP=.TRUE.
409 1 LCOLLEC=.TRUE.
410 1 LNSMLIS=.TRUE.
411 1 LADJCLD=.TRUE.
412 1 LAUTONEB=.FALSE.
413 1 LSSD=.FALSE.
414
415 !AROME physics
416 1 LMPA=.FALSE.
417 1 LMICRO=.FALSE.
418 1 LTURB=.FALSE.
419 1 LMSE=.FALSE.
420 1 LKFBCONV=.FALSE.
421 1 LKFBD=.FALSE.
422 1 LKFBS=.FALSE.
423 1 LUSECHEM=.FALSE.
424 1 LORILAM=.FALSE.
425 1 LRDUST=.FALSE.
426 1 LBUFLUX=.TRUE.
427 1 CCOUPLING='E'
428
429 ! - - - - - - - - - - -
430 ! Module YOMPHY :
431 ! - - - - - - - - - - -
432
433 1 LAJUCV=.FALSE.
434 1 LNEBGR=.FALSE.
435 1 LNEBGY=.FALSE.
436 1 LBCCOND=.FALSE.
437
438 1 LCVRAV3=.FALSE.
439
440 !* 1.1.2 Set default values for simplified physical parametrization
441 ! of Meteo-France
442 ! -----------------------------------------------------------------
443
444 1 LSIMPH=.FALSE.
445 1 LTRAJPS=.FALSE.
446 1 LTRAJPST=.FALSE.
447 1 LSMOOTHD=.FALSE.
448 1 LSMOOTHA=.FALSE.
449 1 LSMOOTHB=.FALSE.
450 1 LCLOUDS=.FALSE.
451
452 1 LCVRASP=.FALSE.
453 1 LGWDSP=.FALSE.
454 1 LRAYSP=.FALSE.
455 1 LSTRASP=.FALSE.
456 1 LVDIFSP=.FALSE.
457 1 LRRMESSP=.FALSE.
458
459 1 LRCOEF=.FALSE.
460 1 LTLADDIA=.FALSE.
461 1 LGLOBRAD=.FALSE.
462
463 !* 1.2.1 Set default values for ECMWF physics package
464 ! --------------------------------------------
465
466 1 LEPHYS=.FALSE.
467 1 LAGPHY=.TRUE.
468
469 1 LECOND=.FALSE.
470 1 LEPCLD=.FALSE.
471 1 LECUMF=.FALSE.
472 1 LEDCLD=.FALSE.
473 1 LEEVAP=.TRUE.
474 1 LEGWDG=.FALSE.
475 1 LEOZOC=.FALSE.
476 1 LEQNGT=.FALSE.
477 1 LERADI=.FALSE.
478 1 LERADS=.FALSE.
479 1 LESHCV=.FALSE.
480 1 LESICE=.TRUE.
481 1 LESURF=.FALSE.
482 1 LEVDIF=.FALSE.
483 1 LEOCWA=.FALSE.
484 1 LEOCCO=.FALSE.
485 1 LEOCSA=.FALSE.
486 1 LEMETHOX=.FALSE.
487 1 LERA40=.FALSE.
488 1 LECURR=.FALSE.
489 1 LVDFTRAC=.TRUE.
490 1 LMFTRAC=.TRUE.
491 1 LERAIN=.FALSE.
492 LE4ALB=.FALSE.
493 1 RTHRFRTI=0.0_JPRB
494 !NPHYINT=0
495 LE4ALB=.FALSE.
496
497 !-------------------------------------------------------
498 ! pressure above which cloud scheme is not called
499 ! !!!WARNING!!! this has to be in the part of the domain
500 ! where the pure pressure level grid is used, otherwise
501 ! the code is not bit-reproducible!!!
502 ! Don't call the cloud scheme for pressures lower than 1hPa
503 !RCLDTOPP=100.0_JPRB
504
505 !--------------------------------------------------------
506
507 !* 1.2.2 Set-up linearized physical parametrization of ECMWF
508 ! ---------------------------------------------------
509
510 !LETRAJP = .FALSE.
511 !LETRAJPT= .FALSE.
512 !LERADI2 = .FALSE.
513 !LERADS2 = .FALSE.
514 !LERADSW2= .FALSE.
515 !LERADN2 = .FALSE.
516 !LERADFL2= .FALSE.
517 !LEDCLD2 = .FALSE.
518 !LENCLD2 = .FALSE.
519 !LEVAPLS2= .FALSE.
520 !LEVDIF2 = .FALSE.
521 !LEGWDG2 = .FALSE.
522 !LECUMF2 = .FALSE.
523 !LECUBM2 = .FALSE.
524 !LECOND2 = .FALSE.
525 !LEQNGT2 = .FALSE.
526 !LESURF2 = .FALSE.
527 !LEKPERT = .FALSE.
528 !LNCLIN = .FALSE.
529 !LREGCL = .FALSE.
530 !LTRACLNPH = .FALSE.
531
532 ! No perturbation of surface arrays
533 !LENOPERT = .TRUE.
534
535 !* Packing parameters
536 ! -------------------
537 !NPCKFT95 = 1
538 !NEXPBT95 = 6
539
540 ! LOGICAL FOR THE VERT DIFF SCHEME VDIFLCZ USED IN CONF 601
541
542 1 LSPHLC = .FALSE.
543 1 LVDFLC = .FALSE.
544 1 LVDFDS = .TRUE.
545 1 LSDRLC = .TRUE.
546 1 LSDRDS = .FALSE.
547 1 LCZDEB = .FALSE.
548 1 LZMCON = .TRUE.
549 1 LKEXP = .TRUE.
550 1 ALPHA = 3._JPRB
551 1 AH0 = 1000.0_JPRB
552 1 USTARL = 0.5_JPRB
553 1 USTARS = 0.2_JPRB
554 1 ALANDZ0 = 0.05_JPRB
555 1 ASEAZ0 = 0.0005_JPRB
556
557 1 NSTPW=2
558 ! NSTPW=30
559
560 1 LWCOU=.FALSE.
561 1 LWCOU2W=.FALSE.
562
563 ! Setup for 3 degree resolution wave model
564
565 ! RNORTW= 72.0
566 ! RSOUTW=-63.0
567 ! RDEGREW=3.0
568
569 ! Setup for 1.5 degree resolution wave model
570
571 1 RNORTW= 81.0_JPRB
572 1 RSOUTW=-81.0_JPRB
573 1 RDEGREW=1.5_JPRB
574
575 ! 1.3 Modify default values according to LECMWF
576
577
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 IF (LECMWF) THEN
578 LEPCLD=.TRUE.
579 LEVDIF=.TRUE.
580 LEOCWA=.FALSE.
581 LEOCCO=.FALSE.
582 LEOCSA=.TRUE.
583 LESURF=.TRUE.
584 LECOND=.FALSE.
585 LECUMF=.TRUE.
586 LEEVAP=.TRUE.
587 LEGWDG=.TRUE.
588 LEOZOC=.TRUE.
589 LEQNGT=.TRUE.
590 LERADI=.TRUE.
591 LERADS=.TRUE.
592 LESICE=.TRUE.
593 LEDCLD=.TRUE.
594 LEO3CH=.FALSE.
595 LECO2DIU=.FALSE.
596 LEMETHOX=.TRUE.
597 IF(NCONF == 1) THEN
598 LEPHYS=.TRUE.
599 ENDIF
600 IF(NCONF == 131) THEN
601 ! LERADI2 = .TRUE.
602 ! LERADS2 = .TRUE.
603 ! LEVDIF2 = .TRUE.
604 ! LEGWDG2 = .TRUE.
605 ! LECUMF2 = .TRUE.
606 ! LECOND2 = .TRUE.
607 ! IF(L131TL) THEN
608 ! LEPHYS=.TRUE.
609 ! LECOND=.TRUE.
610 ! LEPCLD=.FALSE.
611 ! ENDIF
612 LSPHLC=.TRUE.
613 LVDFLC=.TRUE.
614 LSDRLC=.TRUE.
615 LZMCON=.TRUE.
616 LKEXP =.TRUE.
617 ENDIF
618 IF (NCONF == 401 .OR. NCONF == 501) THEN
619 LEPHYS = .TRUE.
620 LECOND = .TRUE.
621 LEPCLD = .FALSE.
622
623 ! LETRAJP = .TRUE.
624 ! LERADI2 = .TRUE.
625 ! LERADS2 = .TRUE.
626 ! LEVDIF2 = .TRUE.
627 ! LEGWDG2 = .TRUE.
628 ! LECUMF2 = .TRUE.
629 ! LECOND2 = .TRUE.
630 ENDIF
631
632 IF(NCONF == 601.OR.NCONF == 801) THEN
633
634 ! Full physics when computing the trajectory
635
636 LEPHYS=.TRUE.
637
638 ! Simple scheme for TL and ADJ
639
640 LSPHLC = .TRUE.
641 LVDFLC = .TRUE.
642 LVDFDS = .TRUE.
643 LSDRLC = .TRUE.
644 LSDRDS = .TRUE.
645 LCZDEB = .FALSE.
646 LZMCON = .TRUE.
647 LKEXP = .TRUE.
648 ALPHA = 3._JPRB
649 AH0 = 1000.0_JPRB
650 USTARL = 0.5_JPRB
651 USTARS = 0.2_JPRB
652 ALANDZ0 = 0.05_JPRB
653 ASEAZ0 = 0.0005_JPRB
654
655 ENDIF
656 NPHY = JPHYEC
657 ELSE
658 IF ((NCONF == 1).OR.(NCONF == 131).OR.(NCONF == 401)&
659 & .OR.(NCONF == 501).OR.(NCONF == 601)&
660
6/12
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
1 & .OR.(NCONF == 701).OR.(NCONF == 801)) THEN
661 LAGPHY=.FALSE.
662 LCVCAS=.TRUE.
663 LCVDD=.TRUE.
664 LCVLIS=.TRUE.
665 LCVPP=.TRUE.
666 LSRCONT=.FALSE.
667 LCVRA=.TRUE.
668 LFGEL=.TRUE.
669 LGWD=.TRUE.
670 LHMTO=.TRUE.
671 LMPHYS=.TRUE.
672 LNEBN=.TRUE.
673 LNEBT=.FALSE.
674 LNEBNXR=.FALSE.
675 LNEIGE=.TRUE.
676 LRAY=.TRUE.
677 LRAYLU=.TRUE.
678 LRAYPL=.TRUE.
679 LRRMES=.TRUE.
680 LSFHYD=.TRUE.
681 LSOLV=.TRUE.
682 LSRCON=.TRUE.
683 LSTRA=.TRUE.
684 LTHERMO=.TRUE.
685 LVDIF=.TRUE.
686 NPHY = JPHYMF
687 IF(LAROME.AND..NOT.LFPOS) THEN
688 !extinction of MF phsic's keys for arome's run
689 !lfpos is added for 927 confs for example.
690 LCVRA=.FALSE.
691 LGWD=.FALSE.
692 LGWDC=.FALSE.
693 LNEBCO=.FALSE.
694 LNEBN=.FALSE.
695 LNEBR=.FALSE.
696 LNEBT=.FALSE.
697 LOZONE=.FALSE.
698 LRAY=.FALSE.
699 LRAYLU=.FALSE.
700 LREWS=.FALSE.
701 LRAYPL=.FALSE.
702 LRAYFM=.FALSE.
703 LRAYFM15=.FALSE.
704 LRRMES=.FALSE.
705 LSFHYD=.FALSE.
706 LSNV=.FALSE.
707 LSOLV=.FALSE.
708 LFGEL=.FALSE.
709 LSTRA=.FALSE.
710 LSTRAS=.FALSE.
711 LVDIF=.FALSE.
712 !initialisation of AROME's physic ones
713 LMPA=.TRUE.
714 LMICRO=.FALSE.
715 LTURB=.FALSE.
716 LMSE=.FALSE.
717 LKFBCONV=.FALSE.
718 LUSECHEM=.FALSE.
719 LKFBD=.FALSE.
720 LKFBS=.FALSE.
721 LUSECHEM=.FALSE.
722 LORILAM=.FALSE.
723 LRDUST=.FALSE.
724 NPHY = JPHYARO
725 ENDIF
726 ENDIF
727 ENDIF
728
729 ! ------------------------------------------------------------------
730
731 !* 2. Modify default values.
732 ! ----------------------
733
734 ! Ce qui concerne NAMPHY commente par MPL le 14.04.09
735 !CALL POSNAM(NULNAM,'NAMPHY')
736 !READ(NULNAM,NAMPHY)
737
738 ! Ce qui concerne NAMARPHY commente par MPL le 24.11.08
739 !CALL POSNAM(NULNAM,'NAMARPHY')
740 !READ(NULNAM,NAMARPHY)
741 !IF(LMSE) THEN
742 ! LSOLV=.FALSE.
743 ! LFGEL=.FALSE.
744 ! LSNV=.FALSE.
745 ! LVGSN=.FALSE.
746 ! WRITE(NULOUT,'('' INFO -old isba-lsolv,lfgel,lsnv,lvgsn- reset to .F. '', &
747 ! &'' when using lground i.e. surfex '')')
748 !ENDIF
749
750 1 NEPHYS_PCFULL=3
751
752 ! Ce qui concerne NAEPHY commente par MPL le 14.04.09
753 !CALL POSNAM(NULNAM,'NAEPHY')
754 !READ(NULNAM,NAEPHY)
755
756 IF(LPC_FULL)THEN
757 IF(NEPHYS_PCFULL < 2 .OR.NEPHYS_PCFULL > 3)THEN
758 CALL ABOR1(' SU0PHY: NEPHYS_PCFULL')
759 ENDIF
760 ELSE
761 NEPHYS_PCFULL=3
762 ENDIF
763
764 IF( NCONF == 201.OR.NCONF == 202 &
765 & .OR.NCONF == 421.OR.NCONF == 422 &
766
4/8
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
1 & .OR.NCONF == 521.OR.NCONF == 522 )THEN
767 LREASUR=.FALSE.
768 ENDIF
769 !IF(.NOT.(LEPHYS.OR.LMPHYS)) THEN
770 ! LAGPHY=.FALSE.
771 ! LSLPHY=.FALSE.
772 ! WRITE(NULOUT,'('' INFO - LSLPHY RESET TO .FALSE. '')')
773 !ENDIF
774
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 IF(LEPCLD) THEN
775 LECOND=.FALSE.
776 ENDIF
777 IF(LAGPHY.AND.NDPSFI /= 0) THEN
778 NDPSFI=0
779 WRITE(NULOUT,'('' WARNING - NDPSFI RESET TO 0 '')')
780 ENDIF
781
782 ! Commente par MPL 24.11.08
783 !CALL POSNAM(NULNAM,'NAPHLC')
784 !READ(NULNAM,NAPHLC)
785
786 ! Commente par MPL 24.11.08
787 !CALL POSNAM (NULNAM,'NAMTRAJP')
788 !READ (NULNAM,NAMTRAJP)
789
790 ! Commente par MPL 24.11.08
791 !CALL POSNAM(NULNAM,'NAMSIMPHL')
792 !READ(NULNAM,NAMSIMPHL)
793
794 ! Commente par MPL 24.11.08
795 !CALL POSNAM(NULNAM,'NAMRCOEF')
796 !READ(NULNAM,NAMRCOEF)
797
798 !-------------------------------------------------
799 ! Initialize profile extractions for the Single Column Model .
800 !-------------------------------------------------
801
802 1 CALL SUSCM(KULOUT)
803
804 ! ------------------------------------------------------------------
805
806 !* 3. Do tests of consistency.
807 ! ------------------------
808
809 1 IERR=0
810
811 ! * Test that adequate physics is activated when at least one of the
812 ! options LRETCFOU, LWRTCFOU, LRCOEF,is set to .TRUE.
813
1/8
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
1 IF( LWRTCFOU .AND. ((.NOT.LMPHYS).OR.LEPHYS.OR.LAGPHY) ) THEN
814 IERR=IERR+1
815 WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
816 WRITE(KULOUT,'(1X,A,A,A)') ' SU0PHY: options ',&
817 & 'LWRTC, LWRTCFOU ',&
818 & 'require the following options for physics:'
819 WRITE(KULOUT,'(1X,A)') ' - LMPHYS=.TRUE. '
820 WRITE(KULOUT,'(1X,A)') ' - LEPHYS=.FALSE. '
821 WRITE(KULOUT,'(1X,A)') ' - LAGPHY=.FALSE. '
822 IF(.NOT.LRAYSP) THEN
823 WRITE(KULOUT,'(1X,A,A,A)') ' SU0PHY: option ',&
824 & ' LWRTCFOU ',&
825 & 'require the following option for simplified physics:'
826 WRITE(KULOUT,'(1X,A)') ' - LRAYSP=.TRUE. '
827 ENDIF
828 ENDIF
829
1/10
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
1 IF( LRETCFOU .AND. ((.NOT.(LMPHYS.OR.LSIMPH)).OR.LEPHYS.OR.LAGPHY) ) THEN
830 IERR=IERR+1
831 WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
832 WRITE(KULOUT,'(1X,A,A,A)') ' SU0PHY: option ',&
833 & ' LRETCFOU ',&
834 & 'require the following options for physics:'
835 WRITE(KULOUT,'(1X,A)') ' - LMPHYS=.TRUE. or LSIMPH=.TRUE.'
836 WRITE(KULOUT,'(1X,A)') ' - LEPHYS=.FALSE. '
837 WRITE(KULOUT,'(1X,A)') ' - LAGPHY=.FALSE. '
838 ENDIF
839
1/8
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
1 IF( LRCOEF .AND. ((.NOT.LMPHYS).OR.LEPHYS.OR.LAGPHY) ) THEN
840 IERR=IERR+1
841 WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
842 WRITE(KULOUT,'(1X,A,A,A)') ' SU0PHY: options ',&
843 & 'LRCOEF ',&
844 & 'require the following options for physics:'
845 WRITE(KULOUT,'(1X,A)') ' - LMPHYS=.TRUE. '
846 WRITE(KULOUT,'(1X,A)') ' - LEPHYS=.FALSE. '
847 WRITE(KULOUT,'(1X,A)') ' - LAGPHY=.FALSE. '
848 IF(.NOT.LRAYSP) THEN
849 WRITE(KULOUT,'(1X,A,A,A)') ' SU0PHY: options ',&
850 & 'LRCOEF ',&
851 & 'require the following option for simplified physics:'
852 WRITE(KULOUT,'(1X,A)') ' - LRAYSP=.TRUE. '
853 ENDIF
854 ENDIF
855
856 ! * Test that options LRETCFOU, LWRTCFOU are set to .FALSE.
857 ! when at least LRCOEF=.TRUE.
858
1/6
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
1 IF( (LRCOEF) .AND. (LRETCFOU.OR.LWRTCFOU) ) THEN
859 IERR=IERR+1
860 WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
861 WRITE(KULOUT,'(1X,A,A,A)') ' SU0PHY: options ',&
862 & 'LRCOEF ',&
863 & 'require that:'
864 WRITE(KULOUT,'(1X,A)') ' - LRETCFOU=.FALSE. '
865 WRITE(KULOUT,'(1X,A)') ' - LWRTCFOU=.FALSE. '
866 ENDIF
867
868 ! * Test that option LSRCONT is set to .FALSE. when LSRCON=.FALSE.
869
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
1 IF( (LSRCONT) .AND. (.NOT.LSRCON) ) THEN
870 IERR=IERR+1
871 WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
872 WRITE(KULOUT,'(1X,A,A,A)') ' SU0PHY: options ',&
873 & 'LSRCONT ',&
874 & 'require that:'
875 WRITE(KULOUT,'(1X,A)') ' - LSRCON=.TRUE. '
876 ENDIF
877
878 ! * Use NDPSFI=1 when not available or inconsistent with some other options?
879 !IF(LGWADV .AND. (NDPSFI==1)) THEN
880 ! * these two options actually can run together on an informatic
881 ! point of view, but the current assumptions done with LGWADV=T
882 ! are that a particle which is on the Earth surface remains
883 ! on the Earth surface; this is equivalent to assume that "etadot_surf"
884 ! is always zero. This condition is satisfied when NDPSFI=0
885 ! but not when NDPSFI=1 which gives a non-zero value to "etadot_surf".
886 ! So one forbids combination "LGWADV .AND. (NDPSFI==1)" which leads
887 ! to inconsistencies in the model at the surface.
888 ! IERR=IERR+1
889 ! WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
890 ! WRITE(KULOUT,'(1X,A,A,A)') ' SU0PHY: options ',&
891 ! & 'NDPSFI=1 ',&
892 ! & 'require that:'
893 ! WRITE(KULOUT,'(1X,A)') ' - LGWADV=.FALSE. '
894 !ENDIF
895
896 ! TESTS FOR ALARO-0 (cloud)
897
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
1 IF (LPIL.AND..NOT.LCONDWT) THEN
898 IERR=IERR+1
899 WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
900 WRITE(KULOUT,'(1X,A)') ' SU0PHY: LPIL requires LCONDWT '
901 ENDIF
902
903 ! TESTS FOR ALARO-0 (prognostic convection)
904
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 IF (LCVPRO) THEN
905 LCDDPRO=.TRUE.
906 IF (NCONF /= 1)THEN
907 WRITE(KULOUT,'(1X, A)') 'WARNING: LCVPRO requires NCONF=1'
908 LCVPRO=.FALSE.
909 LCDDPRO=.FALSE.
910 ENDIF
911 ENDIF
912
913
1/6
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
1 IF (LPHSPSH .AND. .NOT.(L3MT.OR.LSTRAPRO)) THEN
914 ! * For the time being, LPHSPSH requires L3MT.OR.LSTRAPRO (missing code
915 ! in CPTEND in the other cases, to be coded later).
916 IERR=IERR+1
917 WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
918 WRITE(KULOUT,'(1X,A)') ' SU0PHY: LPHSPSH requires L3MT.OR.LSTRAPRO '
919 ENDIF
920
921 ! * Use simplified physics with LMPA=T?
922
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
1 IF(LMPA.AND.LSIMPH) THEN
923 ! * Simplified physics is not consistent with AROME physics
924 ! concerning most of the physical parameterizations.
925 IERR=IERR+1
926 WRITE(KULOUT,'(1X,A,I3,A)') ' ! SU0PHY: ERROR NR ',IERR,' !!!'
927 WRITE(KULOUT,'(1X,A)') ' SU0PHY: LMPA and LSIMPH cannot be both to T.'
928 ENDIF
929
930
931
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 IF (IERR >= 1) THEN
932 CALL FLUSH(KULOUT)
933 CALL ABOR1(' SU0PHY: ABOR1 CALLED')
934 ENDIF
935
936 ! ------------------------------------------------------------------
937
938 !* 4. Print final values.
939 ! -------------------
940
941 1 WRITE(UNIT=KULOUT,FMT='('' COMMON YOMPHY '')')
942 1 WRITE(UNIT=KULOUT,FMT='('' LMPHYS= '',L5,'' LREASUR = '',L5)')LMPHYS,LREASUR
943 if (1==0) then !!!!! A REVOIR (MPL)
944 WRITE(UNIT=KULOUT,FMT='('' LCONDWT='',L5,'' LCVPP = '',L5,&
945 & '' LCVPPKF = '',L5,&
946 & '' LNEIGE = '',L5,'' LRNUMX = '',L5,'' LCLSATUR = '',L5,'' LHUNEG = '',L5,&
947 & '' LVOIGT = '',L5,'' LVFULL = '',L5,&
948 & '' L2PHYS = '',L5,&
949 & '' LCVDD = '',L5,'' LCAPE= '',L5,'' LSRCON = '',L5,&
950 & '' LCVLIS = '',L5,'' LCVCAS= '',L5,'' LSRCONT= '',L5,'' LO3ABC= '',L5, &
951 & '' LAEROSEA = '',L5,'' LAEROLAN = '',L5,'' LAEROSOO = '',L5, &
952 & '' LAERODES = '',L5,'' LAEROVOL = '',L5,'' LAEROSUL = '',L5, &
953 & '' LRELAXT = '',L5,'' LRELAXW = '',L5,&
954 & '' LSLC = '',L5,'' LRRGUST= '',L5, &
955 & '' LNEWD = '',L5,'' LGLT= '',L5,'' LDIFCONS= '',L5, &
956 & '' LECT = '',L5,'' LECTFL = '',L5,'' LPBLE = '',L5,'' LCVPGY= '',L5, &
957 & '' LPTKE= '',L5,'' L3MT= '',L5 &
958 & )')&
959 & LCONDWT,LCVPP,LCVPPKF,LNEIGE,LRNUMX,LCLSATUR,LHUNEG,LVOIGT,LVFULL,L2PHYS,LCVDD,&
960 & LCAPE,LSRCON,LCVLIS,LCVCAS,LSRCONT,LO3ABC,LAEROSEA,LAEROLAN,LAEROSOO, &
961 & LAERODES,LAEROVOL,LAEROSUL,LRELAXT,LRELAXW,LSLC,LRRGUST,LNEWD,LGLT,&
962 & LDIFCONS,LECT,LECTFL,LPBLE,LCVPGY,LPTKE,L3MT
963 else
964 1 print*,'OKL'
965 1 print*,'LOGICS',&
966 1 & LCONDWT,LCVPP,LCVPPKF,LNEIGE,LRNUMX,LCLSATUR,LHUNEG,LVOIGT,LVFULL,L2PHYS,LCVDD,&
967 1 & LCAPE,LSRCON,LCVLIS,LCVCAS,LSRCONT,LO3ABC,LAEROSEA,LAEROLAN,LAEROSOO, &
968 1 & LAERODES,LAEROVOL,LAEROSUL,LRELAXT,LRELAXW,LSLC,LRRGUST,LNEWD,LGLT,&
969 2 & LDIFCONS,LECT,LECTFL,LPBLE,LCVPGY,LPTKE,L3MT
970 endif
971 WRITE(UNIT=KULOUT,FMT='('' LCVRA = '',L5 ,'' LFPCOR = '',L5&
972 & ,'' LNOIAS = '',L5 &
973 & ,'' LGWD = '',L5,'' LHMTO = '',L5,'' LRAY = '',L5 &
974 & ,'' LSFHYD = '',L5,'' LSTRA = '',L5,'' LTHERMO = '',L5,/&
975 & ,'' LVDIF = '',L5,'' LNEBCO = '',L5,'' LNEBT = '',L5,/&
976 & ,'' LRRMES = '',L5,'' LOZONE = '',L5,'' LNEBR = '',L5,/&
977 & ,'' LSNV = '',L5,'' LSOLV = '',L5,'' LFGEL = '',L5,/&
978 & ,'' LVGSN ='',L5,'' LND2DIFF ='',L5,/&
979 & ,'' LNEBN = '',L5,'' LNEBNXR = '',L5,'' LQXRTGH = '',L5,'' LSTRAS = '',L5,/&
980 & ,'' LHUCN = '',L5,'' LGWDC = '',L5,'' LRAYFM = '',L5,'' LRAYFM15= '',L5,/&
981 & ,'' LRAYLU = '',L5,'' LREWS = '',L5,'' LRPROX = '',L5 /&
982 & ,'' LRMIX = '',L5,'' LRSTAB = '',L5,''LRAUTOEV = '',L5 /&
983 & ,'' LRTPP = '',L5,'' LRTDL = '',L5,'' LRAYPL = '',L5 &
984 & )')&
985 1 & LCVRA,LFPCOR,LNOIAS,LGWD,LHMTO,LRAY,LSFHYD,LSTRA,LTHERMO,LVDIF,LNEBCO,&
986 1 & LNEBT,LRRMES,LOZONE,LNEBR,LSNV,LSOLV,LFGEL,LVGSN,LND2DIFF,&
987 1 & LNEBN,LNEBNXR,LQXRTGH,LSTRAS,LHUCN,LGWDC,&
988 1 & LRAYFM,LRAYFM15,LRAYLU,LREWS,&
989 2 & LRPROX,LRMIX,LRSTAB,LRAUTOEV,LRTPP,LRTDL,LRAYPL
990 WRITE(UNIT=KULOUT,FMT='('' NBITER = '',I2,'' NDPSFI = '',I2,'' NPHYREP = '',I2)') &
991 1 & NBITER,NDPSFI,NPHYREP
992 1 WRITE(UNIT=KULOUT,FMT='('' NOIR = '',I2)')NOIR
993 !WRITE(UNIT=KULOUT,FMT='('' NPHYINT = '',I2)')NPHYINT
994
995 1 WRITE(UNIT=KULOUT,FMT='('' - - - - - - - - - -'')')
996 1 WRITE(UNIT=KULOUT,FMT='('' COMMON YOMPHY'')')
997 1 WRITE(UNIT=KULOUT,FMT='('' - - - - - - - - - -'')')
998 WRITE(UNIT=KULOUT,FMT='(&
999 & '' LECT = '',L5,'' LAJUCV = '',L5,/, &
1000 & '' LCVRAV3 = '',L5, &
1001 & '' LNEBGR = '',L5,'' LNEBGY = '',L5,'' LBCCOND = '',L5 &
1002 1 & )') LECT, LAJUCV, &
1003 2 & LCVRAV3, LNEBGR, LNEBGY, LBCCOND
1004
1005 1 WRITE(UNIT=KULOUT,FMT='('' - - - - - - - - -'')')
1006 1 WRITE(UNIT=KULOUT,FMT='('' MICROPHYSICS KEY '')')
1007 1 WRITE(UNIT=KULOUT,FMT='('' - - - - - - - - -'')')
1008 WRITE(UNIT=KULOUT,FMT='( '' LPROCLD = '',L5 &
1009 &,'' LEVAPP = '',L5,'' LCOLLEC = '',L5,'' LNSMLIS = '',L5 &
1010 &,'' LADJCLD = '',L5,'' LAUTONEB = '',L5,'' LSSD = '',L5)')&
1011 1 &LPROCLD,LEVAPP,LCOLLEC,LNSMLIS,LADJCLD,LAUTONEB,LSSD
1012
1013 1 WRITE(UNIT=KULOUT,FMT='('' ALARO-0 cloud '')')
1014 WRITE(UNIT=KULOUT,FMT='('' LPIL = '',L5,'' LSTRAPRO = '',L5 &
1015 &,'' LNEWSTAT = '',L5 &
1016 &,'' LPHSPSH = '',L5 ,'' LSMROT = '',L5 &
1017 &,'' LSMTPS = '',L5 ,'' LSMNIMBT = '',L5 &
1018 &,'' L1DRHCRI = '',L5 ,'' LGWRHCRI = '',L5 &
1019 &,'' NSMTBOT = '',I2,'' NSMDNEB = '',I2 &
1020 &,'' NPRAG = '',I2,'' NPRAC = '',I2 &
1021 &,'' NPRRI = '',I2 &
1022 1 &) ')LPIL,LSTRAPRO,LNEWSTAT,LPHSPSH,LSMROT,LSMTPS, LSMNIMBT, &
1023 1 & L1DRHCRI, LGWRHCRI,&
1024 2 & NSMTBOT,NSMDNEB, NPRAG,NPRAC,NPRRI
1025
1026 1 WRITE(UNIT=KULOUT,FMT='('' ALARO-0 prognostic convection '')')
1027 WRITE(UNIT=KULOUT,&
1028 &FMT='('' LCVPRO ='',L1,'' LCDDPRO ='',L1,'' LSCMF ='',L1)') &
1029 1 & LCVPRO,LCDDPRO,LSCMF
1030
1031 1 WRITE(UNIT=KULOUT,FMT='('' COMMON YOMSIMPHL '')')
1032 WRITE(UNIT=KULOUT,FMT='('' LSIMPH= '',L5,'' LTRAJPS = '',L5 &
1033 & ,'' LTRAJPST = '',L5 &
1034 & ,'' LSMOOTHD = '',L5,'' LSMOOTHA = '',L5,'' LSMOOTHB = '',L5 &
1035 & ,'' LCLOUDS = '',L5 )')&
1036 1 & LSIMPH,LTRAJPS,LTRAJPST,LSMOOTHD,LSMOOTHA, &
1037 2 & LSMOOTHB,LCLOUDS
1038 WRITE(UNIT=KULOUT,FMT='('' LCVRASP = '',L5,'' LGWDSP = '',L5 &
1039 & ,'' LRAYSP = '',L5,'' LSTRASP = '',L5,'' LVDIFSP = '',L5 &
1040 & ,'' LRRMESSP = '',L5)')&
1041 1 & LCVRASP,LGWDSP,LRAYSP,LSTRASP,LVDIFSP,LRRMESSP
1042 1 WRITE(UNIT=KULOUT,FMT='('' COMMON YOMRCOEF '')')
1043 WRITE(UNIT=KULOUT,FMT='('' LRCOEF= '',L5 &
1044 & ,'' LTLADDIA = '',L5,'' LGLOBRAD = '',L5)')&
1045 1 & LRCOEF,LTLADDIA,LGLOBRAD
1046
1047 ! TEST OF CONSISTENCY FOR RADIATION SCHEMES
1048
1049
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 IF(LMPHYS) THEN
1050 IF((LRAY.AND.LRAYFM).OR.(LRAY.AND.LRAYFM15).OR.(LRAYFM15.AND.LRAYFM)) THEN
1051 WRITE(NULOUT,'('' WARNING - 2 RADIATION SCHEMES... '')')
1052 CALL ABOR1('SU0PHY: ABOR1 CALLED')
1053 ENDIF
1054 ENDIF
1055
1056 ! TESTS OF CONSISTENCY INSIDE YOMPHY
1057
1058
1/4
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
1 IF(LSTRAS.AND.LRNUMX)THEN
1059 WRITE(NULOUT,FMT='('' ACPLUIS AND LRNUMX ARE NOT COMPATIBLE''&
1060 & ,'' FOR THE MOMENT'')')
1061 CALL ABOR1('SU0PHY: ABOR1 CALLED')
1062 ENDIF
1063
1064 ! TESTS OF CONSISTENCY BETWEEN YOMPHY AND INITIALIZATION
1065
1066 !IF (.NOT.LMPHYS.AND..NOT.LEPHYS) THEN
1067 ! Digital Filter Initialisation
1068 ! IF ((NEINI == 2.OR.NEINI == 4).AND.NEDFI >= 2) THEN
1069 ! IF (NEDFI <= 5) THEN
1070 ! WRITE(NULOUT,FMT='('' YOMPHY AND YEMDFI ARE NOT COMPATIBLE'')')
1071 ! CALL ABOR1(' DIABATIC DFI WITHOUT PHYSICS !')
1072 ! ELSE
1073 ! WRITE(NULOUT,FMT='('' CAUTION : FORWARD DFI WITHOUT PHYSICS'')')
1074 ! ENDIF
1075 ! ENDIF
1076 !ENDIF
1077
1078 1 WRITE(UNIT=KULOUT,FMT='('' COMMON YOMARPHY '')')
1079 WRITE(UNIT=KULOUT,FMT='('' LMPA = '',L5, &
1080 & '' LMICRO = '',L5,'' LTURB = '',L5, &
1081 & '' LMSE = '',L5,'' LKFBCONV = '',L5,&
1082 & '' LKFBD = '',L5,'' LKFBS = '',L5,&
1083 & '' LUSECHEM = '',L5,'' LORILAM = '',L5,'' LRDUST = '',L5)')&
1084 1 & LMPA,LMICRO,LTURB,LMSE,LKFBCONV,LKFBD,LKFBS,LUSECHEM,&
1085 2 & LORILAM,LRDUST
1086
1087 1 WRITE(UNIT=KULOUT,FMT='('' COMMON YOEPHY '')')
1088 WRITE(UNIT=KULOUT,FMT='('' LEPHYS = '',L5, &
1089 & '' LECOND = '',L5,'' LECUMF = '',L5 &
1090 & )')&
1091 1 & LEPHYS,LECOND,LECUMF
1092 !WRITE(NULOUT,'("RCLDTOPP=",F10.2)') RCLDTOPP
1093 WRITE(UNIT=KULOUT,FMT='('' LEDCLD = '',L5,'' LEGWDG = '',L5 &
1094 & ,'' LEOZOC = '',L5,'' LEQNGT = '',L5 &
1095 & ,'' LEO3CH = '',L5)')&
1096 1 & LEDCLD,LEGWDG,LEOZOC,LEQNGT,LEO3CH
1097 WRITE(UNIT=KULOUT,FMT='('' LERADI = '',L5 &
1098 & ,'' LESHCV = '',L5,'' LESURF = '',L5,'' LEVDIF = '',L5 &
1099 & ,'' LEOCWA = '',L5,'' LEOCCO = '',L5,'' LEOCSA = '',L5 &
1100 & ,'' LECURR = '',L5,'' RTHRFRTI = '',F7.2 &
1101 & )')&
1102 1 & LERADI,LESHCV,LESURF,LEVDIF,LEOCWA,LEOCCO,LEOCSA,LECURR,RTHRFRTI
1103 WRITE(UNIT=KULOUT,FMT='('' LEPCLD = '',L5,'' LEMETHOX= '',L5 &
1104 & ,'' LE4ALB = '',L5 &
1105 & )')&
1106 1 & LEPCLD,LEMETHOX,LE4ALB
1107
1108 ! Do not allow storage of trajectory in TL physics if tracers
1109 ! are to be included in linearized physics (temporary)
1110 !IF (LETRAJP .AND. LETRAJPT .AND. LTRACLNPH) THEN
1111 ! WRITE(UNIT=KULOUT,FMT='('' CAUTION : STORAGE OF TRAJECTORY IN LINEAR. PHYSICS NOT YET '')')
1112 ! WRITE(UNIT=KULOUT,FMT='('' IMPLEMENTED FOR TRACERS: LETRAJPT WILL BE RESET TO .FALSE. '')')
1113 !ENDIF
1114
1115 !IF (LETRAJP) THEN
1116 ! WRITE(UNIT=KULOUT,FMT='('' ======================== '')')
1117 ! WRITE(UNIT=KULOUT,FMT='('' LINEAR PHYSICS ACTIVATED '')')
1118 ! WRITE(UNIT=KULOUT,FMT='('' ======================== '')')
1119 ! WRITE(UNIT=KULOUT,FMT='('' LERADI2 = '',L4 &
1120 ! & ,'' LERADS2 = '',L4 &
1121 ! & ,'' LERADSW2= '',L4 &
1122 ! & ,'' LERADN2 = '',L4 &
1123 ! & ,'' LERADFL2= '',L4 &
1124 ! & )')&
1125 ! & LERADI2,LERADS2,LERADSW2,LERADN2,LERADFL2
1126 ! WRITE(UNIT=KULOUT,FMT='('' LEDCLD2 = '',L4 &
1127 ! & ,'' LENCLD2 = '',L4 &
1128 ! & ,'' LEVAPLS2= '',L4 &
1129 ! & ,'' LREGCL = '',L4 &
1130 ! & ,'' LNCLIN = '',L4 &
1131 ! & )')&
1132 ! & LEDCLD2,LENCLD2,LEVAPLS2,LREGCL,LNCLIN
1133 ! WRITE(UNIT=KULOUT,FMT='('' LECUMF2 = '',L4 &
1134 ! & ,'' LECUBM2 = '',L4 &
1135 ! & ,'' LECOND2 = '',L4 &
1136 ! & )')&
1137 ! & LECUMF2,LECUBM2,LECOND2
1138 ! WRITE(UNIT=KULOUT,FMT='('' LEVDIF2 = '',L4 &
1139 ! & ,'' LEGWDG2 = '',L4 &
1140 ! & ,'' LEQNGT2 = '',L4 &
1141 ! & ,'' LESURF2 = '',L4 &
1142 ! & )')&
1143 ! & LEVDIF2,LEGWDG2,LEQNGT2,LESURF2
1144 ! WRITE(UNIT=KULOUT,FMT='('' LEKPERT = '',L4,'' LENOPERT = '',L4)')&
1145 ! & LEKPERT,LENOPERT
1146 ! WRITE(UNIT=KULOUT,FMT='('' ======================== '')')
1147 ! WRITE(UNIT=KULOUT,FMT='('' LETRAJPT = '',L4)')LETRAJPT
1148 ! WRITE(UNIT=KULOUT,FMT='('' ======================== '')')
1149 ! WRITE(UNIT=KULOUT,FMT='('' LTRACLNPH = '',L4)')LTRACLNPH
1150 ! WRITE(UNIT=KULOUT,FMT='('' ======================== '')')
1151 !ELSE
1152 ! WRITE(UNIT=KULOUT,FMT='('' ============================ '')')
1153 ! WRITE(UNIT=KULOUT,FMT='('' LINEAR PHYSICS NOT ACTIVATED '')')
1154 ! WRITE(UNIT=KULOUT,FMT='('' ============================ '')')
1155 ! WRITE(UNIT=KULOUT,FMT='('' LENCLD2 = '',L4)')LENCLD2
1156 ! WRITE(UNIT=KULOUT,FMT='('' LEVAPLS2= '',L4)')LEVAPLS2
1157 !ENDIF
1158
1159 WRITE(UNIT=KULOUT,FMT='('' LSPHLC = '',L5,'' LVDFLC = '',L5 &
1160 & ,'' LVDFDS = '',L5,'' LSDRLC = '',L5,'' LSDRDS = '',L5)')&
1161 1 & LSPHLC,LVDFLC,LVDFDS,LSDRLC,LSDRDS
1162 WRITE(UNIT=KULOUT,FMT='('' LCZDEB = '',L5,'' LZMCON = '',L5 &
1163 1 & ,'' LKEXP = '',L5)') LCZDEB,LZMCON,LKEXP
1164 1 WRITE(UNIT=KULOUT,FMT='('' ALPHA = '',E16.6)') ALPHA
1165 1 WRITE(UNIT=KULOUT,FMT='('' AH0 = '',E16.6,''m'')') AH0
1166 1 WRITE(UNIT=KULOUT,FMT='('' USTARL = '',E16.6,''m s-1'')') USTARL
1167 1 WRITE(UNIT=KULOUT,FMT='('' USTARS = '',E16.6,''m s-1'')') USTARS
1168 1 WRITE(UNIT=KULOUT,FMT='('' ALANDZ0= '',E16.6,''m'')') ALANDZ0
1169 1 WRITE(UNIT=KULOUT,FMT='('' ASEAZ0 = '',E16.6,''m'')') ASEAZ0
1170
1171
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 IF (LAGPHY) THEN
1172 WRITE(UNIT=KULOUT,FMT='('' LAGPHY = '',L5,'' THE PHYSICS PAC&
1173 1 & KAGE IS CALLED AFTER THE DYNAMICS IN LAGGED MODE'')')LAGPHY
1174 ELSE
1175 WRITE(UNIT=KULOUT,FMT='('' LAGPHY = '',L5,'' THE PHYSICS PAC&
1176 & KAGE IS CALLED BEFORE THE DYNAMICS '')')LAGPHY
1177 ENDIF
1178 1 WRITE(UNIT=KULOUT,FMT=*) 'CGMIXLEN=',TRIM(CGMIXLEN)
1179 1 WRITE(UNIT=KULOUT,FMT='('' LPRGML = '',L4)') LPRGML
1180
1181 ! ------------------------------------------------------------------
1182
1183
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 IF (LHOOK) CALL DR_HOOK('SU0PHY',1,ZHOOK_HANDLE)
1184 1 END SUBROUTINE SU0PHY
1185