source: LMDZ5/branches/LMDZ5V2.0-dev/libf/phylmd/conf_phys.F90 @ 2497

Last change on this file since 2497 was 1486, checked in by Laurent Fairhead, 14 years ago

Inclusion de la routine "stats" du modele martien qui permet de sortir
le cycle diurne moyen de différentes variables et l'écart-type.
Pour activer cette routine mettre
callstats=y
dans config.def. Les résultats seront placés dans le fichier stats.nc
Pour rajouter des variables: allez à la fin de physiq.F et prendre modèle sur
les lignes call wstats(...) et ne pas oublier de modifier le nombre de variables
sorties dans statto.h (n2dvar et n2dvar).
Attention: la routine n'est pas optimale (elle stocke ses résultats intermédiaires
dans le fichier stats.nc et les lit et écrit à chaque appel de la physique)
et n'a été testée dans LMDZ pour l'instant que sur PC/gfortran
et sur SX8/monoprocesseur. Encore du travail donc. Mais la routine est utilisée
régulièrement avec le modèle martien :-)


Inclusion of the martian model "stats" routine that outputs the mean diurnal
cycle of variables as well as their standard deviation.
To activate the routine, one needs to put
callstats=y
in the config.def file. Results will be output in a stats.nc file
To add more output variables: go to the end of physiq.F and use the call wstats(...)
lines as a template and do not forget to modify the number of output variables in
statto.h (n2dvar and n3dvar)
Caution: the routine is not optimal (as it stocks preliminary results in the stats.nc
file reading and writing at each physics step) and has only been tested in LMDZ
with a PC/gfortran setup and on a NEC-SX8/monoprocessor setup. Some work then still to
be done. But it is used regularly with the martial model :-)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 46.5 KB
Line 
1
2!
3! $Id: conf_phys.F90 1486 2011-02-11 12:07:39Z fhourdin $
4!
5!
6!
7module conf_phys_m
8
9   implicit none
10
11contains
12
13  subroutine conf_phys(ok_journe, ok_mensuel, ok_instan, ok_hf, &
14                       ok_LES,&
15                       callstats,&
16                       solarlong0,seuil_inversion, &
17                       fact_cldcon, facttemps,ok_newmicro,iflag_radia,&
18                       iflag_cldcon, &
19                       iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, &
20                       ok_ade, ok_aie, aerosol_couple, &
21                       flag_aerosol, new_aod, &
22                       bl95_b0, bl95_b1,&
23                       iflag_thermals,nsplit_thermals,tau_thermals, &
24                       iflag_thermals_ed,iflag_thermals_optflux, &
25                       iflag_coupl,iflag_clos,iflag_wake, read_climoz, &
26                       alp_offset)
27
28   use IOIPSL
29   USE surface_data
30   USE phys_cal_mod
31   USE carbon_cycle_mod, ONLY : carbon_cycle_tr, carbon_cycle_cpl
32   use control_mod
33
34 include "conema3.h"
35 include "fisrtilp.h"
36 include "nuage.h"
37 include "YOMCST.h"
38 include "YOMCST2.h"
39!IM : on inclut/initialise les taux de CH4, N2O, CFC11 et CFC12
40include "clesphys.h"
41include "compbl.h"
42include "comsoil.h"
43!
44! Configuration de la "physique" de LMDZ a l'aide de la fonction
45! GETIN de IOIPSL
46!
47! LF 05/2001
48!
49
50!
51! type_ocean:      type d'ocean (force, slab, couple)
52! version_ocean:   version d'ocean (opa8/nemo pour type_ocean=couple ou
53!                                   sicOBS pour type_ocean=slab)
54! ok_veget:   type de modele de vegetation
55! ok_journe:  sorties journalieres
56! ok_hf:  sorties haute frequence
57! ok_mensuel: sorties mensuelles
58! ok_instan:  sorties instantanees
59! ok_ade, ok_aie: apply or not aerosol direct and indirect effects
60! bl95_b*: parameters in the formula to link CDNC to aerosol mass conc
61!
62
63
64! Sortie:
65  logical              :: ok_newmicro
66  integer              :: iflag_radia
67  logical              :: ok_journe, ok_mensuel, ok_instan, ok_hf
68  logical              :: ok_LES
69  LOGICAL              :: callstats
70  LOGICAL              :: ok_ade, ok_aie, aerosol_couple
71  INTEGER              :: flag_aerosol
72  LOGICAL              :: new_aod
73  REAL                 :: bl95_b0, bl95_b1
74  real                 :: fact_cldcon, facttemps,ratqsbas,ratqshaut,tau_ratqs
75  integer              :: iflag_cldcon
76  integer              :: iflag_ratqs
77
78  character (len = 6),SAVE  :: type_ocean_omp, version_ocean_omp, ocean_omp
79  CHARACTER(len = 8),SAVE   :: aer_type_omp
80  logical,SAVE              :: ok_veget_omp, ok_newmicro_omp
81  logical,SAVE        :: ok_journe_omp, ok_mensuel_omp, ok_instan_omp, ok_hf_omp       
82  logical,SAVE        :: ok_LES_omp   
83  LOGICAL,SAVE        :: callstats_omp
84  LOGICAL,SAVE        :: ok_ade_omp, ok_aie_omp, aerosol_couple_omp
85  INTEGER, SAVE       :: flag_aerosol_omp
86  LOGICAL, SAVE       :: new_aod_omp
87  REAL,SAVE           :: bl95_b0_omp, bl95_b1_omp
88  REAL,SAVE           :: freq_ISCCP_omp, ecrit_ISCCP_omp
89  REAL,SAVE           :: freq_COSP_omp
90  real,SAVE           :: fact_cldcon_omp, facttemps_omp,ratqsbas_omp
91  real,SAVE           :: ratqshaut_omp
92  real,SAVE           :: tau_ratqs_omp
93  integer,SAVE        :: iflag_radia_omp
94  integer,SAVE        :: iflag_rrtm_omp
95  integer,SAVE        :: iflag_cldcon_omp, ip_ebil_phy_omp
96  integer,SAVE        :: iflag_ratqs_omp
97
98  Real,SAVE           :: f_cdrag_ter_omp,f_cdrag_oce_omp
99  Real,SAVE           :: f_rugoro_omp   
100
101! Local
102  integer              :: numout = 6
103  real                 :: zzz
104
105  real :: seuil_inversion
106  real,save :: seuil_inversion_omp
107
108  integer :: iflag_thermals,nsplit_thermals
109  integer,SAVE :: iflag_thermals_ed_omp,iflag_thermals_optflux_omp
110  integer :: iflag_thermals_ed,iflag_thermals_optflux
111  integer,SAVE :: iflag_thermals_omp,nsplit_thermals_omp
112  real :: tau_thermals
113  real,save :: tau_thermals_omp
114  integer :: iflag_coupl
115  integer :: iflag_clos
116  integer :: iflag_wake
117  real :: alp_offset
118  REAL, SAVE :: alp_offset_omp
119  integer,SAVE :: iflag_coupl_omp,iflag_clos_omp,iflag_wake_omp
120  integer,SAVE :: iflag_cvl_sigd_omp
121  REAL, SAVE :: supcrit1_omp, supcrit2_omp
122  INTEGER, SAVE :: iflag_mix_omp
123  real, save :: scut_omp, qqa1_omp, qqa2_omp, gammas_omp, Fmax_omp, alphas_omp
124
125  REAL,SAVE :: R_ecc_omp,R_peri_omp,R_incl_omp,solaire_omp,co2_ppm_omp
126  REAL,SAVE :: RCO2_omp,CH4_ppb_omp,RCH4_omp,N2O_ppb_omp,RN2O_omp,CFC11_ppt_omp
127  REAL,SAVE :: RCFC11_omp,CFC12_ppt_omp,RCFC12_omp,epmax_omp
128  LOGICAL,SAVE :: ok_adj_ema_omp
129  INTEGER,SAVE :: iflag_clw_omp
130  REAL,SAVE :: cld_lc_lsc_omp,cld_lc_con_omp,cld_tau_lsc_omp,cld_tau_con_omp
131  REAL,SAVE :: ffallv_lsc_omp, ffallv_con_omp,coef_eva_omp
132  LOGICAL,SAVE :: reevap_ice_omp
133  INTEGER,SAVE :: iflag_pdf_omp
134  REAL,SAVE :: rad_froid_omp, rad_chau1_omp, rad_chau2_omp
135  REAL,SAVE :: t_glace_min_omp, t_glace_max_omp
136  REAL,SAVE :: inertie_sol_omp,inertie_sno_omp,inertie_ice_omp
137  REAL,SAVE :: qsol0_omp
138  REAL      :: solarlong0
139  REAL,SAVE :: solarlong0_omp
140  INTEGER,SAVE :: top_height_omp,overlap_omp
141  REAL,SAVE :: cdmmax_omp,cdhmax_omp,ksta_omp,ksta_ter_omp
142  LOGICAL,SAVE :: ok_kzmin_omp
143  REAL, SAVE ::  fmagic_omp, pmagic_omp
144  INTEGER,SAVE :: iflag_pbl_omp,lev_histhf_omp,lev_histday_omp,lev_histmth_omp
145  Integer, save :: lev_histins_omp, lev_histLES_omp
146  INTEGER, SAVE :: lev_histdayNMC_omp
147  LOGICAL, SAVE :: ok_histNMC_omp(3)
148  REAL, SAVE :: freq_outNMC_omp(3), freq_calNMC_omp(3)
149  CHARACTER*4, SAVE :: type_run_omp
150  LOGICAL,SAVE :: ok_isccp_omp
151  LOGICAL,SAVE :: ok_cosp_omp
152  LOGICAL,SAVE :: ok_mensuelCOSP_omp,ok_journeCOSP_omp,ok_hfCOSP_omp
153  REAL,SAVE :: lonmin_ins_omp, lonmax_ins_omp, latmin_ins_omp, latmax_ins_omp
154  REAL,SAVE :: ecrit_hf_omp, ecrit_day_omp, ecrit_mth_omp, ecrit_reg_omp
155  REAL,SAVE :: ecrit_ins_omp
156  REAL,SAVE :: ecrit_LES_omp
157  REAL,SAVE :: ecrit_tra_omp
158  REAL,SAVE :: cvl_corr_omp
159  LOGICAL,SAVE :: ok_lic_melt_omp
160!
161  LOGICAL,SAVE :: cycle_diurne_omp,soil_model_omp,new_oliq_omp
162  LOGICAL,SAVE :: ok_orodr_omp, ok_orolf_omp, ok_limitvrai_omp
163  INTEGER, SAVE :: nbapp_rad_omp, iflag_con_omp
164  LOGICAL,SAVE :: ok_strato_omp
165  LOGICAL,SAVE :: ok_hines_omp
166  LOGICAL,SAVE      :: carbon_cycle_tr_omp
167  LOGICAL,SAVE      :: carbon_cycle_cpl_omp
168
169  integer, intent(out):: read_climoz ! read ozone climatology, OpenMP shared
170  ! Allowed values are 0, 1 and 2
171  ! 0: do not read an ozone climatology
172  ! 1: read a single ozone climatology that will be used day and night
173  ! 2: read two ozone climatologies, the average day and night
174  ! climatology and the daylight climatology
175
176!$OMP MASTER
177!Config Key  = type_ocean
178!Config Desc = Type d'ocean
179!Config Def  = force
180!Config Help = Type d'ocean utilise: force, slab,couple
181!
182  type_ocean_omp = 'force '
183  call getin('type_ocean', type_ocean_omp)
184!
185!Config Key  = version_ocean
186!Config Desc = Version d'ocean
187!Config Def  = xxxxxx
188!Config Help = Version d'ocean utilise: opa8/nemo/sicOBS/xxxxxx
189!
190  version_ocean_omp = 'xxxxxx'
191  call getin('version_ocean', version_ocean_omp)
192
193!Config Key  = OCEAN
194!Config Desc = Old parameter name for type_ocean
195!Config Def  = yyyyyy
196!Config Help = This is only for testing purpose
197!
198  ocean_omp = 'yyyyyy'
199  call getin('OCEAN', ocean_omp)
200  IF (ocean_omp /= 'yyyyyy') THEN
201     WRITE(numout,*)'ERROR!! Old variable name OCEAN used in parmeter file.'
202     WRITE(numout,*)'Variable OCEAN has been replaced by the variable type_ocean.'
203     WRITE(numout,*)'You have to update your parameter file physiq.def to succed running'
204     CALL abort_gcm('conf_phys','Variable OCEAN no longer existing, use variable name type_ocean',1)
205  END IF
206
207!
208!Config Key  = VEGET
209!Config Desc = Type de modele de vegetation
210!Config Def  = .false.
211!Config Help = Type de modele de vegetation utilise
212!
213  ok_veget_omp = .false.
214  call getin('VEGET', ok_veget_omp)
215!
216!Config Key  = OK_journe
217!Config Desc = Pour des sorties journalieres
218!Config Def  = .false.
219!Config Help = Pour creer le fichier histday contenant les sorties
220!              journalieres
221!
222  ok_journe_omp = .false.
223  call getin('OK_journe', ok_journe_omp)
224!
225!Config Key  = ok_hf
226!Config Desc = Pour des sorties haute frequence
227!Config Def  = .false.
228!Config Help = Pour creer le fichier histhf contenant les sorties
229!              haute frequence ( 3h ou 6h)
230!
231  ok_hf_omp = .false.
232  call getin('ok_hf', ok_hf_omp)
233!
234!Config Key  = OK_mensuel
235!Config Desc = Pour des sorties mensuelles
236!Config Def  = .true.
237!Config Help = Pour creer le fichier histmth contenant les sorties
238!              mensuelles
239!
240  ok_mensuel_omp = .true.
241  call getin('OK_mensuel', ok_mensuel_omp)
242!
243!Config Key  = OK_instan
244!Config Desc = Pour des sorties instantanees
245!Config Def  = .false.
246!Config Help = Pour creer le fichier histins contenant les sorties
247!              instantanees
248!
249  ok_instan_omp = .false.
250  call getin('OK_instan', ok_instan_omp)
251!
252!Config Key  = ok_ade
253!Config Desc = Aerosol direct effect or not?
254!Config Def  = .false.
255!Config Help = Used in radlwsw.F
256!
257  ok_ade_omp = .false.
258  call getin('ok_ade', ok_ade_omp)
259
260!
261!Config Key  = ok_aie
262!Config Desc = Aerosol indirect effect or not?
263!Config Def  = .false.
264!Config Help = Used in nuage.F and radlwsw.F
265!
266  ok_aie_omp = .false.
267  call getin('ok_aie', ok_aie_omp)
268
269!
270!Config Key  = aerosol_couple
271!Config Desc = read aerosol in file or calcul by inca
272!Config Def  = .false.
273!Config Help = Used in physiq.F
274!
275  aerosol_couple_omp = .false.
276  CALL getin('aerosol_couple',aerosol_couple_omp)
277
278!
279!Config Key  = flag_aerosol
280!Config Desc = which aerosol is use for coupled model
281!Config Def  = 1
282!Config Help = Used in physiq.F
283!
284! - flag_aerosol=1 => so4 only (defaut)
285! - flag_aerosol=2 => bc  only
286! - flag_aerosol=3 => pom only
287! - flag_aerosol=4 => seasalt only
288! - flag_aerosol=5 => dust only
289! - flag_aerosol=6 => all aerosol
290
291  flag_aerosol_omp = 1
292  CALL getin('flag_aerosol',flag_aerosol_omp)
293
294! Temporary variable for testing purpose!!
295!Config Key  = new_aod
296!Config Desc = which calcul of aeropt
297!Config Def  = false
298!Config Help = Used in physiq.F
299!
300  new_aod_omp = .true.
301  CALL getin('new_aod',new_aod_omp)
302
303!
304!Config Key  = aer_type
305!Config Desc = Use a constant field for the aerosols
306!Config Def  = scenario
307!Config Help = Used in readaerosol.F90
308!
309  aer_type_omp = 'scenario'
310  call getin('aer_type', aer_type_omp)
311
312!
313!Config Key  = bl95_b0
314!Config Desc = Parameter in CDNC-maer link (Boucher&Lohmann 1995)
315!Config Def  = .false.
316!Config Help = Used in nuage.F
317!
318  bl95_b0_omp = 2.
319  call getin('bl95_b0', bl95_b0_omp)
320
321!Config Key  = bl95_b1
322!Config Desc = Parameter in CDNC-maer link (Boucher&Lohmann 1995)
323!Config Def  = .false.
324!Config Help = Used in nuage.F
325!
326  bl95_b1_omp = 0.2
327  call getin('bl95_b1', bl95_b1_omp)
328
329!Config Key  = freq_ISCCP
330!Config Desc = Frequence d'appel du simulateur ISCCP en secondes;
331!              par defaut 10800, i.e. 3 heures
332!Config Def  = 10800.
333!Config Help = Used in ini_histISCCP.h
334!
335  freq_ISCCP_omp = 10800.
336  call getin('freq_ISCCP', freq_ISCCP_omp)
337!
338!Config Key  = ecrit_ISCCP
339!Config Desc = Frequence d'ecriture des resultats du simulateur ISCCP en nombre de jours;
340!              par defaut 1., i.e. 1 jour
341!Config Def  = 1.
342!Config Help = Used in ini_histISCCP.h
343!
344!
345  ecrit_ISCCP_omp = 1.
346  call getin('ecrit_ISCCP', ecrit_ISCCP_omp)
347
348!Config Key  = freq_COSP
349!Config Desc = Frequence d'appel du simulateur COSP en secondes;
350!              par defaut 10800, i.e. 3 heures
351!Config Def  = 10800.
352!Config Help = Used in ini_histdayCOSP.h
353!
354  freq_COSP_omp = 10800.
355  call getin('freq_COSP', freq_COSP_omp)
356
357!
358!Config Key  = ip_ebil_phy
359!Config Desc = Niveau de sortie pour les diags bilan d'energie
360!Config Def  = 0
361!Config Help =
362!               
363  ip_ebil_phy_omp = 0
364  call getin('ip_ebil_phy', ip_ebil_phy_omp)
365!
366!Config Key  = seuil_inversion
367!Config Desc = Seuil ur dTh pour le choix entre les schemas de CL
368!Config Def  = -0.1
369!Config Help =
370!               
371  seuil_inversion_omp = -0.1
372  call getin('seuil_inversion', seuil_inversion_omp)
373
374!!
375!! Constante solaire & Parametres orbitaux & taux gaz effet de serre BEG
376!!
377!Config Key  = R_ecc
378!Config Desc = Excentricite
379!Config Def  = 0.016715
380!Config Help =
381!               
382!valeur AMIP II
383  R_ecc_omp = 0.016715
384  call getin('R_ecc', R_ecc_omp)
385!!
386!Config Key  = R_peri
387!Config Desc = Equinoxe
388!Config Def  =
389!Config Help =
390!               
391!
392!valeur AMIP II
393  R_peri_omp = 102.7
394  call getin('R_peri', R_peri_omp)
395!!
396!Config Key  = R_incl
397!Config Desc = Inclinaison
398!Config Def  =
399!Config Help =
400!               
401!
402!valeur AMIP II
403  R_incl_omp = 23.441
404  call getin('R_incl', R_incl_omp)
405!!
406!Config Key  = solaire
407!Config Desc = Constante solaire en W/m2
408!Config Def  = 1365.
409!Config Help =
410!               
411!
412!valeur AMIP II
413  solaire_omp = 1365.
414  call getin('solaire', solaire_omp)
415!!
416!Config Key  = co2_ppm
417!Config Desc = concentration du gaz carbonique en ppmv
418!Config Def  = 348.
419!Config Help =
420!               
421!
422!valeur AMIP II
423  co2_ppm_omp = 348.
424  call getin('co2_ppm', co2_ppm_omp)
425!!
426!Config Key  = RCO2
427!Config Desc = Concentration du CO2
428!Config Def  = co2_ppm * 1.0e-06  * 44.011/28.97
429!Config Def  = 348. * 1.0e-06  * 44.011/28.97
430!Config Help =
431!               
432! RCO2 = 5.286789092164308E-04
433!ancienne valeur
434  RCO2_omp = co2_ppm_omp * 1.0e-06  * 44.011/28.97 ! pour co2_ppm=348.
435
436!!  call getin('RCO2', RCO2)
437!!
438!Config Key  = RCH4
439!Config Desc = Concentration du CH4
440!Config Def  = 1.65E-06* 16.043/28.97
441!Config Help =
442!               
443!
444!valeur AMIP II
445!OK  RCH4 = 1.65E-06* 16.043/28.97
446! RCH4 = 9.137366240938903E-07
447!
448!ancienne valeur
449! RCH4 = 1.72E-06* 16.043/28.97
450!OK call getin('RCH4', RCH4)
451  zzz = 1650.
452  call getin('CH4_ppb', zzz)
453  CH4_ppb_omp = zzz
454  RCH4_omp = CH4_ppb_omp * 1.0E-09 * 16.043/28.97
455!!
456!Config Key  = RN2O
457!Config Desc = Concentration du N2O
458!Config Def  = 306.E-09* 44.013/28.97
459!Config Help =
460!               
461!
462!valeur AMIP II
463!OK  RN2O = 306.E-09* 44.013/28.97
464! RN2O = 4.648939592682085E-07
465!
466!ancienne valeur
467! RN2O = 310.E-09* 44.013/28.97
468!OK  call getin('RN2O', RN2O)
469  zzz=306.
470  call getin('N2O_ppb', zzz)
471  N2O_ppb_omp = zzz
472  RN2O_omp = N2O_ppb_omp * 1.0E-09 * 44.013/28.97
473!!
474!Config Key  = RCFC11
475!Config Desc = Concentration du CFC11
476!Config Def  = 280.E-12* 137.3686/28.97
477!Config Help =
478!               
479!
480!OK RCFC11 = 280.E-12* 137.3686/28.97
481  zzz = 280.
482  call getin('CFC11_ppt',zzz)
483  CFC11_ppt_omp = zzz
484  RCFC11_omp=CFC11_ppt_omp* 1.0E-12 * 137.3686/28.97
485! RCFC11 = 1.327690990680013E-09
486!OK call getin('RCFC11', RCFC11)
487!!
488!Config Key  = RCFC12
489!Config Desc = Concentration du CFC12
490!Config Def  = 484.E-12* 120.9140/28.97
491!Config Help =
492!               
493!
494!OK RCFC12 = 484.E-12* 120.9140/28.97
495  zzz = 484.
496  call getin('CFC12_ppt',zzz)
497  CFC12_ppt_omp = zzz
498  RCFC12_omp = CFC12_ppt_omp * 1.0E-12 * 120.9140/28.97
499! RCFC12 = 2.020102726958923E-09
500!OK call getin('RCFC12', RCFC12)
501
502
503
504!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
505! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
506! Constantes precedemment dans dyn3d/conf_gcm
507
508!Config  Key  = cycle_diurne
509!Config  Desc = Cycle ddiurne
510!Config  Def  = y
511!Config  Help = Cette option permet d'eteidre le cycle diurne.
512!Config         Peut etre util pour accelerer le code !
513       cycle_diurne_omp = .TRUE.
514       CALL getin('cycle_diurne',cycle_diurne_omp)
515
516!Config  Key  = soil_model
517!Config  Desc = Modele de sol
518!Config  Def  = y
519!Config  Help = Choix du modele de sol (Thermique ?)
520!Config         Option qui pourait un string afin de pouvoir
521!Config         plus de choix ! Ou meme une liste d'options !
522       soil_model_omp = .TRUE.
523       CALL getin('soil_model',soil_model_omp)
524
525!Config  Key  = new_oliq
526!Config  Desc = Nouvelle eau liquide
527!Config  Def  = y
528!Config  Help = Permet de mettre en route la
529!Config         nouvelle parametrisation de l'eau liquide !
530       new_oliq_omp = .TRUE.
531       CALL getin('new_oliq',new_oliq_omp)
532
533!Config  Key  = ok_orodr
534!Config  Desc = Orodr ???
535!Config  Def  = y
536!Config  Help = Y en a pas comprendre !
537!Config         
538       ok_orodr_omp = .TRUE.
539       CALL getin('ok_orodr',ok_orodr_omp)
540
541!Config  Key  =  ok_orolf
542!Config  Desc = Orolf ??
543!Config  Def  = y
544!Config  Help = Connais pas !
545       ok_orolf_omp = .TRUE.
546       CALL getin('ok_orolf', ok_orolf_omp)
547
548!Config  Key  = ok_limitvrai
549!Config  Desc = Force la lecture de la bonne annee
550!Config  Def  = n
551!Config  Help = On peut forcer le modele a lire le
552!Config         fichier SST de la bonne annee. C'est une tres bonne
553!Config         idee, pourquoi ne pas mettre toujours a y ???
554       ok_limitvrai_omp = .FALSE.
555       CALL getin('ok_limitvrai',ok_limitvrai_omp)
556
557!Config  Key  = nbapp_rad
558!Config  Desc = Frequence d'appel au rayonnement
559!Config  Def  = 12
560!Config  Help = Nombre  d'appels des routines de rayonnements
561!Config         par jour.
562       nbapp_rad_omp = 12
563       CALL getin('nbapp_rad',nbapp_rad_omp)
564
565!Config  Key  = iflag_con
566!Config  Desc = Flag de convection
567!Config  Def  = 2
568!Config  Help = Flag  pour la convection les options suivantes existent :
569!Config         1 pour LMD,
570!Config         2 pour Tiedtke,
571!Config         3 pour CCM(NCAR) 
572       iflag_con_omp = 2
573       CALL getin('iflag_con',iflag_con_omp)
574
575!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
576!!
577!! Constante solaire & Parametres orbitaux & taux gaz effet de serre END
578!!
579!! KE
580!
581
582!Config key  = cvl_corr
583!Config Desc = Facteur multiplication des precip convectives dans KE
584!Config Def  = 1.00
585!Config Help = 1.02 pour un moderne ou un pre-ind. A ajuster pour un glaciaire
586  cvl_corr_omp = 1.00
587  CALL getin('cvl_corr', cvl_corr_omp)
588
589
590!Config Key  = epmax
591!Config Desc = Efficacite precip
592!Config Def  = 0.993
593!Config Help =
594!
595  epmax_omp = .993
596  call getin('epmax', epmax_omp)
597!
598!Config Key  = ok_adj_ema
599!Config Desc = 
600!Config Def  = false
601!Config Help =
602!
603  ok_adj_ema_omp = .false.
604  call getin('ok_adj_ema',ok_adj_ema_omp)
605!
606!Config Key  = iflag_clw
607!Config Desc = 
608!Config Def  = 0
609!Config Help =
610!
611  iflag_clw_omp = 0
612  call getin('iflag_clw',iflag_clw_omp)
613!
614!Config Key  = cld_lc_lsc
615!Config Desc = 
616!Config Def  = 2.6e-4
617!Config Help =
618!
619  cld_lc_lsc_omp = 2.6e-4
620  call getin('cld_lc_lsc',cld_lc_lsc_omp)
621!
622!Config Key  = cld_lc_con
623!Config Desc = 
624!Config Def  = 2.6e-4
625!Config Help =
626!
627  cld_lc_con_omp = 2.6e-4
628  call getin('cld_lc_con',cld_lc_con_omp)
629!
630!Config Key  = cld_tau_lsc
631!Config Desc = 
632!Config Def  = 3600.
633!Config Help =
634!
635  cld_tau_lsc_omp = 3600.
636  call getin('cld_tau_lsc',cld_tau_lsc_omp)
637!
638!Config Key  = cld_tau_con
639!Config Desc = 
640!Config Def  = 3600.
641!Config Help =
642!
643  cld_tau_con_omp = 3600.
644  call getin('cld_tau_con',cld_tau_con_omp)
645!
646!Config Key  = ffallv_lsc
647!Config Desc = 
648!Config Def  = 1.
649!Config Help =
650!
651  ffallv_lsc_omp = 1.
652  call getin('ffallv_lsc',ffallv_lsc_omp)
653!
654!Config Key  = ffallv_con
655!Config Desc = 
656!Config Def  = 1.
657!Config Help =
658!
659  ffallv_con_omp = 1.
660  call getin('ffallv_con',ffallv_con_omp)
661!
662!Config Key  = coef_eva
663!Config Desc = 
664!Config Def  = 2.e-5
665!Config Help =
666!
667  coef_eva_omp = 2.e-5
668  call getin('coef_eva',coef_eva_omp)
669!
670!Config Key  = reevap_ice
671!Config Desc = 
672!Config Def  = .false.
673!Config Help =
674!
675  reevap_ice_omp = .false.
676  call getin('reevap_ice',reevap_ice_omp)
677
678!Config Key  = iflag_ratqs
679!Config Desc =
680!Config Def  = 1
681!Config Help =
682!
683  iflag_ratqs_omp = 1
684  call getin('iflag_ratqs',iflag_ratqs_omp)
685
686!
687!Config Key  = iflag_radia
688!Config Desc = 
689!Config Def  = 1
690!Config Help =
691!
692  iflag_radia_omp = 1
693  call getin('iflag_radia',iflag_radia_omp)
694
695!
696!Config Key  = iflag_rrtm
697!Config Desc = 
698!Config Def  = 0
699!Config Help =
700!
701  iflag_rrtm_omp = 0
702  call getin('iflag_rrtm',iflag_rrtm_omp)
703
704!
705!Config Key  = iflag_cldcon
706!Config Desc = 
707!Config Def  = 1
708!Config Help =
709!
710  iflag_cldcon_omp = 1
711  call getin('iflag_cldcon',iflag_cldcon_omp)
712
713!
714!Config Key  = iflag_pdf
715!Config Desc = 
716!Config Def  = 0
717!Config Help =
718!
719  iflag_pdf_omp = 0
720  call getin('iflag_pdf',iflag_pdf_omp)
721!
722!Config Key  = fact_cldcon
723!Config Desc = 
724!Config Def  = 0.375
725!Config Help =
726!
727  fact_cldcon_omp = 0.375
728  call getin('fact_cldcon',fact_cldcon_omp)
729
730!
731!Config Key  = facttemps
732!Config Desc = 
733!Config Def  = 1.e-4
734!Config Help =
735!
736  facttemps_omp = 1.e-4
737  call getin('facttemps',facttemps_omp)
738
739!
740!Config Key  = ok_newmicro
741!Config Desc = 
742!Config Def  = .true.
743!Config Help =
744!
745  ok_newmicro_omp = .true.
746  call getin('ok_newmicro',ok_newmicro_omp)
747!
748!Config Key  = ratqsbas
749!Config Desc = 
750!Config Def  = 0.01
751!Config Help =
752!
753  ratqsbas_omp = 0.01
754  call getin('ratqsbas',ratqsbas_omp)
755!
756!Config Key  = ratqshaut
757!Config Desc = 
758!Config Def  = 0.3
759!Config Help =
760!
761  ratqshaut_omp = 0.3
762  call getin('ratqshaut',ratqshaut_omp)
763
764!Config Key  = tau_ratqs
765!Config Desc = 
766!Config Def  = 1800.
767!Config Help =
768!
769  tau_ratqs_omp = 1800.
770  call getin('tau_ratqs',tau_ratqs_omp)
771
772!
773!-----------------------------------------------------------------------
774! Longitude solaire pour le calcul de l'ensoleillement en degre
775! si on veut imposer la saison. Sinon, solarlong0=-999.999
776!Config Key  = solarlong0
777!Config Desc = 
778!Config Def  = -999.999
779!Config Help =
780!
781  solarlong0_omp = -999.999
782  call getin('solarlong0',solarlong0_omp)
783!
784!-----------------------------------------------------------------------
785!  Valeur imposee de l'humidite du sol pour le modele bucket.
786!Config Key  = qsol0
787!Config Desc = 
788!Config Def  = -1.
789!Config Help =
790!
791  qsol0_omp = -1.
792  call getin('qsol0',qsol0_omp)
793!
794!-----------------------------------------------------------------------
795!
796!Config Key  = inertie_ice
797!Config Desc = 
798!Config Def  = 2000.
799!Config Help =
800!
801  inertie_ice_omp = 2000.
802  call getin('inertie_ice',inertie_ice_omp)
803!
804!Config Key  = inertie_sno
805!Config Desc = 
806!Config Def  = 2000.
807!Config Help =
808!
809  inertie_sno_omp = 2000.
810  call getin('inertie_sno',inertie_sno_omp)
811!
812!Config Key  = inertie_sol
813!Config Desc = 
814!Config Def  = 2000.
815!Config Help =
816!
817  inertie_sol_omp = 2000.
818  call getin('inertie_sol',inertie_sol_omp)
819
820!
821!Config Key  = rad_froid
822!Config Desc = 
823!Config Def  = 35.0
824!Config Help =
825!
826  rad_froid_omp = 35.0
827  call getin('rad_froid',rad_froid_omp)
828
829!
830!Config Key  = rad_chau1
831!Config Desc = 
832!Config Def  = 13.0
833!Config Help =
834!
835  rad_chau1_omp = 13.0
836  call getin('rad_chau1',rad_chau1_omp)
837
838!
839!Config Key  = rad_chau2
840!Config Desc = 
841!Config Def  = 9.0
842!Config Help =
843!
844  rad_chau2_omp = 9.0
845  call getin('rad_chau2',rad_chau2_omp)
846
847!
848!Config Key  = t_glace_min
849!Config Desc = 
850!Config Def  = 258.
851!Config Help =
852!
853  t_glace_min_omp = 258.
854  call getin('t_glace_min',t_glace_min_omp)
855
856!
857!Config Key  = t_glace_max
858!Config Desc = 
859!Config Def  = 273.13
860!Config Help =
861!
862  t_glace_max_omp = 273.13
863  call getin('t_glace_max',t_glace_max_omp)
864
865!
866!Config Key  = top_height
867!Config Desc =
868!Config Def  = 3
869!Config Help =
870!
871  top_height_omp = 3
872  call getin('top_height',top_height_omp)
873
874!
875!Config Key  = overlap
876!Config Desc =
877!Config Def  = 3
878!Config Help =
879!
880  overlap_omp = 3
881  call getin('overlap',overlap_omp)
882
883
884!
885!
886!Config Key  = cdmmax
887!Config Desc =
888!Config Def  = 1.3E-3
889!Config Help =
890!
891  cdmmax_omp = 1.3E-3
892  call getin('cdmmax',cdmmax_omp)
893
894!
895!Config Key  = cdhmax
896!Config Desc =
897!Config Def  = 1.1E-3
898!Config Help =
899!
900  cdhmax_omp = 1.1E-3
901  call getin('cdhmax',cdhmax_omp)
902
903!261103
904!
905!Config Key  = ksta
906!Config Desc =
907!Config Def  = 1.0e-10
908!Config Help =
909!
910  ksta_omp = 1.0e-10
911  call getin('ksta',ksta_omp)
912
913!
914!Config Key  = ksta_ter
915!Config Desc =
916!Config Def  = 1.0e-10
917!Config Help =
918!
919  ksta_ter_omp = 1.0e-10
920  call getin('ksta_ter',ksta_ter_omp)
921
922!
923!Config Key  = ok_kzmin
924!Config Desc =
925!Config Def  = .true.
926!Config Help =
927!
928  ok_kzmin_omp = .true.
929  call getin('ok_kzmin',ok_kzmin_omp)
930
931!
932!Config Key  = fmagic
933!Config Desc = additionnal multiplicator factor used for albedo
934!Config Def  = 1.
935!Config Help = additionnal multiplicator factor used in albedo.F
936!
937  fmagic_omp = 1.
938  call getin('fmagic',fmagic_omp)
939
940!
941!Config Key  = pmagic
942!Config Desc = additional factor used for albedo
943!Config Def  = 0.
944!Config Help = additional factor used in albedo.F
945!
946  pmagic_omp = 0.
947  call getin('pmagic',pmagic_omp)
948
949
950!Config Key = ok_lic_melt
951!Config Desc = Prise en compte de la fonte de la calotte dans le bilan d'eau
952!Config Def  = .false.
953!Config Help = mettre a .false. pour assurer la conservation en eau
954  ok_lic_melt_omp = .false.
955  call getin('ok_lic_melt', ok_lic_melt_omp)
956
957!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
958! PARAMETER FOR THE PLANETARY BOUNDARY LAYER
959!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
960
961!Config Key  = iflag_pbl
962!Config Desc =
963!Config Def  = 1
964!Config Help =
965!
966  iflag_pbl_omp = 1
967  call getin('iflag_pbl',iflag_pbl_omp)
968!
969!Config Key  = iflag_thermals
970!Config Desc =
971!Config Def  = 0
972!Config Help =
973!
974  iflag_thermals_omp = 0
975  call getin('iflag_thermals',iflag_thermals_omp)
976!
977!
978!Config Key  = iflag_thermals_ed
979!Config Desc =
980!Config Def  = 0
981!Config Help =
982!
983  iflag_thermals_ed_omp = 0
984  call getin('iflag_thermals_ed',iflag_thermals_ed_omp)
985!
986!
987!Config Key  = iflag_thermals_optflux
988!Config Desc =
989!Config Def  = 0
990!Config Help =
991!
992  iflag_thermals_optflux_omp = 0
993  call getin('iflag_thermals_optflux',iflag_thermals_optflux_omp)
994!
995!
996!Config Key  = nsplit_thermals
997!Config Desc =
998!Config Def  = 1
999!Config Help =
1000!
1001  nsplit_thermals_omp = 1
1002  call getin('nsplit_thermals',nsplit_thermals_omp)
1003
1004!Config Key  = tau_thermals
1005!Config Desc =
1006!Config Def  = 0.
1007!Config Help =
1008!
1009  tau_thermals_omp = 0.
1010  call getin('tau_thermals',tau_thermals_omp)
1011
1012!
1013!Config Key  = iflag_coupl
1014!Config Desc =
1015!Config Def  = 0
1016!Config Help =
1017!
1018  iflag_coupl_omp = 0
1019  call getin('iflag_coupl',iflag_coupl_omp)
1020
1021!
1022!Config Key  = iflag_clos
1023!Config Desc = 
1024!Config Def  = 0
1025!Config Help =
1026!
1027  iflag_clos_omp = 1
1028  call getin('iflag_clos',iflag_clos_omp)
1029!
1030!Config Key  = iflag_cvl_sigd
1031!Config Desc = 
1032!Config Def  = 0
1033!Config Help =
1034!
1035  iflag_cvl_sigd_omp = 0
1036  call getin('iflag_cvl_sigd',iflag_cvl_sigd_omp)
1037
1038!Config Key  = iflag_wake
1039!Config Desc = 
1040!Config Def  = 0
1041!Config Help =
1042!
1043  iflag_wake_omp = 0
1044  call getin('iflag_wake',iflag_wake_omp)
1045
1046!Config Key  = alp_offset
1047!Config Desc = 
1048!Config Def  = 0
1049!Config Help =
1050!
1051  alp_offset_omp = 0.
1052  call getin('alp_offset',alp_offset_omp)
1053
1054!
1055!Config Key  = lev_histhf
1056!Config Desc =
1057!Config Def  = 1
1058!Config Help =
1059!
1060  lev_histhf_omp = 1
1061  call getin('lev_histhf',lev_histhf_omp)
1062
1063!
1064!Config Key  = lev_histday
1065!Config Desc =
1066!Config Def  = 1
1067!Config Help =
1068!
1069  lev_histday_omp = 1
1070  call getin('lev_histday',lev_histday_omp)
1071
1072!
1073!Config Key  = lev_histmth
1074!Config Desc =
1075!Config Def  = 2
1076!Config Help =
1077!
1078  lev_histmth_omp = 2
1079  call getin('lev_histmth',lev_histmth_omp)
1080!
1081!Config Key  = lev_histins
1082!Config Desc =
1083!Config Def  = 1
1084!Config Help =
1085!
1086  lev_histins_omp = 1
1087  call getin('lev_histins',lev_histins_omp)
1088  !
1089!Config Key  = lev_histLES
1090!Config Desc =
1091!Config Def  = 1
1092!Config Help =
1093!
1094  lev_histLES_omp = 1
1095  call getin('lev_histLES',lev_histLES_omp)
1096!
1097!Config Key  = lev_histdayNMC
1098!Config Desc =
1099!Config Def  = 8
1100!Config Help =
1101!
1102  lev_histdayNMC_omp = 8
1103  call getin('lev_histdayNMC',lev_histdayNMC_omp)
1104!
1105!histNMC BEG
1106!Config Key  = ok_histNMC
1107!Config Desc = ok_histNMC(1) = frequence de sortie fichiers histmthNMC
1108!Config Desc = ok_histNMC(2) = frequence de sortie fichiers histdayNMC
1109!Config Desc = ok_histNMC(3) = frequence de sortie fichiers histhfNMC
1110!Config Def  = n, n, n
1111!Config Help =
1112!
1113  ok_histNMC_omp(1) = .false.
1114  ok_histNMC_omp(2) = .false.
1115  ok_histNMC_omp(3) = .false.
1116  call getin('ok_histNMC',ok_histNMC_omp)
1117!
1118!Config Key  = freq_outNMC
1119!Config Desc = freq_outNMC(1) = frequence de sortie fichiers histmthNMC
1120!Config Desc = freq_outNMC(2) = frequence de sortie fichiers histdayNMC
1121!Config Desc = freq_outNMC(3) = frequence de sortie fichiers histhfNMC
1122!Config Def  = 2592000., 86400., 21600.
1123!Config Help =
1124!
1125! freq_outNMC_omp(1) = 2592000.
1126  freq_outNMC_omp(1) = mth_len*86400.
1127  freq_outNMC_omp(2) = 86400.
1128  freq_outNMC_omp(3) = 21600.
1129  call getin('freq_outNMC',freq_outNMC_omp)
1130!
1131!Config Key  = freq_calNMC
1132!Config Desc = freq_calNMC(1) = frequence de calcul fichiers histmthNMC
1133!Config Desc = freq_calNMC(2) = frequence de calcul fichiers histdayNMC
1134!Config Desc = freq_calNMC(3) = frequence de calcul fichiers histhfNMC
1135!Config Def  = pasphys
1136!Config Help =
1137!
1138  freq_calNMC_omp(1) = pasphys
1139  freq_calNMC_omp(2) = pasphys
1140  freq_calNMC_omp(3) = pasphys
1141  call getin('freq_calNMC',freq_calNMC_omp)
1142!
1143!Config Key  = type_run
1144!Config Desc =
1145!Config Def  = 'AMIP'/'CFMIP'  ou 'CLIM'/'ENSP'
1146!Config Help =
1147!
1148  type_run_omp = 'AMIP'
1149  call getin('type_run',type_run_omp)
1150
1151!
1152!Config Key  = ok_isccp
1153!Config Desc =
1154!Config Def  = .true.
1155!Config Help =
1156!
1157! ok_isccp = .true.
1158  ok_isccp_omp = .false.
1159  call getin('ok_isccp',ok_isccp_omp)
1160
1161!
1162!Config Key  = ok_cosp
1163!Config Desc =
1164!Config Def  = .false.
1165!Config Help =
1166!
1167  ok_cosp_omp = .false.
1168  call getin('ok_cosp',ok_cosp_omp)
1169
1170!
1171!Config Key  = ok_mensuelCOSP
1172!Config Desc =
1173!Config Def  = .true.
1174!Config Help =
1175!
1176  ok_mensuelCOSP_omp = .true.
1177  call getin('ok_mensuelCOSP',ok_mensuelCOSP_omp)
1178
1179!
1180!Config Key  = ok_journeCOSP
1181!Config Desc =
1182!Config Def  = .true.
1183!Config Help =
1184!
1185  ok_journeCOSP_omp = .true.
1186  call getin('ok_journeCOSP',ok_journeCOSP_omp)
1187
1188!
1189!Config Key  = ok_hfCOSP
1190!Config Desc =
1191!Config Def  = .false.
1192!Config Help =
1193!
1194  ok_hfCOSP_omp = .false.
1195  call getin('ok_hfCOSP',ok_hfCOSP_omp)
1196
1197!
1198! coordonnees (lonmin_ins, lonmax_ins, latmin_ins, latmax_ins) pour la zone
1199! avec sorties instantannees tous les pas de temps de la physique => "histbilKP_ins.nc"
1200!
1201!Config Key  = lonmin_ins
1202!Config Desc = 100. 
1203!Config Def  = longitude minimale sorties "bilKP_ins"
1204!Config Help =
1205!
1206   lonmin_ins_omp = 100.
1207   call getin('lonmin_ins',lonmin_ins_omp)
1208!
1209!Config Key  = lonmax_ins
1210!Config Desc = 130.
1211!Config Def  = longitude maximale sorties "bilKP_ins"
1212!Config Help =
1213!
1214   lonmax_ins_omp = 130.
1215   call getin('lonmax_ins',lonmax_ins_omp)
1216!
1217!Config Key  = latmin_ins
1218!Config Desc = -20. 
1219!Config Def  = latitude minimale sorties "bilKP_ins"
1220!Config Help =
1221!
1222   latmin_ins_omp = -20.
1223   call getin('latmin_ins',latmin_ins_omp)
1224!
1225!Config Key  = latmax_ins
1226!Config Desc = 20.
1227!Config Def  = latitude maximale sorties "bilKP_ins"
1228!Config Help =
1229!
1230   latmax_ins_omp = 20.
1231   call getin('latmax_ins',latmax_ins_omp)
1232!
1233!Config Key  = ecrit_hf
1234!Config Desc =
1235!Config Def  = 1./8. !toutes les 3h
1236!Config Help =
1237!
1238  ecrit_hf_omp = 1./8.
1239  call getin('ecrit_hf',ecrit_hf_omp)
1240!
1241!Config Key  = ecrit_ins
1242!Config Desc =
1243!Config Def  = 1./48. ! toutes les 1/2 h
1244!Config Help =
1245!
1246  ecrit_ins_omp = 1./48.
1247  call getin('ecrit_ins',ecrit_ins_omp)
1248!
1249!Config Key  = ecrit_day
1250!Config Desc =
1251!Config Def  = 1.0 !tous les jours
1252!Config Help = nombre de jours pour ecriture fichier histday.nc
1253!
1254  ecrit_day_omp = 1.0
1255  call getin('ecrit_day',ecrit_day_omp)
1256!
1257!Config Key  = ecrit_mth
1258!Config Desc =
1259!Config Def  = 30. !tous les 30jours (1 fois par mois)
1260!Config Help =
1261!
1262  ecrit_mth_omp = 30.
1263  call getin('ecrit_mth',ecrit_mth_omp)
1264!
1265!Config Key  = ecrit_tra
1266!Config Desc =
1267!Config Def  = 30. !tous les 30jours (1 fois par mois)
1268!Config Help =
1269!
1270  ecrit_tra_omp = 30.
1271  call getin('ecrit_tra',ecrit_tra_omp)
1272!
1273!Config Key  = ecrit_reg
1274!Config Desc =
1275!Config Def  = 0.25  !4 fois par jour
1276!Config Help =
1277!
1278  ecrit_reg_omp = 0.25   !4 fois par jour
1279  call getin('ecrit_reg',ecrit_reg_omp)
1280!
1281!
1282!
1283! PARAMETRES CDRAG
1284!
1285!Config Key  = f_cdrag_ter
1286!Config Desc =
1287!Config Def  = 0.8
1288!Config Help =
1289!
1290  f_cdrag_ter_omp = 0.8
1291  call getin('f_cdrag_ter',f_cdrag_ter_omp)
1292!
1293!Config Key  = f_cdrag_oce
1294!Config Desc =
1295!Config Def  = 0.8
1296!Config Help =
1297!
1298  f_cdrag_oce_omp = 0.8
1299  call getin('f_cdrag_oce',f_cdrag_oce_omp)
1300!
1301! RUGORO
1302!Config Key  = f_rugoro
1303!Config Desc =
1304!Config Def  = 0.
1305!Config Help =
1306!
1307  f_rugoro_omp = 0.
1308  call getin('f_rugoro',f_rugoro_omp)
1309
1310! PARAMETERS FOR CONVECTIVE INHIBITION BY TROPOS. DRYNESS
1311!
1312!Config Key  = supcrit1
1313!Config Desc =
1314!Config Def  = .540
1315!Config Help =
1316!
1317  supcrit1_omp = .540
1318  call getin('supcrit1',supcrit1_omp)
1319
1320!
1321!Config Key  = supcrit2
1322!Config Desc =
1323!Config Def  = .600
1324!Config Help =
1325!
1326  supcrit2_omp = .600
1327  call getin('supcrit2',supcrit2_omp)
1328
1329!
1330! PARAMETERS FOR THE MIXING DISTRIBUTION
1331! iflag_mix: 0=OLD,
1332!            1=NEW (JYG),           
1333!            2=NEW + conv. depth inhib. by tropos. dryness
1334! '2' is NOT operationnal and should not be used.
1335!
1336!Config Key  = iflag_mix
1337!Config Desc =
1338!Config Def  = 1
1339!Config Help =
1340!
1341  iflag_mix_omp = 1
1342  call getin('iflag_mix',iflag_mix_omp)
1343
1344!
1345!Config Key  = scut
1346!Config Desc =
1347!Config Def  = 0.95
1348!Config Help =
1349!
1350  scut_omp = 0.95
1351  call getin('scut',scut_omp)
1352
1353!
1354!Config Key  = qqa1
1355!Config Desc =
1356!Config Def  = 1.0
1357!Config Help =
1358!
1359  qqa1_omp = 1.0
1360  call getin('qqa1',qqa1_omp)
1361
1362!
1363!Config Key  = qqa2
1364!Config Desc =
1365!Config Def  = 0.0
1366!Config Help =
1367!
1368  qqa2_omp = 0.0
1369  call getin('qqa2',qqa2_omp)
1370
1371!
1372!Config Key  = gammas
1373!Config Desc =
1374!Config Def  = 0.05
1375!Config Help =
1376!
1377  gammas_omp = 0.05
1378  call getin('gammas',gammas_omp)
1379
1380!
1381!Config Key  = Fmax
1382!Config Desc =
1383!Config Def  = 0.65
1384!Config Help =
1385!
1386  Fmax_omp = 0.65
1387  call getin('Fmax',Fmax_omp)
1388
1389!
1390!Config Key  = alphas 
1391!Config Desc =
1392!Config Def  = -5.
1393!Config Help =
1394!
1395  alphas_omp = -5.
1396  call getin('alphas',alphas_omp)
1397
1398!Config key = ok_strato
1399!Config  Desc = activation de la version strato
1400!Config  Def  = .FALSE.
1401!Config  Help = active la version stratosphérique de LMDZ de F. Lott
1402
1403  ok_strato_omp=.FALSE.
1404  CALL getin('ok_strato',ok_strato_omp)
1405     
1406!Config  key = ok_hines
1407!Config  Desc = activation de la parametrisation de hines
1408!Config  Def  = .FALSE.
1409!Config  Help = Clefs controlant la parametrization de Hines
1410!               Et la sponge layer (Runs Stratospheriques)
1411
1412  ok_hines_omp=.FALSE.
1413  CALL getin('ok_hines',ok_hines_omp)
1414
1415!Config Key  = OK_LES                                               
1416!Config Desc = Pour des sorties LES                                 
1417!Config Def  = .false.                                             
1418!Config Help = Pour creer le fichier histLES contenant les sorties 
1419!              LES                                                 
1420!                                                                   
1421  ok_LES_omp = .false.                                             
1422  call getin('OK_LES', ok_LES_omp)                                 
1423
1424!Config Key  = callstats                                               
1425!Config Desc = Pour des sorties callstats                                 
1426!Config Def  = .false.                                             
1427!Config Help = Pour creer le fichier stats contenant les sorties 
1428!              stats                                                 
1429!                                                                   
1430  callstats_omp = .false.                                             
1431  call getin('callstats', callstats_omp)                                 
1432!
1433!Config Key  = ecrit_LES
1434!Config Desc = Frequence d'ecriture des resultats du LES en nombre de jours;
1435!              par defaut 1., i.e. 1 jour
1436!Config Def  = 1./8.
1437!Config Help = ...
1438!
1439!
1440  ecrit_LES_omp = 1./8.
1441  call getin('ecrit_LES', ecrit_LES_omp)
1442!
1443  read_climoz = 0 ! default value
1444  call getin('read_climoz', read_climoz)
1445
1446  carbon_cycle_tr_omp=.FALSE.
1447  CALL getin('carbon_cycle_tr',carbon_cycle_tr_omp)
1448
1449  carbon_cycle_cpl_omp=.FALSE.
1450  CALL getin('carbon_cycle_cpl',carbon_cycle_cpl_omp)
1451
1452!$OMP END MASTER
1453!$OMP BARRIER
1454
1455    R_ecc = R_ecc_omp
1456    R_peri = R_peri_omp
1457    R_incl = R_incl_omp
1458    solaire = solaire_omp
1459    co2_ppm = co2_ppm_omp
1460    RCO2 = RCO2_omp
1461    CH4_ppb = CH4_ppb_omp
1462    RCH4 = RCH4_omp
1463    N2O_ppb = N2O_ppb_omp
1464    RN2O = RN2O_omp
1465    CFC11_ppt = CFC11_ppt_omp
1466    RCFC11 = RCFC11_omp
1467    CFC12_ppt = CFC12_ppt_omp
1468    RCFC12 = RCFC12_omp
1469
1470    cycle_diurne = cycle_diurne_omp
1471    soil_model = soil_model_omp
1472    new_oliq = new_oliq_omp
1473    ok_orodr = ok_orodr_omp
1474    ok_orolf = ok_orolf_omp
1475    ok_limitvrai = ok_limitvrai_omp
1476    nbapp_rad = nbapp_rad_omp
1477    iflag_con = iflag_con_omp
1478
1479    epmax = epmax_omp
1480    ok_adj_ema = ok_adj_ema_omp
1481    iflag_clw = iflag_clw_omp
1482    cld_lc_lsc = cld_lc_lsc_omp
1483    cld_lc_con = cld_lc_con_omp
1484    cld_tau_lsc = cld_tau_lsc_omp
1485    cld_tau_con = cld_tau_con_omp
1486    ffallv_lsc = ffallv_lsc_omp
1487    ffallv_con = ffallv_con_omp
1488    coef_eva = coef_eva_omp
1489    reevap_ice = reevap_ice_omp
1490    iflag_pdf = iflag_pdf_omp
1491    solarlong0 = solarlong0_omp
1492    qsol0 = qsol0_omp
1493    inertie_sol = inertie_sol_omp
1494    inertie_ice = inertie_ice_omp
1495    inertie_sno = inertie_sno_omp
1496    rad_froid = rad_froid_omp
1497    rad_chau1 = rad_chau1_omp
1498    rad_chau2 = rad_chau2_omp
1499    t_glace_min = t_glace_min_omp
1500    t_glace_max = t_glace_max_omp
1501    top_height = top_height_omp
1502    overlap = overlap_omp
1503    cdmmax = cdmmax_omp
1504    cdhmax = cdhmax_omp
1505    ksta = ksta_omp
1506    ksta_ter = ksta_ter_omp
1507    ok_kzmin = ok_kzmin_omp
1508    fmagic = fmagic_omp
1509    pmagic = pmagic_omp
1510    iflag_pbl = iflag_pbl_omp
1511    lev_histhf = lev_histhf_omp
1512    lev_histday = lev_histday_omp
1513    lev_histmth = lev_histmth_omp
1514    lev_histins = lev_histins_omp
1515    lev_histLES = lev_histLES_omp
1516    lev_histdayNMC = lev_histdayNMC_omp
1517    ok_histNMC(:) = ok_histNMC_omp(:)
1518    freq_outNMC(:) = freq_outNMC_omp(:)
1519    freq_calNMC(:) = freq_calNMC_omp(:)
1520
1521    type_ocean = type_ocean_omp
1522    version_ocean = version_ocean_omp
1523    ok_veget = ok_veget_omp
1524    ok_newmicro = ok_newmicro_omp
1525    ok_journe = ok_journe_omp
1526    ok_hf = ok_hf_omp
1527    ok_mensuel = ok_mensuel_omp
1528    ok_instan = ok_instan_omp
1529    freq_ISCCP = freq_ISCCP_omp
1530    ecrit_ISCCP = ecrit_ISCCP_omp
1531    freq_COSP = freq_COSP_omp
1532    ok_ade = ok_ade_omp
1533    ok_aie = ok_aie_omp
1534    aerosol_couple = aerosol_couple_omp
1535    flag_aerosol=flag_aerosol_omp
1536    new_aod=new_aod_omp
1537    aer_type = aer_type_omp
1538    bl95_b0 = bl95_b0_omp
1539    bl95_b1 = bl95_b1_omp
1540    fact_cldcon = fact_cldcon_omp
1541    facttemps = facttemps_omp
1542    ratqsbas = ratqsbas_omp
1543    ratqshaut = ratqshaut_omp
1544    tau_ratqs = tau_ratqs_omp
1545
1546    iflag_radia = iflag_radia_omp
1547    iflag_rrtm = iflag_rrtm_omp
1548    iflag_cldcon = iflag_cldcon_omp
1549    iflag_ratqs = iflag_ratqs_omp
1550    ip_ebil_phy = ip_ebil_phy_omp
1551    iflag_thermals = iflag_thermals_omp
1552    iflag_thermals_ed = iflag_thermals_ed_omp
1553    iflag_thermals_optflux = iflag_thermals_optflux_omp
1554    nsplit_thermals = nsplit_thermals_omp
1555    tau_thermals = tau_thermals_omp
1556    iflag_coupl = iflag_coupl_omp
1557    iflag_clos = iflag_clos_omp
1558    iflag_wake = iflag_wake_omp
1559    alp_offset = alp_offset_omp
1560    iflag_cvl_sigd = iflag_cvl_sigd_omp
1561    type_run = type_run_omp
1562    ok_isccp = ok_isccp_omp
1563    ok_cosp = ok_cosp_omp
1564    ok_mensuelCOSP = ok_mensuelCOSP_omp
1565    ok_journeCOSP = ok_journeCOSP_omp
1566    ok_hfCOSP = ok_hfCOSP_omp
1567    seuil_inversion=seuil_inversion_omp
1568    lonmin_ins = lonmin_ins_omp
1569    lonmax_ins = lonmax_ins_omp
1570    latmin_ins = latmin_ins_omp
1571    latmax_ins = latmax_ins_omp
1572    ecrit_hf   = ecrit_hf_omp
1573    ecrit_ins   = ecrit_ins_omp
1574    ecrit_day = ecrit_day_omp
1575    ecrit_mth = ecrit_mth_omp
1576    ecrit_tra = ecrit_tra_omp
1577    ecrit_reg = ecrit_reg_omp
1578    cvl_corr = cvl_corr_omp
1579    ok_lic_melt = ok_lic_melt_omp
1580    f_cdrag_ter=f_cdrag_ter_omp
1581    f_cdrag_oce=f_cdrag_oce_omp
1582    f_rugoro=f_rugoro_omp
1583    supcrit1 = supcrit1_omp
1584    supcrit2 = supcrit2_omp
1585    iflag_mix = iflag_mix_omp
1586    scut = scut_omp
1587    qqa1 = qqa1_omp
1588    qqa2 = qqa2_omp
1589    gammas = gammas_omp
1590    Fmax = Fmax_omp
1591    alphas = alphas_omp
1592    ok_strato = ok_strato_omp
1593    ok_hines = ok_hines_omp
1594    ok_LES = ok_LES_omp
1595    callstats = callstats_omp
1596    ecrit_LES = ecrit_LES_omp
1597    carbon_cycle_tr = carbon_cycle_tr_omp
1598    carbon_cycle_cpl = carbon_cycle_cpl_omp
1599
1600! Test of coherence between type_ocean and version_ocean
1601    IF (type_ocean=='couple' .AND. (version_ocean/='opa8' .AND. version_ocean/='nemo') ) THEN
1602       WRITE(numout,*)' ERROR version_ocean=',version_ocean,' not valid in coupled configuration'
1603       CALL abort_gcm('conf_phys','version_ocean not valid',1)
1604    END IF
1605
1606    IF (type_ocean=='slab' .AND. version_ocean=='xxxxxx') THEN
1607       version_ocean='sicOBS'
1608    ELSE IF (type_ocean=='slab' .AND. version_ocean/='sicOBS') THEN
1609       WRITE(numout,*)' ERROR version_ocean=',version_ocean,' not valid with slab ocean'
1610       CALL abort_gcm('conf_phys','version_ocean not valid',1)
1611    END IF
1612
1613! Test sur new_aod. Ce flag permet de retrouver les resultats de l'AR4
1614! il n'est utilisable que lors du couplage avec le SO4 seul
1615    IF (ok_ade .OR. ok_aie) THEN
1616       IF ( .NOT. new_aod .AND.  flag_aerosol .NE. 1) THEN
1617          CALL abort_gcm('conf_phys','new_aod=.FALSE. not compatible avec flag_aerosol=1',1)
1618       END IF
1619    END IF
1620
1621!$OMP MASTER
1622
1623  write(numout,*)' ##############################################'
1624  write(numout,*)' Configuration des parametres de la physique: '
1625  write(numout,*)' Type ocean = ', type_ocean
1626  write(numout,*)' Version ocean = ', version_ocean
1627  write(numout,*)' Config veget = ', ok_veget
1628  write(numout,*)' Sortie journaliere = ', ok_journe
1629  write(numout,*)' Sortie haute frequence = ', ok_hf
1630  write(numout,*)' Sortie mensuelle = ', ok_mensuel
1631  write(numout,*)' Sortie instantanee = ', ok_instan
1632  write(numout,*)' Frequence appel simulateur ISCCP, freq_ISCCP =', freq_ISCCP
1633  write(numout,*)' Frequence appel simulateur ISCCP, ecrit_ISCCP =', ecrit_ISCCP
1634  write(numout,*)' Frequence appel simulateur COSP, freq_COSP =', freq_COSP
1635  write(numout,*)' Sortie bilan d''energie, ip_ebil_phy =', ip_ebil_phy
1636  write(numout,*)' Excentricite = ',R_ecc
1637  write(numout,*)' Equinoxe = ',R_peri
1638  write(numout,*)' Inclinaison =',R_incl
1639  write(numout,*)' Constante solaire =',solaire
1640  write(numout,*)' co2_ppm =',co2_ppm
1641  write(numout,*)' RCO2 = ',RCO2
1642  write(numout,*)' CH4_ppb =',CH4_ppb,' RCH4 = ',RCH4
1643  write(numout,*)' N2O_ppb =',N2O_ppb,' RN2O =  ',RN2O
1644  write(numout,*)' CFC11_ppt=',CFC11_ppt,' RCFC11 =  ',RCFC11
1645  write(numout,*)' CFC12_ppt=',CFC12_ppt,' RCFC12 =  ',RCFC12
1646  write(numout,*)' cvl_corr=', cvl_corr
1647  write(numout,*)'ok_lic_melt=', ok_lic_melt
1648  write(numout,*)'cycle_diurne=',cycle_diurne
1649  write(numout,*)'soil_model=',soil_model
1650  write(numout,*)'new_oliq=',new_oliq
1651  write(numout,*)'ok_orodr=',ok_orodr
1652  write(numout,*)'ok_orolf=',ok_orolf
1653  write(numout,*)'ok_limitvrai=',ok_limitvrai
1654  write(numout,*)'nbapp_rad=',nbapp_rad
1655  write(numout,*)'iflag_con=',iflag_con
1656  write(numout,*)' epmax = ', epmax
1657  write(numout,*)' ok_adj_ema = ', ok_adj_ema
1658  write(numout,*)' iflag_clw = ', iflag_clw
1659  write(numout,*)' cld_lc_lsc = ', cld_lc_lsc
1660  write(numout,*)' cld_lc_con = ', cld_lc_con
1661  write(numout,*)' cld_tau_lsc = ', cld_tau_lsc
1662  write(numout,*)' cld_tau_con = ', cld_tau_con
1663  write(numout,*)' ffallv_lsc = ', ffallv_lsc
1664  write(numout,*)' ffallv_con = ', ffallv_con
1665  write(numout,*)' coef_eva = ', coef_eva
1666  write(numout,*)' reevap_ice = ', reevap_ice
1667  write(numout,*)' iflag_pdf = ', iflag_pdf
1668  write(numout,*)' iflag_cldcon = ', iflag_cldcon
1669  write(numout,*)' iflag_radia = ', iflag_radia
1670  write(numout,*)' iflag_rrtm = ', iflag_rrtm
1671  write(numout,*)' iflag_ratqs = ', iflag_ratqs
1672  write(numout,*)' seuil_inversion = ', seuil_inversion
1673  write(numout,*)' fact_cldcon = ', fact_cldcon
1674  write(numout,*)' facttemps = ', facttemps
1675  write(numout,*)' ok_newmicro = ',ok_newmicro
1676  write(numout,*)' ratqsbas = ',ratqsbas
1677  write(numout,*)' ratqshaut = ',ratqshaut
1678  write(numout,*)' tau_ratqs = ',tau_ratqs
1679  write(numout,*)' top_height = ',top_height
1680  write(numout,*)' rad_froid = ',rad_froid
1681  write(numout,*)' rad_chau1 = ',rad_chau1
1682  write(numout,*)' rad_chau2 = ',rad_chau2
1683  write(numout,*)' t_glace_min = ',t_glace_min
1684  write(numout,*)' t_glace_max = ',t_glace_max
1685  write(numout,*)' overlap = ',overlap
1686  write(numout,*)' cdmmax = ',cdmmax
1687  write(numout,*)' cdhmax = ',cdhmax
1688  write(numout,*)' ksta = ',ksta
1689  write(numout,*)' ksta_ter = ',ksta_ter
1690  write(numout,*)' ok_kzmin = ',ok_kzmin
1691  write(numout,*)' fmagic = ',fmagic
1692  write(numout,*)' pmagic = ',pmagic
1693  write(numout,*)' ok_ade = ',ok_ade
1694  write(numout,*)' ok_aie = ',ok_aie
1695  write(numout,*)' aerosol_couple = ', aerosol_couple
1696  write(numout,*)' flag_aerosol = ', flag_aerosol
1697  write(numout,*)' new_aod = ', new_aod
1698  write(numout,*)' aer_type = ',aer_type
1699  write(numout,*)' bl95_b0 = ',bl95_b0
1700  write(numout,*)' bl95_b1 = ',bl95_b1
1701  write(numout,*)' lev_histhf = ',lev_histhf
1702  write(numout,*)' lev_histday = ',lev_histday
1703  write(numout,*)' lev_histmth = ',lev_histmth
1704  write(numout,*)' lev_histins = ',lev_histins
1705  write(numout,*)' lev_histLES = ',lev_histLES
1706  write(numout,*)' lev_histdayNMC = ',lev_histdayNMC
1707  write(numout,*)' ok_histNMC = ',ok_histNMC
1708  write(numout,*)' freq_outNMC = ',freq_outNMC
1709  write(numout,*)' freq_calNMC = ',freq_calNMC
1710  write(numout,*)' iflag_pbl = ', iflag_pbl
1711  write(numout,*)' iflag_thermals = ', iflag_thermals
1712  write(numout,*)' iflag_thermals_ed = ', iflag_thermals_ed
1713  write(numout,*)' iflag_thermals_optflux = ', iflag_thermals_optflux
1714  write(numout,*)' iflag_clos = ', iflag_clos
1715  write(numout,*)' type_run = ',type_run
1716  write(numout,*)' ok_isccp = ',ok_isccp
1717  write(numout,*)' ok_cosp = ',ok_cosp
1718  write(numout,*)' ok_mensuelCOSP = ',ok_mensuelCOSP
1719  write(numout,*)' ok_journeCOSP = ',ok_journeCOSP
1720  write(numout,*)' ok_hfCOSP =',ok_hfCOSP
1721  write(numout,*)' solarlong0 = ', solarlong0
1722  write(numout,*)' qsol0 = ', qsol0
1723  write(numout,*)' inertie_sol = ', inertie_sol
1724  write(numout,*)' inertie_ice = ', inertie_ice
1725  write(numout,*)' inertie_sno = ', inertie_sno
1726  write(numout,*)' f_cdrag_ter = ',f_cdrag_ter
1727  write(numout,*)' f_cdrag_oce = ',f_cdrag_oce
1728  write(numout,*)' f_rugoro = ',f_rugoro
1729  write(numout,*)' supcrit1 = ', supcrit1
1730  write(numout,*)' supcrit2 = ', supcrit2
1731  write(numout,*)' iflag_mix = ', iflag_mix
1732  write(numout,*)' scut = ', scut
1733  write(numout,*)' qqa1 = ', qqa1
1734  write(numout,*)' qqa2 = ', qqa2
1735  write(numout,*)' gammas = ', gammas
1736  write(numout,*)' Fmax = ', Fmax
1737  write(numout,*)' alphas = ', alphas
1738  write(numout,*)' iflag_wake = ', iflag_wake
1739  write(numout,*)' alp_offset = ', alp_offset
1740
1741  write(numout,*)' lonmin lonmax latmin latmax bilKP_ins =',&
1742   lonmin_ins, lonmax_ins, latmin_ins, latmax_ins
1743  write(numout,*)' ecrit_ hf, ins, day, mth, reg, tra, ISCCP, LES',&
1744   ecrit_hf, ecrit_ins, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra, ecrit_ISCCP, ecrit_LES
1745
1746  write(numout,*) 'ok_strato = ', ok_strato
1747  write(numout,*) 'ok_hines = ',  ok_hines
1748  write(numout,*) 'read_climoz = ', read_climoz
1749  write(numout,*) 'carbon_cycle_tr = ', carbon_cycle_tr
1750  write(numout,*) 'carbon_cycle_cpl = ', carbon_cycle_cpl
1751 
1752!$OMP END MASTER
1753
1754  return
1755 
1756  end subroutine conf_phys
1757
1758end module conf_phys_m
1759!
1760!#################################################################
1761!
1762
1763   subroutine conf_interface(tau_calv)
1764
1765   use IOIPSL
1766   implicit none
1767
1768! Configuration de l'interace atm/surf
1769!
1770! tau_calv:    temps de relaxation pour la fonte des glaciers
1771
1772  REAL          :: tau_calv
1773  REAL,SAVE     :: tau_calv_omp
1774
1775! Local
1776  integer              :: numout = 6
1777!
1778!Config Key  = tau_calv
1779!Config Desc = temps de relaxation pour fonte des glaciers en jours
1780!Config Def  = 1 an
1781!Config Help =
1782!
1783  tau_calv_omp = 360.*10.
1784!$OMP MASTER
1785  call getin('tau_calv',tau_calv_omp)
1786!$OMP END MASTER
1787!$OMP BARRIER
1788
1789  tau_calv=tau_calv_omp
1790 
1791!$OMP MASTER
1792  write(numout,*)' ##############################################'
1793  WRITE(numout,*)' Configuration de l''interface atm/surfaces  : '
1794  WRITE(numout,*)' tau_calv = ',tau_calv
1795!$OMP END MASTER
1796
1797  return
1798
1799  end subroutine conf_interface
Note: See TracBrowser for help on using the repository browser.