1 | |
---|
2 | .. Version du 28/12/1998 , avec nouveau fxyhyper appele par inigeom ... |
---|
3 | c |
---|
4 | c |
---|
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 | |
---|
60 | N.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 | |
---|
123 | N.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 | |
---|
141 | N.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 | |
---|
164 | N.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 | *********************************************************************** |
---|
240 | cd $TMPDIR |
---|
241 | # |
---|
242 | cp $workdir/mod/limit86.dat limit1986.dat |
---|
243 | cp $workdir/mod/limit86.dic limit1986.dic |
---|
244 | cp $workdir/mod/limit87.dat limit1987.dat |
---|
245 | cp $workdir/mod/limit87.dic limit1987.dic |
---|
246 | # |
---|
247 | gcm.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 | |
---|