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

Last change on this file since 1675 was 1661, checked in by slebonnois, 8 years ago

SL: Cloud model for Venus. Not validated yet.

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