source: LMDZ.3.3/trunk/libf/dyn3d/LISEZMOI @ 931

Last change on this file since 931 was 2, checked in by lmdz, 25 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 11.2 KB
RevLine 
[2]1
2 ..  Version  du 28/12/1998  , avec  nouveau fxyhyper appele par inigeom ...
3c
4c
5 
6   La dynamique  de LMDZ.3.2  est pratiquement identique  a celle de
7                    LMDZ.3   .
8
9  Elle ne differe , en gros , que par   :
10
11 a ) etat0_lmd   ( on doit introduire , en plus de dayref qui est le jour
12     -----------
13      de l'etat initial cree ,  anneeref  , qui est l'annee correspondante
14      et qui servira eventuellement  a lire la bonne annee pour le fichier
15      limit.dat , dic  ) . Il y a aussi le  stockage des coefficients pour
16      l'orographie  de Francois Lott , sur startphy . 
17
18 b ) calfis  qui prepare l'interface avec la physique  qui a ete restruc-
19     -------
20     turee  par Laurent Li , dans ses grandes lignes , et qui est maintenant
21
22     adaptee pour les traceurs avec l'ajout du shema de convection de Tiedtke.
23   
24     Pour plus de details concernant le cote pratique des simulations avec
25     cette bib.  , priere de se reporter a la fin  de ce  LISEZMOI .
26
27
28 **************************************************************************
29
30 1) Le gcm LMDZ.3.2  a des coordonnees  hybrides  verticalement ,c.a.d  des
31          ********
32   coordonnees equivalentes a sigma pres de la surface et a  P plus haut .     
33
34   Les pressions  p(ij,l) aux differents interfaces des  llm  couches verti-
35   cales sont donnees  par   :
36
37    p( ij,l ) = ap(l) + bp(l) * ps(ij)    ,    1 << l << llm + 1    .
38
39                  avec   bp(l) =  EXP ( 1. - 1./ sigma(l) ** 2 )
40                         ap(l) =  pa * (  sigma(l) -  bp(l)  )
41
42                    pa   est actuellement mis a  50 000.  Pascals .
43           
44   La fonction d'Exner  est calculee aux milieux des llm couches vertic.
45
46     pk(ij,l) = cp * ( p(ij,l)/preff ) ** kappa   ,  1 << l <<  llm
47
48   Les pressions  PLS(ij,l)  definies aux milieux des couches sont egales a :
49
50     pls(ij,l) = preff * ( pk(ij,l) /cp ) ** 1./kappa
51
52   (  preff = 101 325. Pascals  dans  etat0_lmd.F  actuellement  )
53   
54
55 2) Une des variables prognostiques de LMDZ.3  est   teta  , temperature
56     potentielle  :   
57
58                 teta (ij,l) = temperature(ij,l) * cp/ pk(ij,l)
59 
60N.b : Les parametres  PA et PREFF  figurent dans l'entete des fichiers
61***   start ( et restart) et histphy ,  ainsi que  AP(l) et BP(l)  .
62
63    Y figurent aussi  PRESNIVS(l) qui donnent les valeurs approximatives
64    des pressions aux milieux des couches , ainsi que  SIG_S(l) qui donnent
65    simplement les indices des llm couches et dont  la presence  permet
66    d'utiliser tel quel  le logiciel ' wrctl '  de LMDZ.2.2 qui permet de 
67    fabriquer a partir du fichier ' histphy' ( dat et dic ) le  histphy.ctl 
68    pret a etre exploite  par  GrADS .
69
70   Les pressions PLS(ij,l)  sont stockees sur le fichier ' histphy ' car
71   elles sont indispensables quand on veut faire une interpolation des varia-
72   bles d'analyse comme  u, v ,teta  a des valeurs determinees de la pression.
73   Elles figurent aussi eventuellement sur le fichier histins.gdat (.ctl )
74   qui renferme des etats instantanes .
75   Voir le parametre ok_inst dans physiq.f  ( L.Li ) .
76
77   Un exemple d'interpolation de u,v, et teta  se trouve  dans le fichier
78   'analyse_lmdz_hyb' du repertoire de la dynamique , analyse_hyb etant
79   adapte d'un fichier d'analyse de histphy  de  Laurent Li .
80   
81 3) Dans  le programme principal gcm.F , il faut definir , au debut ,les para-
82    metres  IADV ,pour choisir le shema d'advection pour l'eau et les traceurs
83               :    IADV = 1    , humidite specifique
84                    IADV = 2    , shema    amont
85                    IADV = 3    , Van-Leer
86
87 4) Il y a 2 shemas de dissipation   ( diffusion laterale )  :
88
89 a) La dissipation star ( qui ne fait pas intervenir la geometrie de la     
90    grille et qui est utilisee quand il y a un zoom )
91
92    Par expl . la diffusion d'un scalaire  comme  teta est formulee ( en
93     appelant l'operateur  DIVGRAD2 )   comme :
94
95    d( ro * teta ) = (-1)**(it-1) *cdiv * Lap * ro**1/2 * Lap_gam** (it-2 ) *
96                           ro**1/2 * Lap * teta
97 avec  :
98 Lap     = 1/aire * Filt[ dx ( coefx*dx ) + dy( coefy*dy ) ] Filt
99       
100 Lap_gam = (1./aire)** -gam { dx[ coefx**(-gam) dx] + dy[ coefy**(-gam) dy ] }
101
102
103  Filt est l'operateur  filtre
104  ro   est la densite dp  de chaque couche
105  it   = nombre d'iterations de l'operateur de dissipation ( ici divgrad2 )
106  gam  = coefdis /( it -2 ) , coefdis = 0. si it = 2 , sinon = 1. habituellem.
107  dx   = operateur difference finie :
108    dx(A) = A( X +1/2 , Y, z ) - A( X -1/2, Y, z ) , dans le systeme de
109  travail  (X,Y) , avec l'increment DX = 1.
110
111  Idem pour dy .
112
113  coefx = beta(ij) / alpha(ij)  , coefy = alpha(ij)/beta(ij)
114     avec    u_covariant(ij) = alpha(ij)* u_nat(ij)
115             v_covariant(ij) = beta(ij) * v_nat(ij)
116
117 Cette dissipation star est choisie en mettant le parametre lstardis a .TRUE.
118  dans le fichier run.def  lu  par le gcm en entree .
119
120 b) La dissipation ' non star '  fait intervenir les operateurs elementaires
121   diverg,grad,rotat .   Elle est choisie  avec lstardis = .FALSE.
122
123N.B : Dans les 2 shemas de dissipation , le gcm est plus stable  quand on
124     n'itere pas l'operateur ' GRADIV ' ou ' GRADIV2 " .           
125     
126 5) Les constantes thermodynamiques Cp et kappa = R/Cp   utilisees dans la
127   partie dynamique ont ete mises , ce qui est normal, aux memes valeurs
128   qu'elles ont dans la partie ' physique ' , en changeant INICONST et en
129   les mettant dans l'entete de controle de start et startphy ,en changeant
130   etat0_lmd , par rapport  a LMDZ.2.2
131       
132 6) Pour finir , quelques commentaires sur les parametres qui figurent sur
133    le fichier  run.def qui commandent le gcm .
134
135  Dans le run.def donne en exemple dans /users/SOURCES/LMDZ.3/libf/dyn3d  ,
136
137 a) day_step  correspond a un  dt  de  2 minutes .
138
139 b) idissip correspond a a un appel de la dissipation toutes les 30 minutes.
140
141N.B : Maintenant la routine inidissip calcule la meilleure valeur pour
142  idissip , en fonction des valeurs de tetagdiv , tetagrot et tetatemp qui
143  representent les temps de dissipation desirees pour dissiper les plus peti-
144  tes longueurs d'ondes pour u ,v et teta  dans le cas, respectivement des
145  operateurs gradiv (gradiv2) , nxgrarot (nxgraro2) et divgrad ( divgrad2) .
146
147 c) coefdis , coefficient qui intervient dans le calcul de gam  , utilise
148   dans les routines de dissipation star , vus plus haut .
149
150 d) iphysiq correspond ici a un appel de la physique toutes les 30 minutes.
151
152 e) alphax et alphay correspondent au grossissement pour le zoom dans la
153   direction X et Y .
154   En fait , les facteurs de grossissement sont egaux a  1./ ( 1.- alphax )
155     et 1./( 1.- alphay )  .
156
157 f) fxyhypb  est egal a .TRUE. si on choisit  pour la fonction f(x,y) qui
158   definit la grille du modele  une fonction a tangente hyperbolique , un peu
159   adaptee pour le zoom , que la fonction sinusoidale , definie par fxy_new.h
160   dans /..../gcm/libf/grid  et lu par  makegcm  lors de la compilation du
161   code .
162
163
164N.B: Pour l'instant , cette fonction hyperbolique n'est activee eventuellement
165****            que pour  un zoom  latitudinal .
166   Pour un zoom longitudinal , la fonction sinusoidale precisee dans fxy_new.h
167       est  choisie automatiquement .
168
169 g) psi0 et delta sont des parametres  pour cette fonction hyberbolique .
170   Ces valeurs de 0.3 et 0.5  ont ete adaptees pour 96x72  .
171 
172
173
174 7) La partie 'physique'  est quasiment  identique a celle de  LMDZ.2.2
175             ***********
176    ( /users/lmdz/SOURCES/LMDZ.2.2/libf/phylmd ) geree par  Laurent Li
177
178    sauf  PHYSIQ.F ( ou il y a l'ecriture en plus de pls  sur 'histphy' et
179    histins  ) et   PHYETAT0.F et PHYREDEM.F  ou il y a l'argument  RLON
180    en plus  dans le tableau des aurguments  et WRITEFIA  ou nivsigs rempla-
181    sig_s  pour les niveaux verticaux .   
182
183
184 ****************************************************************************
185
186 
187 AA) Choisir les options du run  , avec   le fichier  run.def   .
188
189     Il y a entre autres choses , le nombre de jours qu'on veut integrer lors
190       d'un run .
191     Il y a le nombre de pas a faire pour 1 jour , ce qui calcule donc le dt
192       temporel ( en secondes ) pour un pas dynamique .
193     Iperiod  est conseille  d'etre a 5 pas ( mais non obligatoiremnet = 5 ) .
194     Idissip  peut etre mis a n'importe quelle valeur . Il est maintenant
195     calcule dans inidissip de telle facon a optimiser  sa valeur .
196
197     Les parametres( la plupart des cles ) pour la physique commencent avec
198      la var. logique         **  physic  **
199
200           entiere( en pas )  ** iphysiq  ** qui est calculee de telle facon a
201                              appeler la physique tous les  30 minutes .
202
203           ( en jours )       ** ecritphy ** qui indique la frequence en jours
204                                du stockage   sur   histphy . 
205
206      les variables logiques  ** cycle_diurne **  pour le cycle diurne
207
208                              ** soil_model  **   pour un modele pour le sol
209
210                              ** new_oliq   **  pour une nouvelle formulation
211            pour l'eau liquide nuageuse , utilisee dans les rayonnements .
212
213                              ** ok_orodr **   si on appelle l'orographie
214                              ** ok_orolf **        IDEM
215
216                              ** ok_limitvrai ** si on veut lire la bonne
217                          annee  du fichier limit .
218
219
220 Si ok_limitvrai = .TRUE.  , la routine  condsurf  de la physique  va lire
221
222 la bonne annee  des conditions limites et il faut , dans le script qui lance
223
224 le run , faire figurer  les fichiers limites attendus par le gcm .
225
226
227 PLus clairement , si on lance un run  de 30 jours ,  du 25 Decembre 1986 au
228
229 25 Janvier  1987  ,  ( actuellement dans le Gcm , il n'y a que des mois de
230
231 30 jours ) ,   des que le  modele  arrive au jour 360 (qui correspond au
232
233 30 Decembre) pour aller au jour 361  ( qui correspond au 1 Janvier 1987 ) ,
234
235 il s'attend a lire le fichier  limit1987 ( avec 4 chiffres  pour l'an 2000).
236
237 Donc , dans le script du run , on devra avoir, grosso modo  :
238
239***********************************************************************
240cd $TMPDIR
241#
242cp $workdir/mod/limit86.dat limit1986.dat
243cp $workdir/mod/limit86.dic limit1986.dic
244cp $workdir/mod/limit87.dat limit1987.dat
245cp $workdir/mod/limit87.dic limit1987.dic
246#
247gcm.e < run.def
248**********************************************************************
249
250      la variable entiere   ** nbapp_rad ** qui est le nombre d'appels /jour
251                  des routines de rayonnements .
252
253      la variable entiere   ** iflag_con ** qui indique le shema de convection
254        choisi  :     1   >  LMD ,   2  > Tiedtke  ,   3  >  CCM  .
255   
256                       
257
258 BB) Creer l'etat initial , avec les donnees de l'ECMWF , en compilant
259     etat0_lmd  , en precisant auparavant  dayref  et anneeref .
260
261
262 CC) Creer le fichier des conditions aux limites ( SST, Albedo, Rugosite,
263     Nature du sol  ) avec  si possible la concordance entre l'annee des
264     donnees des sst, albedo, etc ..  avec  les donnees pour l'etat initial .
265
266 DD)  Compiler  le Gcm , lancer le run , prendre un bon verre et attendre
267      la sortie  des resultats .
268
269
270
271                 Phu  Le Van  .
272
273                 E.N.S , 24 Rue Lhomond  , PARIS  5 ieme .
274                 Tel :  01 44 32 22 67
275
276                 4 Place Jussieu         , PARIS  5 ieme .
277                 TEL :  01 44 27 47 72
278
279                 Email :  levan@lmd.ens.fr
280
281
Note: See TracBrowser for help on using the repository browser.