source: trunk/LMDZ.VENUS/libf/phyvenus/conf_phys.F90 @ 2187

Last change on this file since 2187 was 2135, checked in by slebonnois, 6 years ago

SL, Venus: new keys for flexibility cp0/cp(T) and Held-Suarez type physics

File size: 12.3 KB
Line 
1!
2! $Header: /home/cvsroot/LMDZ4/libf/phylmd/conf_phys.F90,v 1.3 2005/02/07 15:15:31 fairhead Exp $
3!
4!
5!
6
7  subroutine conf_phys(ok_journe, ok_mensuel, ok_instan, &
8 &                     if_ebil)
9   use init_print_control_mod, only: init_print_control
10   use print_control_mod, only: lunout
11   use IOIPSL, only: getin
12
13   implicit none
14
15   include "YOMCST.h"
16   include "clesphys.h"
17   include "compbl.h"
18
19! ok_journe:  sorties journalieres
20! ok_mensuel: sorties mensuelles
21! ok_instan:  sorties instantanees
22
23
24! Sortie:
25  logical,intent(out)  :: ok_journe, ok_mensuel, ok_instan       
26  integer,intent(out)  :: if_ebil
27
28
29
30!
31! Configuration de la "physique" de LMDZ a l'aide de la fonction
32! GETIN de IOIPSL
33!
34! LF 05/2001
35!
36!--- Ca lit le physiq.def ---
37
38       ! initialize print_control module variables
39       call init_print_control
40
41!******************* parametres anciennement lus dans gcm.def
42
43       ! do we read a startphy.nc file? (default: .true.)
44       startphy_file=.true.
45       CALL getin("startphy_file",startphy_file)
46
47!Config  Key  = cycle_diurne
48!Config  Desc = Cycle diurne
49!Config  Def  = y
50!Config  Help = Cette option permet d'eteidre le cycle diurne.
51!Config         Peut etre util pour accelerer le code !
52       cycle_diurne = .TRUE.       
53       call getin('cycle_diurne',cycle_diurne)
54
55!Config  Key  = soil_model
56!Config  Desc = Modele de sol
57!Config  Def  = y
58!Config  Help = Choix du modele de sol (Thermique ?)
59!Config         Option qui pourait un string afin de pouvoir
60!Config         plus de choix ! Ou meme une liste d'options !
61       soil_model = .true.
62       call getin('soil_model',soil_model)
63
64!Config  Key  = ok_orodr
65!Config  Desc = Oro drag
66!Config  Def  = y
67!Config  Help = GW drag orographie
68!Config         
69       ok_orodr = .false.
70       call getin('ok_orodr',ok_orodr)
71
72!Config  Key  =  ok_orolf
73!Config  Desc = Oro lift
74!Config  Def  = n
75!Config  Help = GW lift orographie (pas utilise)
76       ok_orolf = .false.
77       call getin('ok_orolf', ok_orolf)
78
79!Config  Key  = ok_gw_nonoro
80!Config  Desc = Gravity waves parameterization
81!Config  Def  = n
82!Config  Help = GW drag non-orographique
83       ok_gw_nonoro = .false.
84       call getin('ok_gw_nonoro',ok_gw_nonoro)
85
86!Config  Key  = nbapp_rad
87!Config  Desc = Frequence d'appel au rayonnement
88!Config  Def  = 12
89!Config  Help = Nombre  d'appels des routines de rayonnements
90!Config         par jour.
91       nbapp_rad = 12
92       call getin('nbapp_rad',nbapp_rad)
93       print*,"nbapp_rad",nbapp_rad
94!Config  Key  = nbapp_chim
95!Config  Desc = Frequence d'appel a la chimie
96!Config  Def  = 1
97!Config  Help = Nombre  d'appels des routines de chimie
98!Config         par jour.
99       nbapp_chim = 1
100       call getin('nbapp_chim',nbapp_chim)
101
102!Config  Key  = iflag_con
103!Config  Desc = Flag de convection
104!Config  Def  = 0
105!Config  Help = Flag  pour la convection les options suivantes existent :
106!Config         0 : ajsec simple (VENUS, TITAN)
107!Config         1 pour LMD,
108!Config         2 pour Tiedtke,
109!Config         3 pour CCM(NCAR) 
110       iflag_con = 0
111       call getin('iflag_con',iflag_con)
112
113!******************* fin parametres anciennement lus dans gcm.def
114
115!Config Key  = OK_journe
116!Config Desc = Pour des sorties journalieres
117!Config Def  = .false.
118!Config Help = Pour creer le fichier histday contenant les sorties
119!              journalieres
120!
121  ok_journe = .false.
122  call getin('OK_journe', ok_journe)
123!
124!Config Key  = OK_mensuel
125!Config Desc = Pour des sorties mensuelles
126!Config Def  = .false.
127!Config Help = Pour creer le fichier histmth contenant les sorties
128!              mensuelles
129!
130  ok_mensuel = .false.
131  call getin('OK_mensuel', ok_mensuel)
132!
133!Config Key  = OK_instan
134!Config Desc = Pour des sorties instantanees
135!Config Def  = .false.
136!Config Help = Pour creer le fichier histins contenant les sorties
137!              instantanees
138!
139  ok_instan = .false.
140  call getin('OK_instan', ok_instan)
141!
142!Config  Key  = ecritphy
143!Config  Desc = Frequence d'ecriture dans histmth et histins
144!Config  Def  = 1
145!Config  Help = frequence de l'ecriture du fichier histmth et histins
146!Config         en jours.
147!
148       ecriphy = 1.
149       call getin('ecritphy', ecriphy)
150!
151!
152!Config Key  = if_ebil
153!Config Desc = Niveau de sortie pour les diags bilan d'energie
154!Config Def  = 0
155!Config Help =
156!               
157!
158  if_ebil = 0
159  call getin('if_ebil', if_ebil)
160!!
161!! Constante solaire & Parametres orbitaux & taux gaz effet de serre BEG
162!!
163!Config Key  = R_ecc
164!Config Desc = Excentricite
165!Config Def  = 0.006787
166!Config Help =
167!               
168! VENUS
169! R_ecc = 0.006787
170  R_ecc   = 0.0
171  call getin('R_ecc', R_ecc)
172!!
173!Config Key  = R_peri
174!Config Desc = Equinoxe
175!Config Def  =
176!Config Help =
177!               
178! VENUS
179  R_peri = 0.
180  call getin('R_peri', R_peri)
181!!
182!Config Key  = R_incl
183!Config Desc = Inclinaison
184!Config Def  =
185!Config Help =
186!               
187! VENUS
188  R_incl = 0.0
189  call getin('R_incl', R_incl)
190!
191!Config Key  = solaire
192!Config Desc = Constante solaire en W/m2
193! VENUS
194!Config Def  = 2620.
195!Config Help =
196!
197  solaire = 2620.
198    call getin('solaire', solaire)
199!
200!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
201! PARAMETER FOR THE PLANETARY BOUNDARY LAYER AND SOIL
202!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
203!
204!Config Key  = iflag_pbl
205!Config Desc =
206!Config Def  = 1
207!Config Help =
208!
209! 2   = calculs Cd et K simples pour VENUS :
210!       parametres = z0, lmixmin, ksta (en dur: umin2,ric,cepdu2,karman)
211! 1   = calculs Cd et K issus LMDZ Terre
212!       parametres = ksta, ok_kzmin (et plein d'autres en dur...)
213! 6-9 = schema des thermiques Fred
214  iflag_pbl = 1
215  call getin('iflag_pbl',iflag_pbl)
216
217!
218!Config Key  = ksta
219!Config Desc =
220!Config Def  = 1.0e-7
221!Config Help =
222!
223  ksta = 1.0e-7
224  call getin('ksta',ksta)
225
226!
227!Config Key  = z0
228!Config Desc =
229!Config Def  = 1.0e-2
230!Config Help =
231!
232  z0 = 1.0e-2
233  call getin('z0',z0)
234
235!
236!Config Key  = lmixmin
237!Config Desc =
238!Config Def  = 35.
239!Config Help =
240!
241  lmixmin = 35.
242  call getin('lmixmin',lmixmin)
243
244!
245!Config Key  = ok_kzmin
246!Config Desc =
247!Config Def  = .false.
248!Config Help =
249!
250  ok_kzmin = .false.
251  call getin('ok_kzmin',ok_kzmin)
252
253  ok_clmain = .true.
254  call getin('ok_clmain',ok_clmain)
255
256  physideal = .false.
257  call getin('physideal',physideal)
258
259!Config Key  = iflag_ajs
260!Config Desc =
261!Config Def  = 0
262!Config Help =
263!
264  iflag_ajs = 0
265  call getin('iflag_ajs',iflag_ajs)
266
267!
268!Config Key  = inertie
269!Config Desc =
270!Config Def  = 2000.
271!Config Help =
272!
273  inertie = 2000.
274  call getin('inertie',inertie)
275!
276!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
277! PARAMETER FOR THE OUTPUT LEVELS
278!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
279!
280!Config Key  = lev_histins
281!Config Desc =
282!Config Def  = 0
283!Config Help =
284!
285  lev_histins = 0
286  call getin('lev_histins',lev_histins)
287
288!
289!Config Key  = lev_histday
290!Config Desc =
291!Config Def  = 1
292!Config Help =
293!
294  lev_histday = 1
295  call getin('lev_histday',lev_histday)
296
297!
298!Config Key  = lev_histmth
299!Config Desc =
300!Config Def  = 2
301!Config Help =
302!
303  lev_histmth = 2
304  call getin('lev_histmth',lev_histmth)
305
306
307!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
308! PARAMETER FOR THE TRACERS
309!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
310!
311!Config Key  = tr_scheme
312!Config Desc =
313!Config Def  = 0
314!Config Help =
315!
316! 0   = Nothing is done (passive tracers)
317! 1   = pseudo-chemistry with relaxation toward fixed profile
318!       See Marcq&Lebonnois 2013
319! 2   = surface emission
320!       For the moment, inspired from Mars version
321!       However, the variable 'source' could be used in physiq
322!       so the call to phytrac_emiss could be to initialise it.
323! 3   = Full chemistry and/or clouds => phytrac_chimie
324!       Need ok_chem or ok_cloud
325  tr_scheme = 0
326  call getin('tr_scheme',tr_scheme)
327
328!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
329!   PARAMETRES DE LA CHIMIE/NUAGE dans physiq.def
330!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
331
332!
333!Config Key  = reinit_trac
334!Config Desc = 
335!Config Def  = .FALSE.
336!Config Help =
337!
338  reinit_trac = .FALSE.
339  call getin('reinit_trac',reinit_trac)
340 
341!
342!Config Key  = ok_cloud
343!Config Desc = 
344!Config Def  = .FALSE.
345!Config Help =
346!
347  ok_cloud = .false.
348  call getin('ok_cloud',ok_cloud)
349
350!
351!Config Key  = cl_scheme
352!Config Desc =
353!Config Def  = 2
354!Config Help =
355!
356! 1   = Simple microphysics (Aurelien Stolzenbach's PhD)
357! 2   = Full microphysics (momentum scheme, Sabrina Guilbon's PhD)
358
359  cl_scheme = 2
360  call getin('cl_scheme',cl_scheme)
361
362!
363!Config Key  = ok_chem
364!Config Desc = 
365!Config Def  = .FALSE.
366!Config Help =
367!
368  ok_chem = .false.
369  call getin('ok_chem',ok_chem)
370
371  if (((tr_scheme.ne.3).and.(ok_chem.or.ok_cloud)).or. &
372      ((tr_scheme.eq.3).and.(.not.ok_chem.and..not.ok_cloud))) then
373    write(*,*) "Attention, incoherence :"
374    write(*,*) "tr_scheme=",tr_scheme," / ok_chem=",ok_chem, &
375                                     " / ok_cloud=",ok_cloud
376    write(*,*) "Verifier votre physiq.def"
377    stop
378  endif
379
380!
381!Config Key  = ok_sedim
382!Config Desc = 
383!Config Def  = .FALSE.
384!Config Help =
385!
386  ok_sedim = .false.
387  call getin('ok_sedim',ok_sedim)
388
389!
390!Config Key  = nb_mode
391!Config Desc = 
392!Config Def  = 0
393!Config Help =
394!
395  nb_mode = 0
396  call getin('nb_mode',nb_mode)
397 
398!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
399! PARAMETER FOR NLTE PHYSICS
400!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
401
402!
403!Config Key  = callnlte
404!Config Desc =
405!Config Def  = .false.
406!Config Help =
407!
408  callnlte = .false.
409  call getin('callnlte',callnlte)
410
411!
412!Config Key  = callnirco2
413!Config Desc =
414!Config Def  = .false.
415!
416  callnirco2 = .false.
417  call getin('callnirco2',callnirco2)
418
419!
420!Config Key  = nircorr
421!Config Desc =
422!Config Def  = 0
423!Config Help =
424!
425  nircorr = 0
426  call getin('nircorr',nircorr)
427
428!
429!Config Key  = callthermos
430!Config Desc =
431!Config Def  = .false.
432!Config Help =
433!
434  callthermos = .false.
435  call getin('callthermos',callthermos)
436
437!
438!Config Key  = nltemodel
439!Config Desc =
440!Config Def  = 0
441!Config Help =
442!
443  nltemodel = 0
444  call getin('nltemodel',nltemodel)
445
446!
447!Config Key  = solvarmod
448!Config Desc =
449!Config Def  = 1
450!Config Help =
451!
452  solvarmod = 1
453  call getin('solvarmod',solvarmod)
454
455!
456!Config Key  = solarcondate
457!Config Desc =
458!Config Def  = 1993.4  ## Average solar cycle condition
459!Config Help =
460!
461  solarcondate = 1993.4
462  call getin('solarcondate',solarcondate)
463
464!
465!Config Key  = euveff
466!Config Desc =
467!Config Def  = 0.21
468!Config Help =
469!
470  euveff = 0.21
471  call getin('euveff',euveff)
472
473!
474!
475!Config Key  =
476!Config Desc = 
477!Config Def  =
478!Config Help =
479!
480!   =
481!  call getin('',)
482!
483!
484!
485!
486
487  write(lunout,*)' ##############################################'
488  write(lunout,*)' Configuration des parametres de la physique: '
489  write(lunout,*)' cycle_diurne = ', cycle_diurne
490  write(lunout,*)' soil_model = ', soil_model
491  write(lunout,*)' ok_orodr = ', ok_orodr
492  write(lunout,*)' ok_orolf = ', ok_orolf
493  write(lunout,*)' ok_gw_nonoro = ', ok_gw_nonoro
494  write(lunout,*)' nbapp_rad = ', nbapp_rad
495  write(lunout,*)' nbapp_chim = ', nbapp_chim
496  write(lunout,*)' iflag_con = ', iflag_con
497  write(lunout,*)' Sortie journaliere = ', ok_journe
498  write(lunout,*)' Sortie mensuelle = ', ok_mensuel
499  write(lunout,*)' Sortie instantanee = ', ok_instan
500  write(lunout,*)' frequence sorties = ', ecriphy 
501  write(lunout,*)' Sortie bilan d''energie, if_ebil =', if_ebil
502  write(lunout,*)' Excentricite = ',R_ecc
503  write(lunout,*)' Equinoxe = ',R_peri
504  write(lunout,*)' Inclinaison =',R_incl
505  write(lunout,*)' tr_scheme = ', tr_scheme
506  write(lunout,*)' iflag_pbl = ', iflag_pbl
507  write(lunout,*)' z0 = ',z0
508  write(lunout,*)' lmixmin = ',lmixmin
509  write(lunout,*)' ksta = ',ksta
510  write(lunout,*)' ok_kzmin = ',ok_kzmin
511  write(lunout,*)' inertie = ', inertie
512  write(lunout,*)' ok_clmain = ',ok_clmain
513  write(lunout,*)' physideal = ',physideal
514  write(lunout,*)' iflag_ajs = ', iflag_ajs
515  write(lunout,*)' lev_histins = ',lev_histins
516  write(lunout,*)' lev_histday = ',lev_histday
517  write(lunout,*)' lev_histmth = ',lev_histmth
518  write(lunout,*)' reinit_trac = ',reinit_trac
519  write(lunout,*)' ok_cloud = ',ok_cloud
520  write(lunout,*)' cl_scheme = ',cl_scheme
521  write(lunout,*)' ok_chem = ',ok_chem
522  write(lunout,*)' ok_sedim = ',ok_sedim
523  write(lunout,*)' nb_mode = ',nb_mode
524  write(lunout,*)' callnlte = ',callnlte
525  write(lunout,*)' nltemodel = ',nltemodel
526  write(lunout,*)' callnirco2 = ',callnirco2
527  write(lunout,*)' nircorr = ',nircorr
528  write(lunout,*)' callthermos = ',callthermos
529  write(lunout,*)' solvarmod = ',solvarmod
530  write(lunout,*)' solarcondate = ',solarcondate
531  write(lunout,*)' euveff = ',euveff
532
533  end subroutine conf_phys
534
Note: See TracBrowser for help on using the repository browser.