source: trunk/LMDZ.COMMON/libf/dyn3dpar/conf_gcm.F @ 270

Last change on this file since 270 was 270, checked in by emillour, 13 years ago

Ehouarn: Mise a jour des dynamiques (seq et ) pour suivre
les changements et developpements de LMDZ5 terrestre
(mise a niveau avec LMDZ5 trunk, rev 1560). Ce qui ne devrais pas changer grand chose au fonctionnement de base du GCM).
Modification importante: correction du bug sur le cumul des flux de masse pour le transport des traceurs (mais dans les faits semble avoir peu d'impact).
(voir "commit_importants.log" pour les details des ajouts et modifications).

File size: 29.1 KB
Line 
1!
2! $Id: conf_gcm.F 1418 2010-07-19 15:11:24Z jghattas $
3!
4c
5c
6      SUBROUTINE conf_gcm( tapedef, etatinit )
7c
8      USE control_mod
9#ifdef CPP_IOIPSL
10      use IOIPSL
11#else
12! if not using IOIPSL, we still need to use (a local version of) getin
13      use ioipsl_getincom
14#endif
15      IMPLICIT NONE
16c-----------------------------------------------------------------------
17c     Auteurs :   L. Fairhead , P. Le Van  .
18c
19c     Arguments :
20c
21c     tapedef   :
22c     etatinit  :     = TRUE   , on ne  compare pas les valeurs des para-
23c     -metres  du zoom  avec  celles lues sur le fichier start .
24c
25       LOGICAL etatinit
26       INTEGER tapedef
27
28c   Declarations :
29c   --------------
30#include "dimensions.h"
31#include "paramet.h"
32#include "logic.h"
33#include "serre.h"
34#include "comdissnew.h"
35#include "temps.h"
36#include "comconst.h"
37
38! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
39! #include "clesphys.h"
40#include "iniprint.h"
41c
42c
43c   local:
44c   ------
45
46      CHARACTER ch1*72,ch2*72,ch3*72,ch4*12
47      REAL clonn,clatt,grossismxx,grossismyy
48      REAL dzoomxx,dzoomyy, tauxx,tauyy
49      LOGICAL  fxyhypbb, ysinuss
50      INTEGER i
51      LOGICAL use_filtre_fft
52c
53c  -------------------------------------------------------------------
54c
55c       .........     Version  du 29/04/97       ..........
56c
57c   Nouveaux parametres nitergdiv,nitergrot,niterh,tetagdiv,tetagrot,
58c      tetatemp   ajoutes  pour la dissipation   .
59c
60c   Autre parametre ajoute en fin de liste de tapedef : ** fxyhypb **
61c
62c  Si fxyhypb = .TRUE. , choix de la fonction a derivee tangente hyperb.
63c    Sinon , choix de fxynew  , a derivee sinusoidale  ..
64c
65c   ......  etatinit = . TRUE. si defrun  est appele dans ETAT0_LMD  ou
66c         LIMIT_LMD  pour l'initialisation de start.dat (dic) et
67c                de limit.dat ( dic)                        ...........
68c           Sinon  etatinit = . FALSE .
69c
70c   Donc etatinit = .F.  si on veut comparer les valeurs de  grossismx ,
71c    grossismy,clon,clat, fxyhypb  lues sur  le fichier  start  avec
72c   celles passees  par run.def ,  au debut du gcm, apres l'appel a
73c    lectba . 
74c   Ces parmetres definissant entre autres la grille et doivent etre
75c   pareils et coherents , sinon il y aura  divergence du gcm .
76c
77c-----------------------------------------------------------------------
78c   initialisations:
79c   ----------------
80
81!Config  Key  = lunout
82!Config  Desc = unite de fichier pour les impressions
83!Config  Def  = 6
84!Config  Help = unite de fichier pour les impressions
85!Config         (defaut sortie standard = 6)
86      lunout=6
87      CALL getin('lunout', lunout)
88      IF (lunout /= 5 .and. lunout /= 6) THEN
89        OPEN(lunout,FILE='lmdz.out')
90      ENDIF
91
92!Config  Key  = prt_level
93!Config  Desc = niveau d'impressions de débogage
94!Config  Def  = 0
95!Config  Help = Niveau d'impression pour le débogage
96!Config         (0 = minimum d'impression)
97      prt_level = 0
98      CALL getin('prt_level',prt_level)
99
100c-----------------------------------------------------------------------
101c  Parametres de controle du run:
102c-----------------------------------------------------------------------
103!Config  Key  = planet_type
104!Config  Desc = planet type ("earth", "mars", "venus", ...)
105!Config  Def  = earth
106!Config  Help = this flag sets the type of atymosphere that is considered
107      planet_type="earth"
108      CALL getin('planet_type',planet_type)
109
110!Config  Key  = calend
111!Config  Desc = type de calendrier utilise
112!Config  Def  = earth_360d
113!Config  Help = valeur possible: earth_360d, earth_365d, earth_366d
114!Config         
115      calend = 'earth_360d'
116      CALL getin('calend', calend)
117
118!Config  Key  = dayref
119!Config  Desc = Jour de l'etat initial
120!Config  Def  = 1
121!Config  Help = Jour de l'etat initial ( = 350  si 20 Decembre ,
122!Config         par expl. ,comme ici ) ... A completer
123      dayref=1
124      CALL getin('dayref', dayref)
125
126!Config  Key  = anneeref
127!Config  Desc = Annee de l'etat initial
128!Config  Def  = 1998
129!Config  Help = Annee de l'etat  initial
130!Config         (   avec  4  chiffres   ) ... A completer
131      anneeref = 1998
132      CALL getin('anneeref',anneeref)
133
134!Config  Key  = raz_date
135!Config  Desc = Remise a zero de la date initiale
136!Config  Def  = 0 (pas de remise a zero)
137!Config  Help = Remise a zero de la date initiale
138!Config         0 pas de remise a zero, on garde la date du fichier restart
139!Config         1 prise en compte de la date de gcm.def avec remise a zero
140!Config         des compteurs de pas de temps
141      raz_date = 0
142      CALL getin('raz_date', raz_date)
143
144!Config  Key  = resetvarc
145!Config  Desc = Reinit des variables de controle
146!Config  Def  = n
147!Config  Help = Reinit des variables de controle
148      resetvarc = .false.
149      CALL getin('resetvarc',resetvarc)
150
151!Config  Key  = nday
152!Config  Desc = Nombre de jours d'integration
153!Config  Def  = 10
154!Config  Help = Nombre de jours d'integration
155!Config         ... On pourait aussi permettre des mois ou des annees !
156      nday = 10
157      CALL getin('nday',nday)
158
159!Config  Key  = less1day
160!Config  Desc = Possibilite d'integrer moins d'un jour
161!Config  Def  = n
162!Config  Help = Possibilite d'integrer moins d'un jour
163      less1day = .false.
164      CALL getin('less1day',less1day)
165
166!Config  Key  = fractday
167!Config  Desc = integration sur une fraction de jour
168!Config  Def  = 0.01
169!Config  Help = integration sur une fraction de jour
170      fractday = 0.01
171      CALL getin('fractday',fractday)
172
173!Config  Key  = day_step
174!Config  Desc = nombre de pas par jour
175!Config  Def  = 240
176!Config  Help = nombre de pas par jour (multiple de iperiod) (
177!Config          ici pour  dt = 1 min )
178       day_step = 240
179       CALL getin('day_step',day_step)
180
181!Config  Key  = nsplit_phys
182!Config  Desc = nombre de subdivisions par pas physique
183!Config  Def  = 1
184!Config  Help = nombre de subdivisions par pas physique
185       nsplit_phys = 1
186       CALL getin('nsplit_phys',nsplit_phys)
187
188!Config  Key  = iperiod
189!Config  Desc = periode pour le pas Matsuno
190!Config  Def  = 5
191!Config  Help = periode pour le pas Matsuno (en pas de temps)
192       iperiod = 5
193       CALL getin('iperiod',iperiod)
194
195!Config  Key  = iapp_tracvl
196!Config  Desc = frequence du groupement des flux
197!Config  Def  = iperiod
198!Config  Help = frequence du groupement des flux (en pas de temps)
199       iapp_tracvl = iperiod
200       CALL getin('iapp_tracvl',iapp_tracvl)
201
202!Config  Key  = iconser
203!Config  Desc = periode de sortie des variables de controle
204!Config  Def  = 240 
205!Config  Help = periode de sortie des variables de controle
206!Config         (En pas de temps)
207       iconser = 240 
208       CALL getin('iconser', iconser)
209
210!Config  Key  = iecri
211!Config  Desc = periode d'ecriture du fichier histoire
212!Config  Def  = 1
213!Config  Help = periode d'ecriture du fichier histoire (en jour)
214       iecri = 1
215       CALL getin('iecri',iecri)
216
217
218!Config  Key  = periodav
219!Config  Desc = periode de stockage fichier histmoy
220!Config  Def  = 1
221!Config  Help = periode de stockage fichier histmoy (en jour)
222       periodav = 1.
223       CALL getin('periodav',periodav)
224
225!Config  Key  = output_grads_dyn
226!Config  Desc = output dynamics diagnostics in 'dyn.dat' file
227!Config  Def  = n
228!Config  Help = output dynamics diagnostics in Grads-readable 'dyn.dat' file
229       output_grads_dyn=.false.
230       CALL getin('output_grads_dyn',output_grads_dyn)
231
232!Config  Key  = dissip_period
233!Config  Desc = periode de la dissipation
234!Config  Def  = 0
235!Config  Help = periode de la dissipation
236!Config  dissip_period=0 => la valeur sera calcule dans inidissip       
237!Config  dissip_period>0 => on prend cette valeur
238       dissip_period = 0
239       CALL getin('dissip_period',dissip_period)
240
241ccc  ....   P. Le Van , modif le 29/04/97 .pour la dissipation  ...
242ccc
243
244!Config  Key  = lstardis
245!Config  Desc = choix de l'operateur de dissipation
246!Config  Def  = y
247!Config  Help = choix de l'operateur de dissipation
248!Config         'y' si on veut star et 'n' si on veut non-start !
249!Config         Moi y en a pas comprendre !
250       lstardis = .TRUE.
251       CALL getin('lstardis',lstardis)
252
253
254!Config  Key  = nitergdiv
255!Config  Desc = Nombre d'iteration de gradiv
256!Config  Def  = 1
257!Config  Help = nombre d'iterations de l'operateur de dissipation
258!Config         gradiv
259       nitergdiv = 1
260       CALL getin('nitergdiv',nitergdiv)
261
262!Config  Key  = nitergrot
263!Config  Desc = nombre d'iterations de nxgradrot
264!Config  Def  = 2
265!Config  Help = nombre d'iterations de l'operateur de dissipation 
266!Config         nxgradrot
267       nitergrot = 2
268       CALL getin('nitergrot',nitergrot)
269
270
271!Config  Key  = niterh
272!Config  Desc = nombre d'iterations de divgrad
273!Config  Def  = 2
274!Config  Help = nombre d'iterations de l'operateur de dissipation
275!Config         divgrad
276       niterh = 2
277       CALL getin('niterh',niterh)
278
279
280!Config  Key  = tetagdiv
281!Config  Desc = temps de dissipation pour div
282!Config  Def  = 7200
283!Config  Help = temps de dissipation des plus petites longeur
284!Config         d'ondes pour u,v (gradiv)
285       tetagdiv = 7200.
286       CALL getin('tetagdiv',tetagdiv)
287
288!Config  Key  = tetagrot
289!Config  Desc = temps de dissipation pour grad
290!Config  Def  = 7200
291!Config  Help = temps de dissipation des plus petites longeur
292!Config         d'ondes pour u,v (nxgradrot)
293       tetagrot = 7200.
294       CALL getin('tetagrot',tetagrot)
295
296!Config  Key  = tetatemp
297!Config  Desc = temps de dissipation pour h
298!Config  Def  = 7200
299!Config  Help =  temps de dissipation des plus petites longeur
300!Config         d'ondes pour h (divgrad)   
301       tetatemp  = 7200.
302       CALL getin('tetatemp',tetatemp )
303
304! Parametres controlant la variation sur la verticale des constantes de
305! dissipation.
306! Actifs uniquement avec ok_strato=y
307
308       dissip_fac_mid=2.
309       dissip_fac_up=10.
310       dissip_deltaz=10.! Intervalle (km) pour le changement mid / up
311       dissip_hdelta=5. ! scale height (km) dans la zone de la transition(m)
312       dissip_pupstart=1.e3  ! pression (Pa) au bas la transition mid / up
313       CALL getin('dissip_fac_mid',dissip_fac_mid )
314       CALL getin('dissip_fac_up',dissip_fac_up )
315       CALL getin('dissip_deltaz',dissip_deltaz )
316       CALL getin('dissip_hdelta',dissip_hdelta )
317       CALL getin('dissip_pupstart',dissip_pupstart )
318
319! Parametres controlant la couche eponge
320! Actifs uniquement avec ok_strato=y
321!   mode = 0 : pas de sponge
322!   mode = 1 : u et v -> 0
323!   mode = 2 : u et v -> moyenne zonale
324!   mode = 3 : u, v et h -> moyenne zonale
325       iflag_top_bound=1
326       mode_top_bound=3
327       tau_top_bound=1.e-5
328       CALL getin('iflag_top_bound',iflag_top_bound)
329       CALL getin('mode_top_bound',mode_top_bound)
330       CALL getin('tau_top_bound',tau_top_bound)
331
332!Config  Key  = coefdis
333!Config  Desc = coefficient pour gamdissip
334!Config  Def  = 0
335!Config  Help = coefficient pour gamdissip 
336       coefdis = 0.
337       CALL getin('coefdis',coefdis)
338
339!Config  Key  = purmats
340!Config  Desc = Schema d'integration
341!Config  Def  = n
342!Config  Help = Choix du schema d'integration temporel.
343!Config         y = pure Matsuno sinon c'est du Matsuno-leapfrog
344       purmats = .FALSE.
345       CALL getin('purmats',purmats)
346
347!Config  Key  = ok_guide
348!Config  Desc = Guidage
349!Config  Def  = n
350!Config  Help = Guidage
351       ok_guide = .FALSE.
352       CALL getin('ok_guide',ok_guide)
353
354c    ...............................................................
355
356!Config  Key  =  read_start
357!Config  Desc = Initialize model using a 'start.nc' file
358!Config  Def  = y
359!Config  Help = y: intialize dynamical fields using a 'start.nc' file
360!               n: fields are initialized by 'iniacademic' routine
361       read_start= .true.
362       CALL getin('read_start',read_start)
363
364!Config  Key  = iflag_phys
365!Config  Desc = Avec ls physique
366!Config  Def  = 1
367!Config  Help = Permet de faire tourner le modele sans
368!Config         physique.
369       iflag_phys = 1
370       CALL getin('iflag_phys',iflag_phys)
371
372
373!Config  Key  =  iphysiq
374!Config  Desc = Periode de la physique
375!Config  Def  = 5
376!Config  Help = Periode de la physique en pas de temps de la dynamique.
377       iphysiq = 5
378       CALL getin('iphysiq', iphysiq)
379
380!Config  Key  = iflag_trac
381!Config  Desc = traceurs presents ou non
382!Config  Def  = 1
383!Config  Help = Permet de faire tourner le modele sans traceurs
384!Config         
385       iflag_trac = 1
386       CALL getin('iflag_trac',iflag_trac)
387
388!Config  Key  = ip_ebil_dyn
389!Config  Desc = PRINT level for energy conserv. diag.
390!Config  Def  = 0
391!Config  Help = PRINT level for energy conservation diag. ;
392!               les options suivantes existent :
393!Config         0 pas de print
394!Config         1 pas de print
395!Config         2 print,
396       ip_ebil_dyn = 0
397       CALL getin('ip_ebil_dyn',ip_ebil_dyn)
398
399ccc  ....   P. Le Van , ajout  le 7/03/95 .pour le zoom ...
400c     .........   (  modif  le 17/04/96 )   .........
401c
402      IF( etatinit ) GO TO 100
403
404!Config  Key  = clon
405!Config  Desc = centre du zoom, longitude
406!Config  Def  = 0
407!Config  Help = longitude en degres du centre
408!Config         du zoom
409       clonn = 0.
410       CALL getin('clon',clonn)
411
412!Config  Key  = clat
413!Config  Desc = centre du zoom, latitude
414!Config  Def  = 0
415!Config  Help = latitude en degres du centre du zoom
416!Config         
417       clatt = 0.
418       CALL getin('clat',clatt)
419
420c
421c
422      IF( ABS(clat - clatt).GE. 0.001 )  THEN
423        write(lunout,*)'conf_gcm: La valeur de clat passee par run.def',
424     &    ' est differente de celle lue sur le fichier  start '
425        STOP
426      ENDIF
427
428!Config  Key  = grossismx
429!Config  Desc = zoom en longitude
430!Config  Def  = 1.0
431!Config  Help = facteur de grossissement du zoom,
432!Config         selon la longitude
433       grossismxx = 1.0
434       CALL getin('grossismx',grossismxx)
435
436
437      IF( ABS(grossismx - grossismxx).GE. 0.001 )  THEN
438        write(lunout,*)'conf_gcm: La valeur de grossismx passee par ',
439     &  'run.def est differente de celle lue sur le fichier  start '
440        STOP
441      ENDIF
442
443!Config  Key  = grossismy
444!Config  Desc = zoom en latitude
445!Config  Def  = 1.0
446!Config  Help = facteur de grossissement du zoom,
447!Config         selon la latitude
448       grossismyy = 1.0
449       CALL getin('grossismy',grossismyy)
450
451      IF( ABS(grossismy - grossismyy).GE. 0.001 )  THEN
452        write(lunout,*)'conf_gcm: La valeur de grossismy passee par ',
453     & 'run.def est differente de celle lue sur le fichier  start '
454        STOP
455      ENDIF
456     
457      IF( grossismx.LT.1. )  THEN
458        write(lunout,*)
459     &       'conf_gcm: ***  ATTENTION !! grossismx < 1 .   *** '
460         STOP
461      ELSE
462         alphax = 1. - 1./ grossismx
463      ENDIF
464
465
466      IF( grossismy.LT.1. )  THEN
467        write(lunout,*)
468     &       'conf_gcm: ***  ATTENTION !! grossismy < 1 .   *** '
469         STOP
470      ELSE
471         alphay = 1. - 1./ grossismy
472      ENDIF
473
474      write(lunout,*)'conf_gcm: alphax alphay',alphax,alphay
475c
476c    alphax et alphay sont les anciennes formulat. des grossissements
477c
478c
479
480!Config  Key  = fxyhypb
481!Config  Desc = Fonction  hyperbolique
482!Config  Def  = y
483!Config  Help = Fonction  f(y)  hyperbolique  si = .true. 
484!Config         sinon  sinusoidale
485       fxyhypbb = .TRUE.
486       CALL getin('fxyhypb',fxyhypbb)
487
488      IF( .NOT.fxyhypb )  THEN
489         IF( fxyhypbb )     THEN
490            write(lunout,*)' ********  PBS DANS  CONF_GCM  ******** '
491            write(lunout,*)' *** fxyhypb lu sur le fichier start est ',
492     *       'F alors  qu il est  T  sur  run.def  ***'
493              STOP
494         ENDIF
495      ELSE
496         IF( .NOT.fxyhypbb )   THEN
497            write(lunout,*)' ********  PBS DANS  CONF_GCM  ******** '
498            write(lunout,*)' ***  fxyhypb lu sur le fichier start est ',
499     *        'T alors  qu il est  F  sur  run.def  ****  '
500              STOP
501         ENDIF
502      ENDIF
503c
504!Config  Key  = dzoomx
505!Config  Desc = extension en longitude
506!Config  Def  = 0
507!Config  Help = extension en longitude  de la zone du zoom 
508!Config         ( fraction de la zone totale)
509       dzoomxx = 0.0
510       CALL getin('dzoomx',dzoomxx)
511
512      IF( fxyhypb )  THEN
513       IF( ABS(dzoomx - dzoomxx).GE. 0.001 )  THEN
514        write(lunout,*)'conf_gcm: La valeur de dzoomx passee par ',
515     *  'run.def est differente de celle lue sur le fichier  start '
516        STOP
517       ENDIF
518      ENDIF
519
520!Config  Key  = dzoomy
521!Config  Desc = extension en latitude
522!Config  Def  = 0
523!Config  Help = extension en latitude de la zone  du zoom 
524!Config         ( fraction de la zone totale)
525       dzoomyy = 0.0
526       CALL getin('dzoomy',dzoomyy)
527
528      IF( fxyhypb )  THEN
529       IF( ABS(dzoomy - dzoomyy).GE. 0.001 )  THEN
530        write(lunout,*)'conf_gcm: La valeur de dzoomy passee par ',
531     * 'run.def est differente de celle lue sur le fichier  start '
532        STOP
533       ENDIF
534      ENDIF
535     
536!Config  Key  = taux
537!Config  Desc = raideur du zoom en  X
538!Config  Def  = 3
539!Config  Help = raideur du zoom en  X
540       tauxx = 3.0
541       CALL getin('taux',tauxx)
542
543      IF( fxyhypb )  THEN
544       IF( ABS(taux - tauxx).GE. 0.001 )  THEN
545        write(lunout,*)'conf_gcm: La valeur de taux passee par ',
546     * 'run.def est differente de celle lue sur le fichier  start '
547        STOP
548       ENDIF
549      ENDIF
550
551!Config  Key  = tauyy
552!Config  Desc = raideur du zoom en  Y
553!Config  Def  = 3
554!Config  Help = raideur du zoom en  Y
555       tauyy = 3.0
556       CALL getin('tauy',tauyy)
557
558      IF( fxyhypb )  THEN
559       IF( ABS(tauy - tauyy).GE. 0.001 )  THEN
560        write(lunout,*)'conf_gcm: La valeur de tauy passee par ',
561     * 'run.def est differente de celle lue sur le fichier  start '
562        STOP
563       ENDIF
564      ENDIF
565
566cc
567      IF( .NOT.fxyhypb  )  THEN
568
569!Config  Key  = ysinus
570!Config  IF   = !fxyhypb
571!Config  Desc = Fonction en Sinus
572!Config  Def  = y
573!Config  Help = Fonction  f(y) avec y = Sin(latit.) si = .true.
574!Config         sinon y = latit.
575       ysinuss = .TRUE.
576       CALL getin('ysinus',ysinuss)
577
578        IF( .NOT.ysinus )  THEN
579          IF( ysinuss )     THEN
580            write(lunout,*)' ********  PBS DANS  CONF_GCM  ******** '
581            write(lunout,*)' *** ysinus lu sur le fichier start est F',
582     *       ' alors  qu il est  T  sur  run.def  ***'
583            STOP
584          ENDIF
585        ELSE
586          IF( .NOT.ysinuss )   THEN
587            write(lunout,*)' ********  PBS DANS  CONF_GCM  ******** '
588            write(lunout,*)' *** ysinus lu sur le fichier start est T',
589     *        ' alors  qu il est  F  sur  run.def  ****  '
590              STOP
591          ENDIF
592        ENDIF
593      ENDIF ! of IF( .NOT.fxyhypb  )
594c
595!Config  Key  = offline
596!Config  Desc = Nouvelle eau liquide
597!Config  Def  = n
598!Config  Help = Permet de mettre en route la
599!Config         nouvelle parametrisation de l'eau liquide !
600       offline = .FALSE.
601       CALL getin('offline',offline)
602
603!Config  Key  = config_inca
604!Config  Desc = Choix de configuration de INCA
605!Config  Def  = none
606!Config  Help = Choix de configuration de INCA :
607!Config         'none' = sans INCA
608!Config         'chem' = INCA avec calcul de chemie
609!Config         'aero' = INCA avec calcul des aerosols
610      config_inca = 'none'
611      CALL getin('config_inca',config_inca)
612
613!Config  Key  = ok_dynzon
614!Config  Desc = calcul et sortie des transports
615!Config  Def  = n
616!Config  Help = Permet de mettre en route le calcul des transports
617!Config         
618      ok_dynzon = .FALSE.
619      CALL getin('ok_dynzon',ok_dynzon)
620
621!Config  Key  = ok_dyn_ins
622!Config  Desc = sorties instantanees dans la dynamique
623!Config  Def  = n
624!Config  Help =
625!Config         
626      ok_dyn_ins = .FALSE.
627      CALL getin('ok_dyn_ins',ok_dyn_ins)
628
629!Config  Key  = ok_dyn_ave
630!Config  Desc = sorties moyennes dans la dynamique
631!Config  Def  = n
632!Config  Help =
633!Config         
634      ok_dyn_ave = .FALSE.
635      CALL getin('ok_dyn_ave',ok_dyn_ave)
636
637
638      write(lunout,*)' #########################################'
639      write(lunout,*)' Configuration des parametres du gcm: '
640      write(lunout,*)' planet_type = ', planet_type
641      write(lunout,*)' calend = ', calend
642      write(lunout,*)' dayref = ', dayref
643      write(lunout,*)' anneeref = ', anneeref
644      write(lunout,*)' nday = ', nday
645      if (less1day) then
646      write(lunout,*)' Run only for a fraction of day ! '
647      write(lunout,*)' fractday = ', fractday
648      endif
649      write(lunout,*)' day_step = ', day_step
650      write(lunout,*)' iperiod = ', iperiod
651      write(lunout,*)' iconser = ', iconser
652      write(lunout,*)' iecri = ', iecri
653      write(lunout,*)' periodav = ', periodav
654      write(lunout,*)' output_grads_dyn = ', output_grads_dyn
655      write(lunout,*)' dissip_period = ', dissip_period
656      write(lunout,*)' lstardis = ', lstardis
657      write(lunout,*)' nitergdiv = ', nitergdiv
658      write(lunout,*)' nitergrot = ', nitergrot
659      write(lunout,*)' niterh = ', niterh
660      write(lunout,*)' tetagdiv = ', tetagdiv
661      write(lunout,*)' tetagrot = ', tetagrot
662      write(lunout,*)' tetatemp = ', tetatemp
663      write(lunout,*)' coefdis = ', coefdis
664      write(lunout,*)' purmats = ', purmats
665      write(lunout,*)' read_start = ', read_start
666      write(lunout,*)' iflag_phys = ', iflag_phys
667      write(lunout,*)' iphysiq = ', iphysiq
668      write(lunout,*)' iflag_trac = ', iflag_trac
669      write(lunout,*)' clonn = ', clonn
670      write(lunout,*)' clatt = ', clatt
671      write(lunout,*)' grossismx = ', grossismx
672      write(lunout,*)' grossismy = ', grossismy
673      write(lunout,*)' fxyhypbb = ', fxyhypbb
674      write(lunout,*)' dzoomxx = ', dzoomxx
675      write(lunout,*)' dzoomy = ', dzoomyy
676      write(lunout,*)' tauxx = ', tauxx
677      write(lunout,*)' tauyy = ', tauyy
678      write(lunout,*)' offline = ', offline
679      write(lunout,*)' config_inca = ', config_inca
680      write(lunout,*)' ok_dynzon = ', ok_dynzon
681      write(lunout,*)' ok_dyn_ins = ', ok_dyn_ins
682      write(lunout,*)' ok_dyn_ave = ', ok_dyn_ave
683
684      RETURN
685c   ...............................................
686c
687100   CONTINUE
688!Config  Key  = clon
689!Config  Desc = centre du zoom, longitude
690!Config  Def  = 0
691!Config  Help = longitude en degres du centre
692!Config         du zoom
693       clon = 0.
694       CALL getin('clon',clon)
695
696!Config  Key  = clat
697!Config  Desc = centre du zoom, latitude
698!Config  Def  = 0
699!Config  Help = latitude en degres du centre du zoom
700!Config         
701       clat = 0.
702       CALL getin('clat',clat)
703
704!Config  Key  = grossismx
705!Config  Desc = zoom en longitude
706!Config  Def  = 1.0
707!Config  Help = facteur de grossissement du zoom,
708!Config         selon la longitude
709       grossismx = 1.0
710       CALL getin('grossismx',grossismx)
711
712!Config  Key  = grossismy
713!Config  Desc = zoom en latitude
714!Config  Def  = 1.0
715!Config  Help = facteur de grossissement du zoom,
716!Config         selon la latitude
717       grossismy = 1.0
718       CALL getin('grossismy',grossismy)
719
720      IF( grossismx.LT.1. )  THEN
721        write(lunout,*)
722     &   'conf_gcm: ***  ATTENTION !! grossismx < 1 .   *** '
723         STOP
724      ELSE
725         alphax = 1. - 1./ grossismx
726      ENDIF
727
728
729      IF( grossismy.LT.1. )  THEN
730        write(lunout,*)
731     &  'conf_gcm: ***  ATTENTION !! grossismy < 1 .   *** '
732         STOP
733      ELSE
734         alphay = 1. - 1./ grossismy
735      ENDIF
736
737      write(lunout,*)'conf_gcm: alphax alphay ',alphax,alphay
738c
739c    alphax et alphay sont les anciennes formulat. des grossissements
740c
741c
742
743!Config  Key  = fxyhypb
744!Config  Desc = Fonction  hyperbolique
745!Config  Def  = y
746!Config  Help = Fonction  f(y)  hyperbolique  si = .true. 
747!Config         sinon  sinusoidale
748       fxyhypb = .TRUE.
749       CALL getin('fxyhypb',fxyhypb)
750
751!Config  Key  = dzoomx
752!Config  Desc = extension en longitude
753!Config  Def  = 0
754!Config  Help = extension en longitude  de la zone du zoom 
755!Config         ( fraction de la zone totale)
756       dzoomx = 0.0
757       CALL getin('dzoomx',dzoomx)
758
759!Config  Key  = dzoomy
760!Config  Desc = extension en latitude
761!Config  Def  = 0
762!Config  Help = extension en latitude de la zone  du zoom 
763!Config         ( fraction de la zone totale)
764       dzoomy = 0.0
765       CALL getin('dzoomy',dzoomy)
766
767!Config  Key  = taux
768!Config  Desc = raideur du zoom en  X
769!Config  Def  = 3
770!Config  Help = raideur du zoom en  X
771       taux = 3.0
772       CALL getin('taux',taux)
773
774!Config  Key  = tauy
775!Config  Desc = raideur du zoom en  Y
776!Config  Def  = 3
777!Config  Help = raideur du zoom en  Y
778       tauy = 3.0
779       CALL getin('tauy',tauy)
780
781!Config  Key  = ysinus
782!Config  IF   = !fxyhypb
783!Config  Desc = Fonction en Sinus
784!Config  Def  = y
785!Config  Help = Fonction  f(y) avec y = Sin(latit.) si = .true.
786!Config         sinon y = latit.
787       ysinus = .TRUE.
788       CALL getin('ysinus',ysinus)
789c
790!Config  Key  = offline
791!Config  Desc = Nouvelle eau liquide
792!Config  Def  = n
793!Config  Help = Permet de mettre en route la
794!Config         nouvelle parametrisation de l'eau liquide !
795       offline = .FALSE.
796       CALL getin('offline',offline)
797
798!Config  Key  = config_inca
799!Config  Desc = Choix de configuration de INCA
800!Config  Def  = none
801!Config  Help = Choix de configuration de INCA :
802!Config         'none' = sans INCA
803!Config         'chem' = INCA avec calcul de chemie
804!Config         'aero' = INCA avec calcul des aerosols
805      config_inca = 'none'
806      CALL getin('config_inca',config_inca)
807
808!Config  Key  = ok_dynzon
809!Config  Desc = sortie des transports zonaux dans la dynamique
810!Config  Def  = n
811!Config  Help = 
812!Config         
813       ok_dynzon = .FALSE.
814       CALL getin('ok_dynzon',ok_dynzon)
815
816!Config  Key  = ok_dyn_ins
817!Config  Desc = sorties instantanees dans la dynamique
818!Config  Def  = n
819!Config  Help =
820!Config         
821      ok_dyn_ins = .FALSE.
822      CALL getin('ok_dyn_ins',ok_dyn_ins)
823
824!Config  Key  = ok_dyn_ave
825!Config  Desc = sorties moyennes dans la dynamique
826!Config  Def  = n
827!Config  Help =
828!Config         
829      ok_dyn_ave = .FALSE.
830      CALL getin('ok_dyn_ave',ok_dyn_ave)
831
832!Config  Key  = use_filtre_fft
833!Config  Desc = flag d'activation des FFT pour le filtre
834!Config  Def  = false
835!Config  Help = permet d'activer l'utilisation des FFT pour effectuer
836!Config         le filtrage aux poles.
837! Le filtre fft n'est pas implemente dans dyn3d
838      use_filtre_fft=.FALSE.
839      CALL getin('use_filtre_fft',use_filtre_fft)
840
841      IF (use_filtre_fft) THEN
842        write(lunout,*)'STOP !!!'
843        write(lunout,*)'use_filtre_fft n est pas implemente dans dyn3d'
844        STOP
845      ENDIF
846     
847!Config key = ok_strato
848!Config  Desc = activation de la version strato
849!Config  Def  = .FALSE.
850!Config  Help = active la version stratosphérique de LMDZ de F. Lott
851
852      ok_strato=.TRUE.
853      CALL getin('ok_strato',ok_strato)
854
855!Config  Key  = ok_gradsfile
856!Config  Desc = activation des sorties grads du guidage
857!Config  Def  = n
858!Config  Help = active les sorties grads du guidage
859
860       ok_gradsfile = .FALSE.
861       CALL getin('ok_gradsfile',ok_gradsfile)
862
863!Config  Key  = ok_limit
864!Config  Desc = creation des fichiers limit dans create_etat0_limit
865!Config  Def  = y
866!Config  Help = production du fichier limit.nc requise
867
868       ok_limit = .TRUE.
869       CALL getin('ok_limit',ok_limit)
870
871!Config  Key  = ok_etat0
872!Config  Desc = creation des fichiers etat0 dans create_etat0_limit
873!Config  Def  = y
874!Config  Help = production des fichiers start.nc, startphy.nc requise
875
876      ok_etat0 = .TRUE.
877      CALL getin('ok_etat0',ok_etat0)
878
879!Config  Key  = grilles_gcm_netcdf
880!Config  Desc = creation de fichier grilles_gcm.nc dans create_etat0_limit
881!Config  Def  = n
882      grilles_gcm_netcdf = .FALSE.
883      CALL getin('grilles_gcm_netcdf',grilles_gcm_netcdf)
884
885      write(lunout,*)' #########################################'
886      write(lunout,*)' Configuration des parametres de cel0'
887     &             //'_limit: '
888      write(lunout,*)' planet_type = ', planet_type
889      write(lunout,*)' calend = ', calend
890      write(lunout,*)' dayref = ', dayref
891      write(lunout,*)' anneeref = ', anneeref
892      write(lunout,*)' nday = ', nday
893      write(lunout,*)' day_step = ', day_step
894      write(lunout,*)' iperiod = ', iperiod
895      write(lunout,*)' iconser = ', iconser
896      write(lunout,*)' iecri = ', iecri
897      write(lunout,*)' periodav = ', periodav
898      write(lunout,*)' output_grads_dyn = ', output_grads_dyn
899      write(lunout,*)' dissip_period = ', dissip_period
900      write(lunout,*)' lstardis = ', lstardis
901      write(lunout,*)' nitergdiv = ', nitergdiv
902      write(lunout,*)' nitergrot = ', nitergrot
903      write(lunout,*)' niterh = ', niterh
904      write(lunout,*)' tetagdiv = ', tetagdiv
905      write(lunout,*)' tetagrot = ', tetagrot
906      write(lunout,*)' tetatemp = ', tetatemp
907      write(lunout,*)' coefdis = ', coefdis
908      write(lunout,*)' purmats = ', purmats
909      write(lunout,*)' read_start = ', read_start
910      write(lunout,*)' iflag_phys = ', iflag_phys
911      write(lunout,*)' iphysiq = ', iphysiq
912      write(lunout,*)' iflag_trac = ', iflag_trac
913      write(lunout,*)' clon = ', clon
914      write(lunout,*)' clat = ', clat
915      write(lunout,*)' grossismx = ', grossismx
916      write(lunout,*)' grossismy = ', grossismy
917      write(lunout,*)' fxyhypb = ', fxyhypb
918      write(lunout,*)' dzoomx = ', dzoomx
919      write(lunout,*)' dzoomy = ', dzoomy
920      write(lunout,*)' taux = ', taux
921      write(lunout,*)' tauy = ', tauy
922      write(lunout,*)' offline = ', offline
923      write(lunout,*)' config_inca = ', config_inca
924      write(lunout,*)' ok_dynzon = ', ok_dynzon
925      write(lunout,*)' ok_dyn_ins = ', ok_dyn_ins
926      write(lunout,*)' ok_dyn_ave = ', ok_dyn_ave
927      write(lunout,*)' ok_strato = ', ok_strato
928      write(lunout,*)' ok_gradsfile = ', ok_gradsfile
929      write(lunout,*)' ok_limit = ', ok_limit
930      write(lunout,*)' ok_etat0 = ', ok_etat0
931      write(lunout,*)' grilles_gcm_netcdf = ', grilles_gcm_netcdf
932c
933      RETURN
934      END
Note: See TracBrowser for help on using the repository browser.