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

Last change on this file since 1176 was 1176, checked in by Laurent Fairhead, 15 years ago

Modif pour la compilation avec fcm sur Vargas SD
Corrections relatives au controle de histins et de l'utilisation des
options INST(X) pour l'appel au routines de IOIPSL FH
Mise en place de diagnostics sur les critères CFL pour l'advection
de traceurs. FH
Controle dans les .def de la dépendance verticale de l'efficacite
de la diffusion. Actif pour le moment uniquement avec ok_strato=y et llm=39. FH
LF

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 24.4 KB
Line 
1!
2! $Id: conf_gcm.F 1176 2009-06-11 08:54:10Z fairhead $
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!Config  Key  = coefdis
284!Config  Desc = coefficient pour gamdissip
285!Config  Def  = 0
286!Config  Help = coefficient pour gamdissip 
287       coefdis = 0.
288       CALL getin('coefdis',coefdis)
289
290!Config  Key  = purmats
291!Config  Desc = Schema d'integration
292!Config  Def  = n
293!Config  Help = Choix du schema d'integration temporel.
294!Config         y = pure Matsuno sinon c'est du Matsuno-leapfrog
295       purmats = .FALSE.
296       CALL getin('purmats',purmats)
297
298!Config  Key  = ok_guide
299!Config  Desc = Guidage
300!Config  Def  = n
301!Config  Help = Guidage
302       ok_guide = .FALSE.
303       CALL getin('ok_guide',ok_guide)
304
305c    ...............................................................
306
307!Config  Key  =  read_start
308!Config  Desc = Initialize model using a 'start.nc' file
309!Config  Def  = y
310!Config  Help = y: intialize dynamical fields using a 'start.nc' file
311!               n: fields are initialized by 'iniacademic' routine
312       read_start= .true.
313       CALL getin('read_start',read_start)
314
315!Config  Key  = iflag_phys
316!Config  Desc = Avec ls physique
317!Config  Def  = 1
318!Config  Help = Permet de faire tourner le modele sans
319!Config         physique.
320       iflag_phys = 1
321       CALL getin('iflag_phys',iflag_phys)
322
323
324!Config  Key  =  iphysiq
325!Config  Desc = Periode de la physique
326!Config  Def  = 5
327!Config  Help = Periode de la physique en pas de temps de la dynamique.
328       iphysiq = 5
329       CALL getin('iphysiq', iphysiq)
330
331!Config  Key  = ip_ebil_dyn
332!Config  Desc = PRINT level for energy conserv. diag.
333!Config  Def  = 0
334!Config  Help = PRINT level for energy conservation diag. ;
335!               les options suivantes existent :
336!Config         0 pas de print
337!Config         1 pas de print
338!Config         2 print,
339       ip_ebil_dyn = 0
340       CALL getin('ip_ebil_dyn',ip_ebil_dyn)
341!
342
343      DO i = 1, longcles
344       clesphy0(i) = 0.
345      ENDDO
346
347ccc  ....   P. Le Van , ajout  le 7/03/95 .pour le zoom ...
348c     .........   (  modif  le 17/04/96 )   .........
349c
350      IF( etatinit ) GO TO 100
351
352!Config  Key  = clon
353!Config  Desc = centre du zoom, longitude
354!Config  Def  = 0
355!Config  Help = longitude en degres du centre
356!Config         du zoom
357       clonn = 0.
358       CALL getin('clon',clonn)
359
360!Config  Key  = clat
361!Config  Desc = centre du zoom, latitude
362!Config  Def  = 0
363!Config  Help = latitude en degres du centre du zoom
364!Config         
365       clatt = 0.
366       CALL getin('clat',clatt)
367
368c
369c
370      IF( ABS(clat - clatt).GE. 0.001 )  THEN
371        write(lunout,*)'conf_gcm: La valeur de clat passee par run.def',
372     &    ' est differente de celle lue sur le fichier  start '
373        STOP
374      ENDIF
375
376!Config  Key  = grossismx
377!Config  Desc = zoom en longitude
378!Config  Def  = 1.0
379!Config  Help = facteur de grossissement du zoom,
380!Config         selon la longitude
381       grossismxx = 1.0
382       CALL getin('grossismx',grossismxx)
383
384
385      IF( ABS(grossismx - grossismxx).GE. 0.001 )  THEN
386        write(lunout,*)'conf_gcm: La valeur de grossismx passee par ',
387     &  'run.def est differente de celle lue sur le fichier  start '
388        STOP
389      ENDIF
390
391!Config  Key  = grossismy
392!Config  Desc = zoom en latitude
393!Config  Def  = 1.0
394!Config  Help = facteur de grossissement du zoom,
395!Config         selon la latitude
396       grossismyy = 1.0
397       CALL getin('grossismy',grossismyy)
398
399      IF( ABS(grossismy - grossismyy).GE. 0.001 )  THEN
400        write(lunout,*)'conf_gcm: La valeur de grossismy passee par ',
401     & 'run.def est differente de celle lue sur le fichier  start '
402        STOP
403      ENDIF
404     
405      IF( grossismx.LT.1. )  THEN
406        write(lunout,*)
407     &       'conf_gcm: ***  ATTENTION !! grossismx < 1 .   *** '
408         STOP
409      ELSE
410         alphax = 1. - 1./ grossismx
411      ENDIF
412
413
414      IF( grossismy.LT.1. )  THEN
415        write(lunout,*)
416     &       'conf_gcm: ***  ATTENTION !! grossismy < 1 .   *** '
417         STOP
418      ELSE
419         alphay = 1. - 1./ grossismy
420      ENDIF
421
422      write(lunout,*)'conf_gcm: alphax alphay',alphax,alphay
423c
424c    alphax et alphay sont les anciennes formulat. des grossissements
425c
426c
427
428!Config  Key  = fxyhypb
429!Config  Desc = Fonction  hyperbolique
430!Config  Def  = y
431!Config  Help = Fonction  f(y)  hyperbolique  si = .true. 
432!Config         sinon  sinusoidale
433       fxyhypbb = .TRUE.
434       CALL getin('fxyhypb',fxyhypbb)
435
436      IF( .NOT.fxyhypb )  THEN
437         IF( fxyhypbb )     THEN
438            write(lunout,*)' ********  PBS DANS  CONF_GCM  ******** '
439            write(lunout,*)' *** fxyhypb lu sur le fichier start est ',
440     *       'F alors  qu il est  T  sur  run.def  ***'
441              STOP
442         ENDIF
443      ELSE
444         IF( .NOT.fxyhypbb )   THEN
445            write(lunout,*)' ********  PBS DANS  CONF_GCM  ******** '
446            write(lunout,*)' ***  fxyhypb lu sur le fichier start est ',
447     *        'T alors  qu il est  F  sur  run.def  ****  '
448              STOP
449         ENDIF
450      ENDIF
451c
452!Config  Key  = dzoomx
453!Config  Desc = extension en longitude
454!Config  Def  = 0
455!Config  Help = extension en longitude  de la zone du zoom 
456!Config         ( fraction de la zone totale)
457       dzoomxx = 0.0
458       CALL getin('dzoomx',dzoomxx)
459
460      IF( fxyhypb )  THEN
461       IF( ABS(dzoomx - dzoomxx).GE. 0.001 )  THEN
462        write(lunout,*)'conf_gcm: La valeur de dzoomx passee par ',
463     *  'run.def est differente de celle lue sur le fichier  start '
464        STOP
465       ENDIF
466      ENDIF
467
468!Config  Key  = dzoomy
469!Config  Desc = extension en latitude
470!Config  Def  = 0
471!Config  Help = extension en latitude de la zone  du zoom 
472!Config         ( fraction de la zone totale)
473       dzoomyy = 0.0
474       CALL getin('dzoomy',dzoomyy)
475
476      IF( fxyhypb )  THEN
477       IF( ABS(dzoomy - dzoomyy).GE. 0.001 )  THEN
478        write(lunout,*)'conf_gcm: La valeur de dzoomy passee par ',
479     * 'run.def est differente de celle lue sur le fichier  start '
480        STOP
481       ENDIF
482      ENDIF
483     
484!Config  Key  = taux
485!Config  Desc = raideur du zoom en  X
486!Config  Def  = 3
487!Config  Help = raideur du zoom en  X
488       tauxx = 3.0
489       CALL getin('taux',tauxx)
490
491      IF( fxyhypb )  THEN
492       IF( ABS(taux - tauxx).GE. 0.001 )  THEN
493        write(lunout,*)'conf_gcm: La valeur de taux passee par ',
494     * 'run.def est differente de celle lue sur le fichier  start '
495        STOP
496       ENDIF
497      ENDIF
498
499!Config  Key  = tauyy
500!Config  Desc = raideur du zoom en  Y
501!Config  Def  = 3
502!Config  Help = raideur du zoom en  Y
503       tauyy = 3.0
504       CALL getin('tauy',tauyy)
505
506      IF( fxyhypb )  THEN
507       IF( ABS(tauy - tauyy).GE. 0.001 )  THEN
508        write(lunout,*)'conf_gcm: La valeur de tauy passee par ',
509     * 'run.def est differente de celle lue sur le fichier  start '
510        STOP
511       ENDIF
512      ENDIF
513
514cc
515      IF( .NOT.fxyhypb  )  THEN
516
517!Config  Key  = ysinus
518!Config  IF   = !fxyhypb
519!Config  Desc = Fonction en Sinus
520!Config  Def  = y
521!Config  Help = Fonction  f(y) avec y = Sin(latit.) si = .true.
522!Config         sinon y = latit.
523       ysinuss = .TRUE.
524       CALL getin('ysinus',ysinuss)
525
526        IF( .NOT.ysinus )  THEN
527          IF( ysinuss )     THEN
528            write(lunout,*)' ********  PBS DANS  CONF_GCM  ******** '
529            write(lunout,*)' *** ysinus lu sur le fichier start est F',
530     *       ' alors  qu il est  T  sur  run.def  ***'
531            STOP
532          ENDIF
533        ELSE
534          IF( .NOT.ysinuss )   THEN
535            write(lunout,*)' ********  PBS DANS  CONF_GCM  ******** '
536            write(lunout,*)' *** ysinus lu sur le fichier start est T',
537     *        ' alors  qu il est  F  sur  run.def  ****  '
538              STOP
539          ENDIF
540        ENDIF
541      ENDIF ! of IF( .NOT.fxyhypb  )
542c
543!Config  Key  = offline
544!Config  Desc = Nouvelle eau liquide
545!Config  Def  = n
546!Config  Help = Permet de mettre en route la
547!Config         nouvelle parametrisation de l'eau liquide !
548       offline = .FALSE.
549       CALL getin('offline',offline)
550
551!Config  Key  = config_inca
552!Config  Desc = Choix de configuration de INCA
553!Config  Def  = none
554!Config  Help = Choix de configuration de INCA :
555!Config         'none' = sans INCA
556!Config         'chem' = INCA avec calcul de chemie
557!Config         'aero' = INCA avec calcul des aerosols
558      config_inca = 'none'
559      CALL getin('config_inca',config_inca)
560
561
562!Config  Key  = ok_dynzon
563!Config  Desc = calcul et sortie des transports
564!Config  Def  = n
565!Config  Help = Permet de mettre en route le calcul des transports
566!Config         
567      ok_dynzon = .FALSE.
568      CALL getin('ok_dynzon',ok_dynzon)
569
570      write(lunout,*)' #########################################'
571      write(lunout,*)' Configuration des parametres du gcm: '
572      write(lunout,*)' planet_type = ', planet_type
573      write(lunout,*)' dayref = ', dayref
574      write(lunout,*)' anneeref = ', anneeref
575      write(lunout,*)' nday = ', nday
576      write(lunout,*)' day_step = ', day_step
577      write(lunout,*)' iperiod = ', iperiod
578      write(lunout,*)' iconser = ', iconser
579      write(lunout,*)' iecri = ', iecri
580      write(lunout,*)' periodav = ', periodav
581      write(lunout,*)' output_grads_dyn = ', output_grads_dyn
582      write(lunout,*)' idissip = ', idissip
583      write(lunout,*)' lstardis = ', lstardis
584      write(lunout,*)' nitergdiv = ', nitergdiv
585      write(lunout,*)' nitergrot = ', nitergrot
586      write(lunout,*)' niterh = ', niterh
587      write(lunout,*)' tetagdiv = ', tetagdiv
588      write(lunout,*)' tetagrot = ', tetagrot
589      write(lunout,*)' tetatemp = ', tetatemp
590      write(lunout,*)' coefdis = ', coefdis
591      write(lunout,*)' purmats = ', purmats
592      write(lunout,*)' read_start = ', read_start
593      write(lunout,*)' iflag_phys = ', iflag_phys
594      write(lunout,*)' iphysiq = ', iphysiq
595      write(lunout,*)' clonn = ', clonn
596      write(lunout,*)' clatt = ', clatt
597      write(lunout,*)' grossismx = ', grossismx
598      write(lunout,*)' grossismy = ', grossismy
599      write(lunout,*)' fxyhypbb = ', fxyhypbb
600      write(lunout,*)' dzoomxx = ', dzoomxx
601      write(lunout,*)' dzoomy = ', dzoomyy
602      write(lunout,*)' tauxx = ', tauxx
603      write(lunout,*)' tauyy = ', tauyy
604      write(lunout,*)' offline = ', offline
605      write(lunout,*)' config_inca = ', config_inca
606      write(lunout,*)' ok_dynzon = ', ok_dynzon
607
608      RETURN
609c   ...............................................
610c
611100   CONTINUE
612!Config  Key  = clon
613!Config  Desc = centre du zoom, longitude
614!Config  Def  = 0
615!Config  Help = longitude en degres du centre
616!Config         du zoom
617       clon = 0.
618       CALL getin('clon',clon)
619
620!Config  Key  = clat
621!Config  Desc = centre du zoom, latitude
622!Config  Def  = 0
623!Config  Help = latitude en degres du centre du zoom
624!Config         
625       clat = 0.
626       CALL getin('clat',clat)
627
628!Config  Key  = grossismx
629!Config  Desc = zoom en longitude
630!Config  Def  = 1.0
631!Config  Help = facteur de grossissement du zoom,
632!Config         selon la longitude
633       grossismx = 1.0
634       CALL getin('grossismx',grossismx)
635
636!Config  Key  = grossismy
637!Config  Desc = zoom en latitude
638!Config  Def  = 1.0
639!Config  Help = facteur de grossissement du zoom,
640!Config         selon la latitude
641       grossismy = 1.0
642       CALL getin('grossismy',grossismy)
643
644      IF( grossismx.LT.1. )  THEN
645        write(lunout,*)
646     &   'conf_gcm: ***  ATTENTION !! grossismx < 1 .   *** '
647         STOP
648      ELSE
649         alphax = 1. - 1./ grossismx
650      ENDIF
651
652
653      IF( grossismy.LT.1. )  THEN
654        write(lunout,*)
655     &  'conf_gcm: ***  ATTENTION !! grossismy < 1 .   *** '
656         STOP
657      ELSE
658         alphay = 1. - 1./ grossismy
659      ENDIF
660
661      write(lunout,*)'conf_gcm: alphax alphay ',alphax,alphay
662c
663c    alphax et alphay sont les anciennes formulat. des grossissements
664c
665c
666
667!Config  Key  = fxyhypb
668!Config  Desc = Fonction  hyperbolique
669!Config  Def  = y
670!Config  Help = Fonction  f(y)  hyperbolique  si = .true. 
671!Config         sinon  sinusoidale
672       fxyhypb = .TRUE.
673       CALL getin('fxyhypb',fxyhypb)
674
675!Config  Key  = dzoomx
676!Config  Desc = extension en longitude
677!Config  Def  = 0
678!Config  Help = extension en longitude  de la zone du zoom 
679!Config         ( fraction de la zone totale)
680       dzoomx = 0.0
681       CALL getin('dzoomx',dzoomx)
682
683!Config  Key  = dzoomy
684!Config  Desc = extension en latitude
685!Config  Def  = 0
686!Config  Help = extension en latitude de la zone  du zoom 
687!Config         ( fraction de la zone totale)
688       dzoomy = 0.0
689       CALL getin('dzoomy',dzoomy)
690
691!Config  Key  = taux
692!Config  Desc = raideur du zoom en  X
693!Config  Def  = 3
694!Config  Help = raideur du zoom en  X
695       taux = 3.0
696       CALL getin('taux',taux)
697
698!Config  Key  = tauy
699!Config  Desc = raideur du zoom en  Y
700!Config  Def  = 3
701!Config  Help = raideur du zoom en  Y
702       tauy = 3.0
703       CALL getin('tauy',tauy)
704
705!Config  Key  = ysinus
706!Config  IF   = !fxyhypb
707!Config  Desc = Fonction en Sinus
708!Config  Def  = y
709!Config  Help = Fonction  f(y) avec y = Sin(latit.) si = .true.
710!Config         sinon y = latit.
711       ysinus = .TRUE.
712       CALL getin('ysinus',ysinus)
713c
714!Config  Key  = offline
715!Config  Desc = Nouvelle eau liquide
716!Config  Def  = n
717!Config  Help = Permet de mettre en route la
718!Config         nouvelle parametrisation de l'eau liquide !
719       offline = .FALSE.
720       CALL getin('offline',offline)
721
722!Config  Key  = config_inca
723!Config  Desc = Choix de configuration de INCA
724!Config  Def  = none
725!Config  Help = Choix de configuration de INCA :
726!Config         'none' = sans INCA
727!Config         'chem' = INCA avec calcul de chemie
728!Config         'aero' = INCA avec calcul des aerosols
729      config_inca = 'none'
730      CALL getin('config_inca',config_inca)
731
732!Config  Key  = ok_dynzon
733!Config  Desc = calcul et sortie des transports
734!Config  Def  = n
735!Config  Help = Permet de mettre en route le calcul des transports
736!Config         
737       ok_dynzon = .FALSE.
738       CALL getin('ok_dynzon',ok_dynzon)
739
740!Config key = ok_strato
741!Config  Desc = activation de la version strato
742!Config  Def  = .FALSE.
743!Config  Help = active la version stratosphérique de LMDZ de F. Lott
744
745      ok_strato=.FALSE.
746      CALL getin('ok_strato',ok_strato)
747
748!Config  Key  = ok_gradsfile
749!Config  Desc = activation des sorties grads du guidage
750!Config  Def  = n
751!Config  Help = active les sorties grads du guidage
752
753       ok_gradsfile = .FALSE.
754       CALL getin('ok_gradsfile',ok_gradsfile)
755
756      write(lunout,*)' #########################################'
757      write(lunout,*)' Configuration des parametres du gcm: '
758      write(lunout,*)' planet_type = ', planet_type
759      write(lunout,*)' dayref = ', dayref
760      write(lunout,*)' anneeref = ', anneeref
761      write(lunout,*)' nday = ', nday
762      write(lunout,*)' day_step = ', day_step
763      write(lunout,*)' iperiod = ', iperiod
764      write(lunout,*)' iconser = ', iconser
765      write(lunout,*)' iecri = ', iecri
766      write(lunout,*)' periodav = ', periodav
767      write(lunout,*)' output_grads_dyn = ', output_grads_dyn
768      write(lunout,*)' idissip = ', idissip
769      write(lunout,*)' lstardis = ', lstardis
770      write(lunout,*)' nitergdiv = ', nitergdiv
771      write(lunout,*)' nitergrot = ', nitergrot
772      write(lunout,*)' niterh = ', niterh
773      write(lunout,*)' tetagdiv = ', tetagdiv
774      write(lunout,*)' tetagrot = ', tetagrot
775      write(lunout,*)' tetatemp = ', tetatemp
776      write(lunout,*)' coefdis = ', coefdis
777      write(lunout,*)' purmats = ', purmats
778      write(lunout,*)' read_start = ', read_start
779      write(lunout,*)' iflag_phys = ', iflag_phys
780      write(lunout,*)' iphysiq = ', iphysiq
781      write(lunout,*)' clon = ', clon
782      write(lunout,*)' clat = ', clat
783      write(lunout,*)' grossismx = ', grossismx
784      write(lunout,*)' grossismy = ', grossismy
785      write(lunout,*)' fxyhypb = ', fxyhypb
786      write(lunout,*)' dzoomx = ', dzoomx
787      write(lunout,*)' dzoomy = ', dzoomy
788      write(lunout,*)' taux = ', taux
789      write(lunout,*)' tauy = ', tauy
790      write(lunout,*)' offline = ', offline
791      write(lunout,*)' config_inca = ', config_inca
792      write(lunout,*)' ok_dynzon = ', ok_dynzon
793      write(lunout,*)' ok_strato = ', ok_strato
794      write(lunout,*)' ok_gradsfile = ', ok_gradsfile
795c
796      RETURN
797      END
Note: See TracBrowser for help on using the repository browser.