source: trunk/libf/dyn3d/conf_gcm.F @ 123

Last change on this file since 123 was 119, checked in by slebonnois, 14 years ago

Sebastien Lebonnois: apres validation des versions Venus et Titan,
correction d'un certain nombre de bugs.

File size: 28.7 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  = idissip
233!Config  Desc = periode de la dissipation
234!Config  Def  = 10
235!Config  Help = periode de la dissipation
236!Config         (en pas) ... a completer !
237       idissip = 10
238       CALL getin('idissip',idissip)
239
240ccc  ....   P. Le Van , modif le 29/04/97 .pour la dissipation  ...
241ccc
242
243!Config  Key  = lstardis
244!Config  Desc = choix de l'operateur de dissipation
245!Config  Def  = y
246!Config  Help = choix de l'operateur de dissipation
247!Config         'y' si on veut star et 'n' si on veut non-start !
248!Config         Moi y en a pas comprendre !
249       lstardis = .TRUE.
250       CALL getin('lstardis',lstardis)
251
252
253!Config  Key  = nitergdiv
254!Config  Desc = Nombre d'iteration de gradiv
255!Config  Def  = 1
256!Config  Help = nombre d'iterations de l'operateur de dissipation
257!Config         gradiv
258       nitergdiv = 1
259       CALL getin('nitergdiv',nitergdiv)
260
261!Config  Key  = nitergrot
262!Config  Desc = nombre d'iterations de nxgradrot
263!Config  Def  = 2
264!Config  Help = nombre d'iterations de l'operateur de dissipation 
265!Config         nxgradrot
266       nitergrot = 2
267       CALL getin('nitergrot',nitergrot)
268
269
270!Config  Key  = niterh
271!Config  Desc = nombre d'iterations de divgrad
272!Config  Def  = 2
273!Config  Help = nombre d'iterations de l'operateur de dissipation
274!Config         divgrad
275       niterh = 2
276       CALL getin('niterh',niterh)
277
278
279!Config  Key  = tetagdiv
280!Config  Desc = temps de dissipation pour div
281!Config  Def  = 7200
282!Config  Help = temps de dissipation des plus petites longeur
283!Config         d'ondes pour u,v (gradiv)
284       tetagdiv = 7200.
285       CALL getin('tetagdiv',tetagdiv)
286
287!Config  Key  = tetagrot
288!Config  Desc = temps de dissipation pour grad
289!Config  Def  = 7200
290!Config  Help = temps de dissipation des plus petites longeur
291!Config         d'ondes pour u,v (nxgradrot)
292       tetagrot = 7200.
293       CALL getin('tetagrot',tetagrot)
294
295!Config  Key  = tetatemp
296!Config  Desc = temps de dissipation pour h
297!Config  Def  = 7200
298!Config  Help =  temps de dissipation des plus petites longeur
299!Config         d'ondes pour h (divgrad)   
300       tetatemp  = 7200.
301       CALL getin('tetatemp',tetatemp )
302
303! Parametres controlant la variation sur la verticale des constantes de
304! dissipation.
305! Actifs uniquement avec ok_strato=y
306
307       dissip_fac_mid=2.
308       dissip_fac_up=10.
309       dissip_deltaz=10.! Intervalle (km) pour le changement mid / up
310       dissip_hdelta=5. ! scale height (km) dans la zone de la transition(m)
311       dissip_pupstart=1.e3  ! pression (Pa) au bas la transition mid / up
312       CALL getin('dissip_fac_mid',dissip_fac_mid )
313       CALL getin('dissip_fac_up',dissip_fac_up )
314       CALL getin('dissip_deltaz',dissip_deltaz )
315       CALL getin('dissip_hdelta',dissip_hdelta )
316       CALL getin('dissip_pupstart',dissip_pupstart )
317
318! Parametres controlant la couche eponge
319! Actifs uniquement avec ok_strato=y
320!   mode = 0 : pas de sponge
321!   mode = 1 : u et v -> 0
322!   mode = 2 : u et v -> moyenne zonale
323!   mode = 3 : u, v et h -> moyenne zonale
324       iflag_top_bound=1
325       mode_top_bound=3
326       tau_top_bound=1.e-5
327       CALL getin('iflag_top_bound',iflag_top_bound)
328       CALL getin('mode_top_bound',mode_top_bound)
329       CALL getin('tau_top_bound',tau_top_bound)
330
331!Config  Key  = coefdis
332!Config  Desc = coefficient pour gamdissip
333!Config  Def  = 0
334!Config  Help = coefficient pour gamdissip 
335       coefdis = 0.
336       CALL getin('coefdis',coefdis)
337
338!Config  Key  = purmats
339!Config  Desc = Schema d'integration
340!Config  Def  = n
341!Config  Help = Choix du schema d'integration temporel.
342!Config         y = pure Matsuno sinon c'est du Matsuno-leapfrog
343       purmats = .FALSE.
344       CALL getin('purmats',purmats)
345
346!Config  Key  = ok_guide
347!Config  Desc = Guidage
348!Config  Def  = n
349!Config  Help = Guidage
350       ok_guide = .FALSE.
351       CALL getin('ok_guide',ok_guide)
352
353c    ...............................................................
354
355!Config  Key  =  read_start
356!Config  Desc = Initialize model using a 'start.nc' file
357!Config  Def  = y
358!Config  Help = y: intialize dynamical fields using a 'start.nc' file
359!               n: fields are initialized by 'iniacademic' routine
360       read_start= .true.
361       CALL getin('read_start',read_start)
362
363!Config  Key  = iflag_phys
364!Config  Desc = Avec ls physique
365!Config  Def  = 1
366!Config  Help = Permet de faire tourner le modele sans
367!Config         physique.
368       iflag_phys = 1
369       CALL getin('iflag_phys',iflag_phys)
370
371
372!Config  Key  =  iphysiq
373!Config  Desc = Periode de la physique
374!Config  Def  = 5
375!Config  Help = Periode de la physique en pas de temps de la dynamique.
376       iphysiq = 5
377       CALL getin('iphysiq', iphysiq)
378
379!Config  Key  = iflag_trac
380!Config  Desc = traceurs presents ou non
381!Config  Def  = 1
382!Config  Help = Permet de faire tourner le modele sans traceurs
383!Config         
384       iflag_trac = 1
385       CALL getin('iflag_trac',iflag_trac)
386
387!Config  Key  = ip_ebil_dyn
388!Config  Desc = PRINT level for energy conserv. diag.
389!Config  Def  = 0
390!Config  Help = PRINT level for energy conservation diag. ;
391!               les options suivantes existent :
392!Config         0 pas de print
393!Config         1 pas de print
394!Config         2 print,
395       ip_ebil_dyn = 0
396       CALL getin('ip_ebil_dyn',ip_ebil_dyn)
397
398ccc  ....   P. Le Van , ajout  le 7/03/95 .pour le zoom ...
399c     .........   (  modif  le 17/04/96 )   .........
400c
401      IF( etatinit ) GO TO 100
402
403!Config  Key  = clon
404!Config  Desc = centre du zoom, longitude
405!Config  Def  = 0
406!Config  Help = longitude en degres du centre
407!Config         du zoom
408       clonn = 0.
409       CALL getin('clon',clonn)
410
411!Config  Key  = clat
412!Config  Desc = centre du zoom, latitude
413!Config  Def  = 0
414!Config  Help = latitude en degres du centre du zoom
415!Config         
416       clatt = 0.
417       CALL getin('clat',clatt)
418
419c
420c
421      IF( ABS(clat - clatt).GE. 0.001 )  THEN
422        write(lunout,*)'conf_gcm: La valeur de clat passee par run.def',
423     &    ' est differente de celle lue sur le fichier  start '
424        STOP
425      ENDIF
426
427!Config  Key  = grossismx
428!Config  Desc = zoom en longitude
429!Config  Def  = 1.0
430!Config  Help = facteur de grossissement du zoom,
431!Config         selon la longitude
432       grossismxx = 1.0
433       CALL getin('grossismx',grossismxx)
434
435
436      IF( ABS(grossismx - grossismxx).GE. 0.001 )  THEN
437        write(lunout,*)'conf_gcm: La valeur de grossismx passee par ',
438     &  'run.def est differente de celle lue sur le fichier  start '
439        STOP
440      ENDIF
441
442!Config  Key  = grossismy
443!Config  Desc = zoom en latitude
444!Config  Def  = 1.0
445!Config  Help = facteur de grossissement du zoom,
446!Config         selon la latitude
447       grossismyy = 1.0
448       CALL getin('grossismy',grossismyy)
449
450      IF( ABS(grossismy - grossismyy).GE. 0.001 )  THEN
451        write(lunout,*)'conf_gcm: La valeur de grossismy passee par ',
452     & 'run.def est differente de celle lue sur le fichier  start '
453        STOP
454      ENDIF
455     
456      IF( grossismx.LT.1. )  THEN
457        write(lunout,*)
458     &       'conf_gcm: ***  ATTENTION !! grossismx < 1 .   *** '
459         STOP
460      ELSE
461         alphax = 1. - 1./ grossismx
462      ENDIF
463
464
465      IF( grossismy.LT.1. )  THEN
466        write(lunout,*)
467     &       'conf_gcm: ***  ATTENTION !! grossismy < 1 .   *** '
468         STOP
469      ELSE
470         alphay = 1. - 1./ grossismy
471      ENDIF
472
473      write(lunout,*)'conf_gcm: alphax alphay',alphax,alphay
474c
475c    alphax et alphay sont les anciennes formulat. des grossissements
476c
477c
478
479!Config  Key  = fxyhypb
480!Config  Desc = Fonction  hyperbolique
481!Config  Def  = y
482!Config  Help = Fonction  f(y)  hyperbolique  si = .true. 
483!Config         sinon  sinusoidale
484       fxyhypbb = .TRUE.
485       CALL getin('fxyhypb',fxyhypbb)
486
487      IF( .NOT.fxyhypb )  THEN
488         IF( fxyhypbb )     THEN
489            write(lunout,*)' ********  PBS DANS  CONF_GCM  ******** '
490            write(lunout,*)' *** fxyhypb lu sur le fichier start est ',
491     *       'F alors  qu il est  T  sur  run.def  ***'
492              STOP
493         ENDIF
494      ELSE
495         IF( .NOT.fxyhypbb )   THEN
496            write(lunout,*)' ********  PBS DANS  CONF_GCM  ******** '
497            write(lunout,*)' ***  fxyhypb lu sur le fichier start est ',
498     *        'T alors  qu il est  F  sur  run.def  ****  '
499              STOP
500         ENDIF
501      ENDIF
502c
503!Config  Key  = dzoomx
504!Config  Desc = extension en longitude
505!Config  Def  = 0
506!Config  Help = extension en longitude  de la zone du zoom 
507!Config         ( fraction de la zone totale)
508       dzoomxx = 0.0
509       CALL getin('dzoomx',dzoomxx)
510
511      IF( fxyhypb )  THEN
512       IF( ABS(dzoomx - dzoomxx).GE. 0.001 )  THEN
513        write(lunout,*)'conf_gcm: La valeur de dzoomx passee par ',
514     *  'run.def est differente de celle lue sur le fichier  start '
515        STOP
516       ENDIF
517      ENDIF
518
519!Config  Key  = dzoomy
520!Config  Desc = extension en latitude
521!Config  Def  = 0
522!Config  Help = extension en latitude de la zone  du zoom 
523!Config         ( fraction de la zone totale)
524       dzoomyy = 0.0
525       CALL getin('dzoomy',dzoomyy)
526
527      IF( fxyhypb )  THEN
528       IF( ABS(dzoomy - dzoomyy).GE. 0.001 )  THEN
529        write(lunout,*)'conf_gcm: La valeur de dzoomy passee par ',
530     * 'run.def est differente de celle lue sur le fichier  start '
531        STOP
532       ENDIF
533      ENDIF
534     
535!Config  Key  = taux
536!Config  Desc = raideur du zoom en  X
537!Config  Def  = 3
538!Config  Help = raideur du zoom en  X
539       tauxx = 3.0
540       CALL getin('taux',tauxx)
541
542      IF( fxyhypb )  THEN
543       IF( ABS(taux - tauxx).GE. 0.001 )  THEN
544        write(lunout,*)'conf_gcm: La valeur de taux passee par ',
545     * 'run.def est differente de celle lue sur le fichier  start '
546        STOP
547       ENDIF
548      ENDIF
549
550!Config  Key  = tauyy
551!Config  Desc = raideur du zoom en  Y
552!Config  Def  = 3
553!Config  Help = raideur du zoom en  Y
554       tauyy = 3.0
555       CALL getin('tauy',tauyy)
556
557      IF( fxyhypb )  THEN
558       IF( ABS(tauy - tauyy).GE. 0.001 )  THEN
559        write(lunout,*)'conf_gcm: La valeur de tauy passee par ',
560     * 'run.def est differente de celle lue sur le fichier  start '
561        STOP
562       ENDIF
563      ENDIF
564
565cc
566      IF( .NOT.fxyhypb  )  THEN
567
568!Config  Key  = ysinus
569!Config  IF   = !fxyhypb
570!Config  Desc = Fonction en Sinus
571!Config  Def  = y
572!Config  Help = Fonction  f(y) avec y = Sin(latit.) si = .true.
573!Config         sinon y = latit.
574       ysinuss = .TRUE.
575       CALL getin('ysinus',ysinuss)
576
577        IF( .NOT.ysinus )  THEN
578          IF( ysinuss )     THEN
579            write(lunout,*)' ********  PBS DANS  CONF_GCM  ******** '
580            write(lunout,*)' *** ysinus lu sur le fichier start est F',
581     *       ' alors  qu il est  T  sur  run.def  ***'
582            STOP
583          ENDIF
584        ELSE
585          IF( .NOT.ysinuss )   THEN
586            write(lunout,*)' ********  PBS DANS  CONF_GCM  ******** '
587            write(lunout,*)' *** ysinus lu sur le fichier start est T',
588     *        ' alors  qu il est  F  sur  run.def  ****  '
589              STOP
590          ENDIF
591        ENDIF
592      ENDIF ! of IF( .NOT.fxyhypb  )
593c
594!Config  Key  = offline
595!Config  Desc = Nouvelle eau liquide
596!Config  Def  = n
597!Config  Help = Permet de mettre en route la
598!Config         nouvelle parametrisation de l'eau liquide !
599       offline = .FALSE.
600       CALL getin('offline',offline)
601
602!Config  Key  = config_inca
603!Config  Desc = Choix de configuration de INCA
604!Config  Def  = none
605!Config  Help = Choix de configuration de INCA :
606!Config         'none' = sans INCA
607!Config         'chem' = INCA avec calcul de chemie
608!Config         'aero' = INCA avec calcul des aerosols
609      config_inca = 'none'
610      CALL getin('config_inca',config_inca)
611
612!Config  Key  = ok_dynzon
613!Config  Desc = calcul et sortie des transports
614!Config  Def  = n
615!Config  Help = Permet de mettre en route le calcul des transports
616!Config         
617      ok_dynzon = .FALSE.
618      CALL getin('ok_dynzon',ok_dynzon)
619
620!Config  Key  = ok_dyn_ins
621!Config  Desc = sorties instantanees dans la dynamique
622!Config  Def  = n
623!Config  Help =
624!Config         
625      ok_dyn_ins = .FALSE.
626      CALL getin('ok_dyn_ins',ok_dyn_ins)
627
628!Config  Key  = ok_dyn_ave
629!Config  Desc = sorties moyennes dans la dynamique
630!Config  Def  = n
631!Config  Help =
632!Config         
633      ok_dyn_ave = .FALSE.
634      CALL getin('ok_dyn_ave',ok_dyn_ave)
635
636
637      write(lunout,*)' #########################################'
638      write(lunout,*)' Configuration des parametres du gcm: '
639      write(lunout,*)' planet_type = ', planet_type
640      write(lunout,*)' calend = ', calend
641      write(lunout,*)' dayref = ', dayref
642      write(lunout,*)' anneeref = ', anneeref
643      write(lunout,*)' nday = ', nday
644      if (less1day) then
645      write(lunout,*)' Run only for a fraction of day ! '
646      write(lunout,*)' fractday = ', fractday
647      endif
648      write(lunout,*)' day_step = ', day_step
649      write(lunout,*)' iperiod = ', iperiod
650      write(lunout,*)' iconser = ', iconser
651      write(lunout,*)' iecri = ', iecri
652      write(lunout,*)' periodav = ', periodav
653      write(lunout,*)' output_grads_dyn = ', output_grads_dyn
654      write(lunout,*)' idissip = ', idissip
655      write(lunout,*)' lstardis = ', lstardis
656      write(lunout,*)' nitergdiv = ', nitergdiv
657      write(lunout,*)' nitergrot = ', nitergrot
658      write(lunout,*)' niterh = ', niterh
659      write(lunout,*)' tetagdiv = ', tetagdiv
660      write(lunout,*)' tetagrot = ', tetagrot
661      write(lunout,*)' tetatemp = ', tetatemp
662      write(lunout,*)' coefdis = ', coefdis
663      write(lunout,*)' purmats = ', purmats
664      write(lunout,*)' read_start = ', read_start
665      write(lunout,*)' iflag_phys = ', iflag_phys
666      write(lunout,*)' iphysiq = ', iphysiq
667      write(lunout,*)' iflag_trac = ', iflag_trac
668      write(lunout,*)' clonn = ', clonn
669      write(lunout,*)' clatt = ', clatt
670      write(lunout,*)' grossismx = ', grossismx
671      write(lunout,*)' grossismy = ', grossismy
672      write(lunout,*)' fxyhypbb = ', fxyhypbb
673      write(lunout,*)' dzoomxx = ', dzoomxx
674      write(lunout,*)' dzoomy = ', dzoomyy
675      write(lunout,*)' tauxx = ', tauxx
676      write(lunout,*)' tauyy = ', tauyy
677      write(lunout,*)' offline = ', offline
678      write(lunout,*)' config_inca = ', config_inca
679      write(lunout,*)' ok_dynzon = ', ok_dynzon
680      write(lunout,*)' ok_dyn_ins = ', ok_dyn_ins
681      write(lunout,*)' ok_dyn_ave = ', ok_dyn_ave
682
683      RETURN
684c   ...............................................
685c
686100   CONTINUE
687!Config  Key  = clon
688!Config  Desc = centre du zoom, longitude
689!Config  Def  = 0
690!Config  Help = longitude en degres du centre
691!Config         du zoom
692       clon = 0.
693       CALL getin('clon',clon)
694
695!Config  Key  = clat
696!Config  Desc = centre du zoom, latitude
697!Config  Def  = 0
698!Config  Help = latitude en degres du centre du zoom
699!Config         
700       clat = 0.
701       CALL getin('clat',clat)
702
703!Config  Key  = grossismx
704!Config  Desc = zoom en longitude
705!Config  Def  = 1.0
706!Config  Help = facteur de grossissement du zoom,
707!Config         selon la longitude
708       grossismx = 1.0
709       CALL getin('grossismx',grossismx)
710
711!Config  Key  = grossismy
712!Config  Desc = zoom en latitude
713!Config  Def  = 1.0
714!Config  Help = facteur de grossissement du zoom,
715!Config         selon la latitude
716       grossismy = 1.0
717       CALL getin('grossismy',grossismy)
718
719      IF( grossismx.LT.1. )  THEN
720        write(lunout,*)
721     &   'conf_gcm: ***  ATTENTION !! grossismx < 1 .   *** '
722         STOP
723      ELSE
724         alphax = 1. - 1./ grossismx
725      ENDIF
726
727
728      IF( grossismy.LT.1. )  THEN
729        write(lunout,*)
730     &  'conf_gcm: ***  ATTENTION !! grossismy < 1 .   *** '
731         STOP
732      ELSE
733         alphay = 1. - 1./ grossismy
734      ENDIF
735
736      write(lunout,*)'conf_gcm: alphax alphay ',alphax,alphay
737c
738c    alphax et alphay sont les anciennes formulat. des grossissements
739c
740c
741
742!Config  Key  = fxyhypb
743!Config  Desc = Fonction  hyperbolique
744!Config  Def  = y
745!Config  Help = Fonction  f(y)  hyperbolique  si = .true. 
746!Config         sinon  sinusoidale
747       fxyhypb = .TRUE.
748       CALL getin('fxyhypb',fxyhypb)
749
750!Config  Key  = dzoomx
751!Config  Desc = extension en longitude
752!Config  Def  = 0
753!Config  Help = extension en longitude  de la zone du zoom 
754!Config         ( fraction de la zone totale)
755       dzoomx = 0.0
756       CALL getin('dzoomx',dzoomx)
757
758!Config  Key  = dzoomy
759!Config  Desc = extension en latitude
760!Config  Def  = 0
761!Config  Help = extension en latitude de la zone  du zoom 
762!Config         ( fraction de la zone totale)
763       dzoomy = 0.0
764       CALL getin('dzoomy',dzoomy)
765
766!Config  Key  = taux
767!Config  Desc = raideur du zoom en  X
768!Config  Def  = 3
769!Config  Help = raideur du zoom en  X
770       taux = 3.0
771       CALL getin('taux',taux)
772
773!Config  Key  = tauy
774!Config  Desc = raideur du zoom en  Y
775!Config  Def  = 3
776!Config  Help = raideur du zoom en  Y
777       tauy = 3.0
778       CALL getin('tauy',tauy)
779
780!Config  Key  = ysinus
781!Config  IF   = !fxyhypb
782!Config  Desc = Fonction en Sinus
783!Config  Def  = y
784!Config  Help = Fonction  f(y) avec y = Sin(latit.) si = .true.
785!Config         sinon y = latit.
786       ysinus = .TRUE.
787       CALL getin('ysinus',ysinus)
788c
789!Config  Key  = offline
790!Config  Desc = Nouvelle eau liquide
791!Config  Def  = n
792!Config  Help = Permet de mettre en route la
793!Config         nouvelle parametrisation de l'eau liquide !
794       offline = .FALSE.
795       CALL getin('offline',offline)
796
797!Config  Key  = config_inca
798!Config  Desc = Choix de configuration de INCA
799!Config  Def  = none
800!Config  Help = Choix de configuration de INCA :
801!Config         'none' = sans INCA
802!Config         'chem' = INCA avec calcul de chemie
803!Config         'aero' = INCA avec calcul des aerosols
804      config_inca = 'none'
805      CALL getin('config_inca',config_inca)
806
807!Config  Key  = ok_dynzon
808!Config  Desc = sortie des transports zonaux dans la dynamique
809!Config  Def  = n
810!Config  Help = 
811!Config         
812       ok_dynzon = .FALSE.
813       CALL getin('ok_dynzon',ok_dynzon)
814
815!Config  Key  = ok_dyn_ins
816!Config  Desc = sorties instantanees dans la dynamique
817!Config  Def  = n
818!Config  Help =
819!Config         
820      ok_dyn_ins = .FALSE.
821      CALL getin('ok_dyn_ins',ok_dyn_ins)
822
823!Config  Key  = ok_dyn_ave
824!Config  Desc = sorties moyennes dans la dynamique
825!Config  Def  = n
826!Config  Help =
827!Config         
828      ok_dyn_ave = .FALSE.
829      CALL getin('ok_dyn_ave',ok_dyn_ave)
830
831!Config  Key  = use_filtre_fft
832!Config  Desc = flag d'activation des FFT pour le filtre
833!Config  Def  = false
834!Config  Help = permet d'activer l'utilisation des FFT pour effectuer
835!Config         le filtrage aux poles.
836! Le filtre fft n'est pas implemente dans dyn3d
837      use_filtre_fft=.FALSE.
838      CALL getin('use_filtre_fft',use_filtre_fft)
839
840      IF (use_filtre_fft) THEN
841        write(lunout,*)'STOP !!!'
842        write(lunout,*)'use_filtre_fft n est pas implemente dans dyn3d'
843        STOP
844      ENDIF
845     
846!Config key = ok_strato
847!Config  Desc = activation de la version strato
848!Config  Def  = .FALSE.
849!Config  Help = active la version stratosphérique de LMDZ de F. Lott
850
851      ok_strato=.TRUE.
852      CALL getin('ok_strato',ok_strato)
853
854!Config  Key  = ok_gradsfile
855!Config  Desc = activation des sorties grads du guidage
856!Config  Def  = n
857!Config  Help = active les sorties grads du guidage
858
859       ok_gradsfile = .FALSE.
860       CALL getin('ok_gradsfile',ok_gradsfile)
861
862!Config  Key  = ok_limit
863!Config  Desc = creation des fichiers limit dans create_etat0_limit
864!Config  Def  = y
865!Config  Help = production du fichier limit.nc requise
866
867       ok_limit = .TRUE.
868       CALL getin('ok_limit',ok_limit)
869
870!Config  Key  = ok_etat0
871!Config  Desc = creation des fichiers etat0 dans create_etat0_limit
872!Config  Def  = y
873!Config  Help = production des fichiers start.nc, startphy.nc requise
874
875      ok_etat0 = .TRUE.
876      CALL getin('ok_etat0',ok_etat0)
877
878      write(lunout,*)' #########################################'
879      write(lunout,*)' Configuration des parametres de cel0'
880     &             //'_limit: '
881      write(lunout,*)' planet_type = ', planet_type
882      write(lunout,*)' calend = ', calend
883      write(lunout,*)' dayref = ', dayref
884      write(lunout,*)' anneeref = ', anneeref
885      write(lunout,*)' nday = ', nday
886      write(lunout,*)' day_step = ', day_step
887      write(lunout,*)' iperiod = ', iperiod
888      write(lunout,*)' iconser = ', iconser
889      write(lunout,*)' iecri = ', iecri
890      write(lunout,*)' periodav = ', periodav
891      write(lunout,*)' output_grads_dyn = ', output_grads_dyn
892      write(lunout,*)' idissip = ', idissip
893      write(lunout,*)' lstardis = ', lstardis
894      write(lunout,*)' nitergdiv = ', nitergdiv
895      write(lunout,*)' nitergrot = ', nitergrot
896      write(lunout,*)' niterh = ', niterh
897      write(lunout,*)' tetagdiv = ', tetagdiv
898      write(lunout,*)' tetagrot = ', tetagrot
899      write(lunout,*)' tetatemp = ', tetatemp
900      write(lunout,*)' coefdis = ', coefdis
901      write(lunout,*)' purmats = ', purmats
902      write(lunout,*)' read_start = ', read_start
903      write(lunout,*)' iflag_phys = ', iflag_phys
904      write(lunout,*)' iphysiq = ', iphysiq
905      write(lunout,*)' iflag_trac = ', iflag_trac
906      write(lunout,*)' clon = ', clon
907      write(lunout,*)' clat = ', clat
908      write(lunout,*)' grossismx = ', grossismx
909      write(lunout,*)' grossismy = ', grossismy
910      write(lunout,*)' fxyhypb = ', fxyhypb
911      write(lunout,*)' dzoomx = ', dzoomx
912      write(lunout,*)' dzoomy = ', dzoomy
913      write(lunout,*)' taux = ', taux
914      write(lunout,*)' tauy = ', tauy
915      write(lunout,*)' offline = ', offline
916      write(lunout,*)' config_inca = ', config_inca
917      write(lunout,*)' ok_dynzon = ', ok_dynzon
918      write(lunout,*)' ok_dyn_ins = ', ok_dyn_ins
919      write(lunout,*)' ok_dyn_ave = ', ok_dyn_ave
920      write(lunout,*)' ok_strato = ', ok_strato
921      write(lunout,*)' ok_gradsfile = ', ok_gradsfile
922      write(lunout,*)' ok_limit = ', ok_limit
923      write(lunout,*)' ok_etat0 = ', ok_etat0
924c
925      RETURN
926      END
Note: See TracBrowser for help on using the repository browser.