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

Last change on this file since 1572 was 1442, checked in by slebonnois, 9 years ago

SL: update of the Venus GCM, + corrections on routines used for newstart/start2archive for Titan and Venus, + some modifications on tools

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  = .true.
119!Config Help = Pour creer le fichier histmth contenant les sorties
120!              mensuelles
121!
122  ok_mensuel = .true.
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  = ok_chem
339!Config Desc = 
340!Config Def  = .FALSE.
341!Config Help =
342!
343  ok_chem = .FALSE.
344  call getin('ok_chem',ok_chem)
345
346  if (((tr_scheme.ne.3).and.(ok_chem.or.ok_cloud)).or. &
347      ((tr_scheme.eq.3).and.(.not.ok_chem.and..not.ok_cloud))) then
348    write(*,*) "Attention, incoherence :"
349    write(*,*) "tr_scheme=",tr_scheme," / ok_chem=",ok_chem, &
350                                     " / ok_cloud=",ok_cloud
351    write(*,*) "Verifier votre physiq.def"
352    stop
353  endif
354
355!
356!Config Key  = ok_sedim
357!Config Desc = 
358!Config Def  = .FALSE.
359!Config Help =
360!
361  ok_sedim = .FALSE.
362  call getin('ok_sedim',ok_sedim)
363
364!
365!Config Key  = ok_deltatemp
366!Config Desc = 
367!Config Def  = .FALSE.
368!Config Help =
369!
370  ok_deltatemp = .FALSE.
371  call getin('ok_deltatemp',ok_deltatemp)
372
373!
374!Config Key  = nb_mode
375!Config Desc = 
376!Config Def  = 0
377!Config Help =
378!
379  nb_mode = 0
380  call getin('nb_mode',nb_mode)
381 
382!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
383! PARAMETER FOR NLTE PHYSICS
384!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
385
386!
387!Config Key  = callnlte
388!Config Desc =
389!Config Def  = .false.
390!Config Help =
391!
392  callnlte = .false.
393  call getin('callnlte',callnlte)
394
395!
396!Config Key  = callnirco2
397!Config Desc =
398!Config Def  = .false.
399!
400  callnirco2 = .false.
401  call getin('callnirco2',callnirco2)
402
403!
404!Config Key  = nircorr
405!Config Desc =
406!Config Def  = 0
407!Config Help =
408!
409  nircorr = 0
410  call getin('nircorr',nircorr)
411
412!
413!Config Key  = callthermos
414!Config Desc =
415!Config Def  = .false.
416!Config Help =
417!
418  callthermos = .false.
419  call getin('callthermos',callthermos)
420
421!
422!Config Key  = nltemodel
423!Config Desc =
424!Config Def  = 0
425!Config Help =
426!
427  nltemodel = 0
428  call getin('nltemodel',nltemodel)
429
430!
431!Config Key  = solvarmod
432!Config Desc =
433!Config Def  = 1
434!Config Help =
435!
436  solvarmod = 1
437  call getin('solvarmod',solvarmod)
438
439!
440!Config Key  = solarcondate
441!Config Desc =
442!Config Def  = 1993.4  ## Average solar cycle condition
443!Config Help =
444!
445  solarcondate = 1993.4
446  call getin('solarcondate',solarcondate)
447
448!
449!Config Key  = euveff
450!Config Desc =
451!Config Def  = 0.21
452!Config Help =
453!
454  euveff = 0.21
455  call getin('euveff',euveff)
456
457!
458!
459!Config Key  =
460!Config Desc = 
461!Config Def  =
462!Config Help =
463!
464!   =
465!  call getin('',)
466!
467!
468!
469!
470
471  write(numout,*)' ##############################################'
472  write(numout,*)' Configuration des parametres de la physique: '
473  write(numout,*)' cycle_diurne = ', cycle_diurne
474  write(numout,*)' soil_model = ', soil_model
475  write(numout,*)' ok_orodr = ', ok_orodr
476  write(numout,*)' ok_orolf = ', ok_orolf
477  write(numout,*)' ok_gw_nonoro = ', ok_gw_nonoro
478  write(numout,*)' nbapp_rad = ', nbapp_rad
479  write(numout,*)' nbapp_chim = ', nbapp_chim
480  write(numout,*)' iflag_con = ', iflag_con
481  write(numout,*)' Sortie journaliere = ', ok_journe
482  write(numout,*)' Sortie mensuelle = ', ok_mensuel
483  write(numout,*)' Sortie instantanee = ', ok_instan
484  write(numout,*)' frequence sorties = ', ecriphy 
485  write(numout,*)' Sortie bilan d''energie, if_ebil =', if_ebil
486  write(numout,*)' Excentricite = ',R_ecc
487  write(numout,*)' Equinoxe = ',R_peri
488  write(numout,*)' Inclinaison =',R_incl
489  write(numout,*)' tr_scheme = ', tr_scheme
490  write(numout,*)' iflag_pbl = ', iflag_pbl
491  write(numout,*)' z0 = ',z0
492  write(numout,*)' lmixmin = ',lmixmin
493  write(numout,*)' ksta = ',ksta
494  write(numout,*)' ok_kzmin = ',ok_kzmin
495  write(numout,*)' inertie = ', inertie
496  write(numout,*)' iflag_ajs = ', iflag_ajs
497  write(numout,*)' lev_histins = ',lev_histins
498  write(numout,*)' lev_histday = ',lev_histday
499  write(numout,*)' lev_histmth = ',lev_histmth
500  write(numout,*)' reinit_trac = ',reinit_trac
501  write(numout,*)' ok_cloud = ',ok_cloud
502  write(numout,*)' ok_chem = ',ok_chem
503  write(numout,*)' ok_sedim = ',ok_sedim
504  write(numout,*)' ok_deltatemp = ',ok_deltatemp
505  write(numout,*)' nb_mode = ',nb_mode
506  write(numout,*)' callnlte = ',callnlte
507  write(numout,*)' nltemodel = ',nltemodel
508  write(numout,*)' callnirco2 = ',callnirco2
509  write(numout,*)' nircorr = ',nircorr
510  write(numout,*)' callthermos = ',callthermos
511  write(numout,*)' solvarmod = ',solvarmod
512  write(numout,*)' solarcondate = ',solarcondate
513  write(numout,*)' euveff = ',euveff
514
515  return
516
517  end subroutine conf_phys
518
Note: See TracBrowser for help on using the repository browser.