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

Last change on this file since 951 was 684, checked in by lmdzadmin, 19 years ago

Ajout nouveaux flags (ip_ebil_phy, ok_slab_sicOBS) ds physiq.def +
Lecture freq. ecriture en nombre de jours
IM

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 10.7 KB
RevLine 
[644]1c
2c $Header$
3c
4c
5cIM on initialise les champs en debut du jour ou du mois
6c
7        CALL ini_undefSTD(nlevSTD,itap,
[684]8     $           dtime,ecrit_day,ecrit_mth,
[644]9     $                    tnondef,tsumSTD)
10        CALL ini_undefSTD(nlevSTD,itap,
[684]11     $           dtime,ecrit_day,ecrit_mth,
[644]12     $                    tnondef,usumSTD)
13        CALL ini_undefSTD(nlevSTD,itap,
[684]14     $           dtime,ecrit_day,ecrit_mth,
[644]15     $                    tnondef,vsumSTD)
16        CALL ini_undefSTD(nlevSTD,itap,
[684]17     $           dtime,ecrit_day,ecrit_mth,
[644]18     $                    tnondef,wsumSTD)
19        CALL ini_undefSTD(nlevSTD,itap,
[684]20     $           dtime,ecrit_day,ecrit_mth,
[644]21     $                    tnondef,phisumSTD)
22        CALL ini_undefSTD(nlevSTD,itap,
[684]23     $           dtime,ecrit_day,ecrit_mth,
[644]24     $                    tnondef,qsumSTD)
25        CALL ini_undefSTD(nlevSTD,itap,
[684]26     $           dtime,ecrit_day,ecrit_mth,
[644]27     $                    tnondef,rhsumSTD)
28        CALL ini_undefSTD(nlevSTD,itap,
[684]29     $           dtime,ecrit_day,ecrit_mth,
[644]30     $                    tnondef,uvsumSTD)
31        CALL ini_undefSTD(nlevSTD,itap,
[684]32     $           dtime,ecrit_day,ecrit_mth,
[644]33     $                    tnondef,vqsumSTD)
34        CALL ini_undefSTD(nlevSTD,itap,
[684]35     $           dtime,ecrit_day,ecrit_mth,
[644]36     $                    tnondef,vTsumSTD)
37        CALL ini_undefSTD(nlevSTD,itap,
[684]38     $           dtime,ecrit_day,ecrit_mth,
[644]39     $                    tnondef,wqsumSTD)
40        CALL ini_undefSTD(nlevSTD,itap,
[684]41     $           dtime,ecrit_day,ecrit_mth,
[644]42     $                    tnondef,vphisumSTD)
43        CALL ini_undefSTD(nlevSTD,itap,
[684]44     $           dtime,ecrit_day,ecrit_mth,
[644]45     $                    tnondef,wTsumSTD)
46        CALL ini_undefSTD(nlevSTD,itap,
[684]47     $           dtime,ecrit_day,ecrit_mth,
[644]48     $                    tnondef,u2sumSTD)
49        CALL ini_undefSTD(nlevSTD,itap,
[684]50     $           dtime,ecrit_day,ecrit_mth,
[644]51     $                    tnondef,v2sumSTD)
52        CALL ini_undefSTD(nlevSTD,itap,
[684]53     $           dtime,ecrit_day,ecrit_mth,
[644]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,
[684]161     $               dtime,ecrit_hf,
[644]162     $               oknondef,tnondef,tsumSTD)
163c
164       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
165       CALL undefSTD(nlevSTD,itap,ulevSTD,
[684]166     $           dtime,ecrit_hf,
[644]167     $               oknondef,tnondef,usumSTD)
168c
169       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
170       CALL undefSTD(nlevSTD,itap,vlevSTD,
[684]171     $           dtime,ecrit_hf,
[644]172     $               oknondef,tnondef,vsumSTD)
173c
174       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
175       CALL undefSTD(nlevSTD,itap,wlevSTD,
[684]176     $           dtime,ecrit_hf,
[644]177     $               oknondef,tnondef,wsumSTD)
178c
179       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
180       CALL undefSTD(nlevSTD,itap,philevSTD,
[684]181     $           dtime,ecrit_hf,
[644]182     $               oknondef,tnondef,phisumSTD)
183c
184       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
185       CALL undefSTD(nlevSTD,itap,qlevSTD,
[684]186     $           dtime,ecrit_hf,
[644]187     $               oknondef,tnondef,qsumSTD)
188c
189       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
190       CALL undefSTD(nlevSTD,itap,rhlevSTD,
[684]191     $           dtime,ecrit_hf,
[644]192     $               oknondef,tnondef,rhsumSTD)
193c
194       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
195       CALL undefSTD(nlevSTD,itap,uvSTD,
[684]196     $           dtime,ecrit_hf,
[644]197     $               oknondef,tnondef,uvsumSTD)
198c
199       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
200       CALL undefSTD(nlevSTD,itap,vqSTD,
[684]201     $           dtime,ecrit_hf,
[644]202     $               oknondef,tnondef,vqsumSTD)
203c
204       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
205       CALL undefSTD(nlevSTD,itap,vTSTD,
[684]206     $           dtime,ecrit_hf,
[644]207     $               oknondef,tnondef,vTsumSTD)
208c
209       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
210       CALL undefSTD(nlevSTD,itap,wqSTD,
[684]211     $           dtime,ecrit_hf,
[644]212     $               oknondef,tnondef,wqsumSTD)
213c
214       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
215       CALL undefSTD(nlevSTD,itap,vphiSTD,
[684]216     $           dtime,ecrit_hf,
[644]217     $               oknondef,tnondef,vphisumSTD)
218c
219       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
220       CALL undefSTD(nlevSTD,itap,wTSTD,
[684]221     $           dtime,ecrit_hf,
[644]222     $               oknondef,tnondef,wTsumSTD)
223c
224       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
225       CALL undefSTD(nlevSTD,itap,u2STD,
[684]226     $           dtime,ecrit_hf,
[644]227     $               oknondef,tnondef,u2sumSTD)
228c
229       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
230       CALL undefSTD(nlevSTD,itap,v2STD,
[684]231     $           dtime,ecrit_hf,
[644]232     $               oknondef,tnondef,v2sumSTD)
233c
234       oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE.
235       CALL undefSTD(nlevSTD,itap,T2STD,
[684]236     $           dtime,ecrit_hf,
[644]237     $               oknondef,tnondef,T2sumSTD)
238c
239cIM on moyenne a la fin du jour ou du mois
240c
241       CALL moy_undefSTD(nlevSTD,itap,
[684]242     $      dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
[644]243     $                   tnondef,tsumSTD)
244c
245       CALL moy_undefSTD(nlevSTD,itap,
[684]246     $      dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
[644]247     $                   tnondef,usumSTD)
248c
249       CALL moy_undefSTD(nlevSTD,itap,
[684]250     $      dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
[644]251     $                   tnondef,vsumSTD)
252c
253       CALL moy_undefSTD(nlevSTD,itap,
[684]254     $      dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
[644]255     $                   tnondef,wsumSTD)
256c
257       CALL moy_undefSTD(nlevSTD,itap,
[684]258     $      dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
[644]259     $                   tnondef,phisumSTD)
260c
261       CALL moy_undefSTD(nlevSTD,itap,
[684]262     $      dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
[644]263     $                   tnondef,qsumSTD)
264c
265       CALL moy_undefSTD(nlevSTD,itap,
[684]266     $      dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
[644]267     $                   tnondef,rhsumSTD)
268c
269       CALL moy_undefSTD(nlevSTD,itap,
[684]270     $      dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
[644]271     $                   tnondef,uvsumSTD)
272c
273       CALL moy_undefSTD(nlevSTD,itap,
[684]274     $      dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
[644]275     $                   tnondef,vqsumSTD)
276c
277       CALL moy_undefSTD(nlevSTD,itap,
[684]278     $      dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
[644]279     $                   tnondef,vTsumSTD)
280c
281       CALL moy_undefSTD(nlevSTD,itap,
[684]282     $      dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
[644]283     $                   tnondef,wqsumSTD)
284c
285       CALL moy_undefSTD(nlevSTD,itap,
[684]286     $      dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
[644]287     $                   tnondef,vphisumSTD)
288c
289       CALL moy_undefSTD(nlevSTD,itap,
[684]290     $      dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
[644]291     $                   tnondef,wTsumSTD)
292c
293       CALL moy_undefSTD(nlevSTD,itap,
[684]294     $      dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
[644]295     $                   tnondef,u2sumSTD)
296c
297       CALL moy_undefSTD(nlevSTD,itap,
[684]298     $      dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
[644]299     $                   tnondef,v2sumSTD)
300c
301       CALL moy_undefSTD(nlevSTD,itap,
[684]302     $      dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
[644]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.