source: LMDZ4/branches/LMDZ4-dev/libf/dyn3d/conf_gcm.F @ 1190

Last change on this file since 1190 was 1190, checked in by yann meurdesoif, 15 years ago

Correction de FH sur la sponge layer de top_bound + parallelisation des corrections.

YM

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