source: LMDZ4/trunk/libf/phylmd/calcul_STDlev.h @ 645

Last change on this file since 645 was 644, checked in by Laurent Fairhead, 19 years ago

Synchronisation avec tous les diagnostiques de Ionela IM
Inclusion du slab ocean IM
LF

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 10.4 KB
Line 
1c
2c $Header$
3c
4c
5cIM on initialise les champs en debut du jour ou du mois
6c
7        CALL ini_undefSTD(nlevSTD,itap,
8     $           ecrit_day,ecrit_mth,
9     $                    tnondef,tsumSTD)
10        CALL ini_undefSTD(nlevSTD,itap,
11     $           ecrit_day,ecrit_mth,
12     $                    tnondef,usumSTD)
13        CALL ini_undefSTD(nlevSTD,itap,
14     $           ecrit_day,ecrit_mth,
15     $                    tnondef,vsumSTD)
16        CALL ini_undefSTD(nlevSTD,itap,
17     $           ecrit_day,ecrit_mth,
18     $                    tnondef,wsumSTD)
19        CALL ini_undefSTD(nlevSTD,itap,
20     $           ecrit_day,ecrit_mth,
21     $                    tnondef,phisumSTD)
22        CALL ini_undefSTD(nlevSTD,itap,
23     $           ecrit_day,ecrit_mth,
24     $                    tnondef,qsumSTD)
25        CALL ini_undefSTD(nlevSTD,itap,
26     $           ecrit_day,ecrit_mth,
27     $                    tnondef,rhsumSTD)
28        CALL ini_undefSTD(nlevSTD,itap,
29     $           ecrit_day,ecrit_mth,
30     $                    tnondef,uvsumSTD)
31        CALL ini_undefSTD(nlevSTD,itap,
32     $           ecrit_day,ecrit_mth,
33     $                    tnondef,vqsumSTD)
34        CALL ini_undefSTD(nlevSTD,itap,
35     $           ecrit_day,ecrit_mth,
36     $                    tnondef,vTsumSTD)
37        CALL ini_undefSTD(nlevSTD,itap,
38     $           ecrit_day,ecrit_mth,
39     $                    tnondef,wqsumSTD)
40        CALL ini_undefSTD(nlevSTD,itap,
41     $           ecrit_day,ecrit_mth,
42     $                    tnondef,vphisumSTD)
43        CALL ini_undefSTD(nlevSTD,itap,
44     $           ecrit_day,ecrit_mth,
45     $                    tnondef,wTsumSTD)
46        CALL ini_undefSTD(nlevSTD,itap,
47     $           ecrit_day,ecrit_mth,
48     $                    tnondef,u2sumSTD)
49        CALL ini_undefSTD(nlevSTD,itap,
50     $           ecrit_day,ecrit_mth,
51     $                    tnondef,v2sumSTD)
52        CALL ini_undefSTD(nlevSTD,itap,
53     $           ecrit_day,ecrit_mth,
54     $                    tnondef,T2sumSTD)
55c
56cIM on interpole sur les niveaux STD de pression a chaque pas de temps de la physique
57c
58       DO k=1, nlevSTD
59c
60        CALL plevel(klon,klev,.true.,pplay,rlevSTD(k),
61     .              t_seri,tlevSTD(:,k))
62        CALL plevel(klon,klev,.true.,pplay,rlevSTD(k),
63     .             u_seri,ulevSTD(:,k))
64        CALL plevel(klon,klev,.true.,pplay,rlevSTD(k),
65     .             v_seri,vlevSTD(:,k))
66c
67        DO l=1, klev
68        DO i=1, klon
69         zx_tmp_fi3d(i,l)=paprs(i,l)
70        ENDDO !i
71        ENDDO !l
72        CALL plevel(klon,klev,.true.,zx_tmp_fi3d,rlevSTD(k),
73     .             omega,wlevSTD(:,k))
74c
75        CALL plevel(klon,klev,.true.,pplay,rlevSTD(k),
76     .             zphi/RG,philevSTD(:,k))
77        CALL plevel(klon,klev,.true.,pplay,rlevSTD(k),
78     .             qx(:,:,ivap),qlevSTD(:,k))
79        CALL plevel(klon,klev,.true.,pplay,rlevSTD(k),
80     .             zx_rh*100.,rhlevSTD(:,k))
81c
82        DO l=1, klev
83         DO i=1, klon
84          zx_tmp_fi3d(i,l)=u_seri(i,l)*v_seri(i,l)
85         ENDDO !i
86        ENDDO !l
87        CALL plevel(klon,klev,.true.,pplay,rlevSTD(k),
88     .             zx_tmp_fi3d,uvSTD(:,k))
89c
90        DO l=1, klev
91         DO i=1, klon
92          zx_tmp_fi3d(i,l)=v_seri(i,l)*q_seri(i,l)
93         ENDDO !i
94        ENDDO !l
95        CALL plevel(klon,klev,.true.,pplay,rlevSTD(k),
96     .             zx_tmp_fi3d,vqSTD(:,k))
97c
98        DO l=1, klev
99         DO i=1, klon
100          zx_tmp_fi3d(i,l)=v_seri(i,l)*t_seri(i,l)
101         ENDDO !i
102        ENDDO !l
103        CALL plevel(klon,klev,.true.,pplay,rlevSTD(k),
104     .             zx_tmp_fi3d,vTSTD(:,k))
105c
106        DO l=1, klev
107         DO i=1, klon
108          zx_tmp_fi3d(i,l)=omega(i,l)*qx(i,l,ivap)
109         ENDDO !i
110        ENDDO !l
111        CALL plevel(klon,klev,.true.,pplay,rlevSTD(k),
112     .             zx_tmp_fi3d,wqSTD(:,k))
113c
114        DO l=1, klev
115         DO i=1, klon
116          zx_tmp_fi3d(i,l)=v_seri(i,l)*zphi(i,l)/RG
117         ENDDO !i
118        ENDDO !l
119        CALL plevel(klon,klev,.true.,pplay,rlevSTD(k),
120     .             zx_tmp_fi3d,vphiSTD(:,k))
121c
122        DO l=1, klev
123         DO i=1, klon
124          zx_tmp_fi3d(i,l)=omega(i,l)*t_seri(i,l)
125         ENDDO !i
126        ENDDO !l
127        CALL plevel(klon,klev,.true.,pplay,rlevSTD(k),
128     .             zx_tmp_fi3d,wTSTD(:,k))
129c
130        DO l=1, klev
131         DO i=1, klon
132          zx_tmp_fi3d(i,l)=u_seri(i,l)*u_seri(i,l)
133         ENDDO !i
134        ENDDO !l
135        CALL plevel(klon,klev,.true.,pplay,rlevSTD(k),
136     .             zx_tmp_fi3d,u2STD(:,k))
137c
138        DO l=1, klev
139         DO i=1, klon
140          zx_tmp_fi3d(i,l)=v_seri(i,l)*v_seri(i,l)
141         ENDDO !i
142        ENDDO !l
143        CALL plevel(klon,klev,.true.,pplay,rlevSTD(k),
144     .             zx_tmp_fi3d,v2STD(:,k))
145c
146        DO l=1, klev
147         DO i=1, klon
148          zx_tmp_fi3d(i,l)=t_seri(i,l)*t_seri(i,l)
149         ENDDO !i
150        ENDDO !l
151        CALL plevel(klon,klev,.true.,pplay,rlevSTD(k),
152     .             zx_tmp_fi3d,T2STD(:,k))
153c
154       ENDDO !k=1,nlevSTD
155c
156cIM on somme les valeurs definies a chaque pas de temps de la physique ou
157cIM toutes les 6 heures
158c
159       oknondef(1:klon,1:nlevSTD,1:nout)=.TRUE.
160       CALL undefSTD(nlevSTD,itap,tlevSTD,
161     $               ecrit_hf,
162     $               oknondef,tnondef,tsumSTD)
163c
164       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
165       CALL undefSTD(nlevSTD,itap,ulevSTD,
166     $           ecrit_hf,
167     $               oknondef,tnondef,usumSTD)
168c
169       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
170       CALL undefSTD(nlevSTD,itap,vlevSTD,
171     $           ecrit_hf,
172     $               oknondef,tnondef,vsumSTD)
173c
174       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
175       CALL undefSTD(nlevSTD,itap,wlevSTD,
176     $           ecrit_hf,
177     $               oknondef,tnondef,wsumSTD)
178c
179       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
180       CALL undefSTD(nlevSTD,itap,philevSTD,
181     $           ecrit_hf,
182     $               oknondef,tnondef,phisumSTD)
183c
184       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
185       CALL undefSTD(nlevSTD,itap,qlevSTD,
186     $           ecrit_hf,
187     $               oknondef,tnondef,qsumSTD)
188c
189       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
190       CALL undefSTD(nlevSTD,itap,rhlevSTD,
191     $           ecrit_hf,
192     $               oknondef,tnondef,rhsumSTD)
193c
194       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
195       CALL undefSTD(nlevSTD,itap,uvSTD,
196     $           ecrit_hf,
197     $               oknondef,tnondef,uvsumSTD)
198c
199       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
200       CALL undefSTD(nlevSTD,itap,vqSTD,
201     $           ecrit_hf,
202     $               oknondef,tnondef,vqsumSTD)
203c
204       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
205       CALL undefSTD(nlevSTD,itap,vTSTD,
206     $           ecrit_hf,
207     $               oknondef,tnondef,vTsumSTD)
208c
209       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
210       CALL undefSTD(nlevSTD,itap,wqSTD,
211     $           ecrit_hf,
212     $               oknondef,tnondef,wqsumSTD)
213c
214       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
215       CALL undefSTD(nlevSTD,itap,vphiSTD,
216     $           ecrit_hf,
217     $               oknondef,tnondef,vphisumSTD)
218c
219       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
220       CALL undefSTD(nlevSTD,itap,wTSTD,
221     $           ecrit_hf,
222     $               oknondef,tnondef,wTsumSTD)
223c
224       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
225       CALL undefSTD(nlevSTD,itap,u2STD,
226     $           ecrit_hf,
227     $               oknondef,tnondef,u2sumSTD)
228c
229       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
230       CALL undefSTD(nlevSTD,itap,v2STD,
231     $           ecrit_hf,
232     $               oknondef,tnondef,v2sumSTD)
233c
234       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
235       CALL undefSTD(nlevSTD,itap,T2STD,
236     $           ecrit_hf,
237     $               oknondef,tnondef,T2sumSTD)
238c
239cIM on moyenne a la fin du jour ou du mois
240c
241       CALL moy_undefSTD(nlevSTD,itap,
242     $      ecrit_day,ecrit_mth,ecrit_hf2mth,
243     $                   tnondef,tsumSTD)
244c
245       CALL moy_undefSTD(nlevSTD,itap,
246     $      ecrit_day,ecrit_mth,ecrit_hf2mth,
247     $                   tnondef,usumSTD)
248c
249       CALL moy_undefSTD(nlevSTD,itap,
250     $      ecrit_day,ecrit_mth,ecrit_hf2mth,
251     $                   tnondef,vsumSTD)
252c
253       CALL moy_undefSTD(nlevSTD,itap,
254     $      ecrit_day,ecrit_mth,ecrit_hf2mth,
255     $                   tnondef,wsumSTD)
256c
257       CALL moy_undefSTD(nlevSTD,itap,
258     $      ecrit_day,ecrit_mth,ecrit_hf2mth,
259     $                   tnondef,phisumSTD)
260c
261       CALL moy_undefSTD(nlevSTD,itap,
262     $      ecrit_day,ecrit_mth,ecrit_hf2mth,
263     $                   tnondef,qsumSTD)
264c
265       CALL moy_undefSTD(nlevSTD,itap,
266     $      ecrit_day,ecrit_mth,ecrit_hf2mth,
267     $                   tnondef,rhsumSTD)
268c
269       CALL moy_undefSTD(nlevSTD,itap,
270     $      ecrit_day,ecrit_mth,ecrit_hf2mth,
271     $                   tnondef,uvsumSTD)
272c
273       CALL moy_undefSTD(nlevSTD,itap,
274     $      ecrit_day,ecrit_mth,ecrit_hf2mth,
275     $                   tnondef,vqsumSTD)
276c
277       CALL moy_undefSTD(nlevSTD,itap,
278     $      ecrit_day,ecrit_mth,ecrit_hf2mth,
279     $                   tnondef,vTsumSTD)
280c
281       CALL moy_undefSTD(nlevSTD,itap,
282     $      ecrit_day,ecrit_mth,ecrit_hf2mth,
283     $                   tnondef,wqsumSTD)
284c
285       CALL moy_undefSTD(nlevSTD,itap,
286     $      ecrit_day,ecrit_mth,ecrit_hf2mth,
287     $                   tnondef,vphisumSTD)
288c
289       CALL moy_undefSTD(nlevSTD,itap,
290     $      ecrit_day,ecrit_mth,ecrit_hf2mth,
291     $                   tnondef,wTsumSTD)
292c
293       CALL moy_undefSTD(nlevSTD,itap,
294     $      ecrit_day,ecrit_mth,ecrit_hf2mth,
295     $                   tnondef,u2sumSTD)
296c
297       CALL moy_undefSTD(nlevSTD,itap,
298     $      ecrit_day,ecrit_mth,ecrit_hf2mth,
299     $                   tnondef,v2sumSTD)
300c
301       CALL moy_undefSTD(nlevSTD,itap,
302     $      ecrit_day,ecrit_mth,ecrit_hf2mth,
303     $                   tnondef,T2sumSTD)
304c
305cIM interpolation a chaque pas de temps du SWup(clr) et SWdn(clr) a 200 hPa
306c
307      CALL plevel(klon,klevp1,.true.,paprs,20000.,
308     $     swdn0,SWdn200clr)
309      CALL plevel(klon,klevp1,.false.,paprs,20000.,
310     $     swdn,SWdn200)
311      CALL plevel(klon,klevp1,.false.,paprs,20000.,
312     $     swup0,SWup200clr)
313      CALL plevel(klon,klevp1,.false.,paprs,20000.,
314     $     swup,SWup200)
315c
316      CALL plevel(klon,klevp1,.false.,paprs,20000.,
317     $     lwdn0,LWdn200clr)
318      CALL plevel(klon,klevp1,.false.,paprs,20000.,
319     $     lwdn,LWdn200)
320      CALL plevel(klon,klevp1,.false.,paprs,20000.,
321     $     lwup0,LWup200clr)
322      CALL plevel(klon,klevp1,.false.,paprs,20000.,
323     $     lwup,LWup200)
324c
Note: See TracBrowser for help on using the repository browser.