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

Last change on this file since 105 was 97, checked in by slebonnois, 14 years ago

Serie de modifs SL pour homogeneisation des phytitan et phyvenus
Ca touche aussi aux liens phy/dyn (surtout a propos de clesphy0),
a verifier avec les autres, donc...

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