source: LMDZ4/trunk/libf/phylmd/ini_histhf.h @ 655

Last change on this file since 655 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: 12.6 KB
Line 
1!
2! $Header$
3!
4
5      IF (ok_hf) THEN
6c
7       zstohf = dtime * FLOAT(ecrit_hf)
8       zstophy = dtime
9       zstoday = dtime * FLOAT(ecrit_day)
10       zout = dtime * FLOAT(ecrit_hf)
11c
12         idayref = day_ref
13         CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)
14
15c
16         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
17         DO i = 1, iim
18            zx_lon(i,1) = rlon(i+1)
19            zx_lon(i,jjmp1) = rlon(i+1)
20         ENDDO
21
22         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
23         CALL histbeg("histhf", iim,zx_lon(:,1), jjmp1,zx_lat(1,:),
24     .                 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 
25     .                 nhori, nid_hf)
26
27         CALL histvert(nid_hf, "presnivs", "Vertical levels", "mb",
28     .                 klev, presnivs/100., nvert)
29c
30
31      IF(type_run.EQ."CLIM".OR.type_run.EQ."ENSP") THEN
32c
33      IF(lev_histhf.GE.1) THEN
34c
35         CALL histdef(nid_hf, "aireTER","Grid area CONT","-",
36     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
37     .                "once", zstohf,zout)
38c
39         CALL histdef(nid_hf, "contfracATM","% sfce ter+lic ","-",
40     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
41     .                "once", zstohf,zout)
42c
43         CALL histdef(nid_hf, "contfracOR","% sfce terre OR", "-",
44     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
45     .                "once", zstohf,zout)
46c
47c Champs 2D:
48c
49         CALL histdef(nid_hf, "t2m", "Temperature 2m", "K",
50     .                iim,jjmp1,nhori, 1,1,1, -99, 32, 
51     .                "inst(X)", zstohf,zout)
52c
53         CALL histdef(nid_hf, "q2m", "Specific humidity", "kg/kg",
54     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
55     .                "inst(X)", zstohf,zout)
56c
57         CALL histdef(nid_hf, "psol", "Surface Pressure", "Pa",
58     .                iim,jjmp1,nhori, 1,1,1, -99, 32, 
59     .                "inst(X)", zstohf,zout)
60c
61         CALL histdef(nid_hf, "precip", "Precipitation", "kg/(s*m2)",
62     .                iim,jjmp1,nhori, 1,1,1, -99, 32, 
63     .                "ave(X)", zstophy,zout)
64c
65cIM ENSEMBLES BEG
66         CALL histdef(nid_hf, "tsol", "Surface Temperature", "K",
67     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
68     .                "inst(X)", zstohf,zout)
69c
70         CALL histdef(nid_hf, "slp", "Sea Level Pressure", "Pa",
71     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
72     .                "inst(X)", zstohf,zout)
73c
74         CALL histdef(nid_hf, "u10m", "Vent zonal 10m", "m/s",
75     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
76     .                "inst(X)", zstohf,zout)
77c
78         CALL histdef(nid_hf, "v10m", "Vent meridien 10m", "m/s",
79     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
80     .                "inst(X)", zstohf,zout)
81c
82         CALL histdef(nid_hf, "wind10m","10-m wind speed","m/s",
83     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
84     .                "inst(X)", zstohf,zout)
85c
86         DO k=1, nlevSTD
87c
88c        bb=clevSTD(k)
89c
90         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
91         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
92c
93c        IF(k.GE.2) THEN
94c         aa=clevSTD(k)
95c         bb=aa(1:lnblnk1(aa))
96c        ENDIF
97c
98          IF(bb2.EQ."500") THEN
99          CALL histdef(nid_hf, "phi"//bb2,
100     .                "Geopotential "//bb2//"mb", "m",
101     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
102     .                "inst(X)", zstohf,zout)
103          ENDIF !bb2.EQ."500"
104         ENDDO !k=1, nlevSTD
105c
106      ENDIF !lev_histhf.GE.1
107c
108      IF(lev_histhf.GE.2) THEN
109c
110         CALL histdef(nid_hf, "cldt", "Total cloudiness", "%",
111     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
112     .                "ave(X)", zstophy,zout)
113c
114         CALL histdef(nid_hf, "SWnetOR",
115     .                "Sfce net SW radiation OR", "W/m2",
116     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
117     .                "ave(X)", zstophy,zout)
118c
119         CALL histdef(nid_hf, "SWdownOR",
120     .                "Sfce incident SW radiation OR", "W/m2",
121     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
122     .                "ave(X)", zstophy,zout)
123c
124         CALL histdef(nid_hf, "LWdownOR",
125     .                "Sfce incident LW radiation OR", "W/m2",
126     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
127     .                "ave(X)", zstophy,zout)
128      ENDIF !lev_histhf.GE.2
129c
130cIM ENSEMBLES END
131c
132      IF(lev_histhf.GE.3) THEN
133c
134         DO k=1, nlevSTD
135c
136c        bb=clevSTD(k)
137c
138c        IF(k.GE.2) THEN
139         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
140         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
141c         aa=clevSTD(k)
142c         bb=aa(1:lnblnk1(aa))
143c        ENDIF
144c
145         IF(bb2.EQ."850".or.bb2.EQ."700".OR.
146     $      bb2.EQ."500".or.bb2.EQ."200") THEN
147c
148          CALL histdef(nid_hf, "t"//bb2,
149     .                 "Temperature "//bb2//"mb","K",
150     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
151     .                "inst(X)", zstohf,zout)
152c
153          IF(bb2.NE."500") THEN
154          CALL histdef(nid_hf, "phi"//bb2,
155     .                "Geopotential "//bb2//"mb", "m",
156     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
157     .                "inst(X)", zstohf,zout)
158          ENDIF
159c
160          CALL histdef(nid_hf, "q"//bb2,
161     .                 "Specific humidity "//bb2//"mb","kg/kg",
162     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
163     .                "inst(X)", zstohf,zout)
164c
165          CALL histdef(nid_hf, "u"//bb2,
166     .                 "Zonal wind "//bb2//"mb","m/s",
167     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
168     .                "inst(X)", zstohf,zout)
169c
170          CALL histdef(nid_hf, "v"//bb2,
171     .                 "Meridional wind "//bb2//"mb","m/s",
172     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
173     .                "inst(X)", zstohf,zout)
174c
175         ENDIF !IF(bb2.EQ."850".or.bb2.EQ."700".OR.
176c
177         ENDDO !nlevSTD
178c
179      ENDIF !lev_histhf.GE.3
180c
181      IF(lev_histhf.GE.4) THEN
182c
183cIM sorties hf 3D
184c
185#undef histhf3d
186#define histhf3d
187#ifdef histhf3d
188#include "ini_histhf3d.h"
189#endif
190      ENDIF !lev_histhf.GE.4
191c
192      ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN
193c
194      IF(lev_histhf.GE.1) THEN
195c
196        DO k=1, nlevSTD
197c
198c
199c        bb=clevSTD(k)
200c
201c        IF(k.GE.2) THEN
202         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
203         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
204c         aa=clevSTD(k)
205c         bb=aa(1:lnblnk1(aa))
206c        ENDIF
207c
208         IF(bb2.EQ."850".or.bb2.EQ."200") THEN
209c
210          CALL histdef(nid_hf, "u"//bb2,
211     .                 "Zonal wind "//bb2//"mb","m/s",
212     .         iim,jjmp1,nhori, 1,1,1, -99, 32,
213     .         "inst(X)", zstohf,zstohf)
214c
215          CALL histdef(nid_hf, "v"//bb2,
216     .                 "Meridional wind "//bb2//"mb","m/s",
217     .         iim,jjmp1,nhori, 1,1,1, -99, 32,
218     .         "inst(X)", zstohf,zstohf)
219c
220         ENDIF !bb2.EQ."850".or.bb2.EQ."200"
221        ENDDO !k=1, nlevSTD
222c
223        CALL histdef(nid_hf, "topl", 
224     .       "Outgoing longwave radiation", "W/m2",
225     .       iim,jjmp1,nhori, 1,1,1, -99, 32,
226     .       "ave(X)", zstophy,zout)
227c
228        CALL histdef(nid_hf, "precip","Total precipitation rate",
229     .       "kg/(s*m2)",iim,jjmp1,nhori, 1,1,1, -99, 32, 
230     .       "ave(X)", zstophy,zout)
231c
232        CALL histdef(nid_hf, "slp", 
233     .       "Mean sea-level pressure", "Pa",
234     .       iim,jjmp1,nhori, 1,1,1, -99, 32,
235     .       "inst(X)", zstohf,zout)
236c
237cIM 280504 BEG
238      ENDIF !(lev_histhf.GE.1) THEN
239c
240      IF(lev_histhf.GE.2) THEN
241c
242        DO k=1, nlevSTD
243c
244c        bb=clevSTD(k)
245c
246c        IF(k.GE.2) THEN
247         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
248         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
249c         aa=clevSTD(k)
250c         bb=aa(1:lnblnk1(aa))
251c        ENDIF
252c
253         IF(bb2.EQ."850".OR.bb2.EQ."500") THEN
254c
255          CALL histdef(nid_hf, "t"//bb2,
256     .                 "Temperature "//bb2//"mb","K",
257     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
258     .                "inst(X)", zstohf,zstohf)
259c
260          CALL histdef(nid_hf, "q"//bb2,
261     .                 "Specific humidity "//bb2//"mb","kg/kg",
262     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
263     .                "inst(X)", zstohf,zstohf)
264c
265         ENDIF !bb2
266c
267         IF(bb2.EQ."500") THEN
268c
269          CALL histdef(nid_hf, "phi"//bb2,
270     .                "Geopotential "//bb2//"mb", "m",
271     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
272     .                "inst(X)", zstohf,zstohf)
273c
274          CALL histdef(nid_hf, "w"//bb2,
275     .                 "Vertical motion "//bb2//"mb","Pa/s",
276     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
277     .                "inst(X)", zstohf,zstohf)
278         ENDIF !bb2.EQ."500"
279c
280         IF(bb3.EQ."50") THEN
281c
282          CALL histdef(nid_hf, "t"//bb3,
283     .                 "Temperature "//bb3//"mb","K",
284     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
285     .                "inst(X)", zstohf,zstohf)
286c
287          CALL histdef(nid_hf, "u"//bb3,
288     .                 "Zonal wind "//bb3//"mb","m/s",
289     .         iim,jjmp1,nhori, 1,1,1, -99, 32,
290     .         "inst(X)", zstohf,zstohf)
291c
292          CALL histdef(nid_hf, "v"//bb3,
293     .                 "Meridional wind "//bb3//"mb","m/s",
294     .         iim,jjmp1,nhori, 1,1,1, -99, 32,
295     .         "inst(X)", zstohf,zstohf)
296c
297         ENDIF !bb3
298c
299        ENDDO !k=1, nlevSTD
300c
301        CALL histdef(nid_hf, "u10m", "Vent zonal 10m", "m/s",
302     .               iim,jjmp1,nhori, 1,1,1, -99, 32,
303     .               "inst(X)", zstohf,zout)
304c
305        CALL histdef(nid_hf, "v10m", "Vent meridien 10m", "m/s",
306     .               iim,jjmp1,nhori, 1,1,1, -99, 32,
307     .               "inst(X)", zstohf,zout)
308c
309        CALL histdef(nid_hf, "t2m", "Temperature 2m", "K",
310     .               iim,jjmp1,nhori, 1,1,1, -99, 32,
311     .               "inst(X)", zstohf,zout)
312c
313        CALL histdef(nid_hf, "q2m", "Specific humidity", "kg/kg",
314     .               iim,jjmp1,nhori, 1,1,1, -99, 32,
315     .               "inst(X)", zstohf,zout)
316c
317        CALL histdef(nid_hf, "psol", "Surface Pressure", "Pa",
318     .               iim,jjmp1,nhori, 1,1,1, -99, 32, 
319     .               "inst(X)", zstohf,zout)
320c
321        CALL histdef(nid_hf, "cldt", "Total cloudiness", "%",
322     .               iim,jjmp1,nhori, 1,1,1, -99, 32,
323     .               "ave(X)", zstohf,zout)
324c
325        CALL histdef(nid_hf, "taux",
326     $         "Zonal wind stress","Pa",
327     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
328     $         "ave(X)", zstohf,zout)
329c
330        CALL histdef(nid_hf, "tauy",
331     $         "Meridional wind stress ", "Pa",
332     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
333     $         "ave(X)", zstohf,zout)
334c
335        CALL histdef(nid_hf, "prw", "Precipitable water", "kg/m2",
336     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
337cIM 090904  .                "ave(X)", zstohf,zout)
338     .                "ave(X)", zstophy,zout)
339c
340        CALL histdef(nid_hf, "sens", "Sensible heat flux", "W/m2",
341     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
342cIM 090904  .                "ave(X)", zstohf,zout)
343     .                "ave(X)", zstophy,zout)
344c
345        CALL histdef(nid_hf, "flat", "Latent heat flux", "W/m2",
346     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
347     .                "ave(X)", zstohf,zout)
348c
349c       CALL histdef(nid_hf, "snow_mass", "Snow Mass", "kg/m2",
350c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
351c    .                "ave(X)", zstohf,zout)
352c
353        CALL histdef(nid_hf, "SWdnSFC", "SWdn at surface","W/m2",
354     .                iim,jjmp1,nhori, 1,1,1,-99,
355     .                32, "ave(X)", zstohf,zout)
356c
357        CALL histdef(nid_hf, "SWupSFC", "SWup at surface","W/m2",
358     .                iim,jjmp1,nhori, 1,1,1,-99,
359     .                32, "ave(X)", zstohf,zout)
360c
361        CALL histdef(nid_hf,"LWdnSFC","Down. IR rad. at surface",
362     .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
363     .                "ave(X)", zstohf,zout)
364c
365        CALL histdef(nid_hf,"LWupSFC","Upwd. IR rad. at surface",
366     .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
367     .                "ave(X)", zstohf,zout)
368c
369        CALL histdef(nid_hf, "SWdnTOA", "SWdn at TOA","W/m2",
370     .                iim,jjmp1,nhori, 1,1,1,-99,
371     .                32, "ave(X)", zstohf,zout)
372c
373        CALL histdef(nid_hf, "SWupTOA", "SWup at TOA","W/m2",
374     .                iim,jjmp1,nhori, 1,1,1,-99,
375     .                32, "ave(X)", zstohf,zout)
376c
377        DO k=1, nbteta
378         CALL histdef(nid_hf, "PV"//ctetaSTD(k),
379     $               "Vorticite potentielle "//ctetaSTD(k)//"K",
380     $               "1/(Pa*s)",iim,jjmp1,nhori, 1,1,1, -99,
381     $                 32, "inst(X)", zstohf,zout) 
382        ENDDO !k=1, nbteta
383c
384c planetary boundary layer height
385c
386c       ENDIF !1.EQ.0
387c
388      ENDIF !(lev_histhf.GE.2) THEN
389cIM 280504 END
390c
391      ENDIF !type_run
392c
393      CALL histend(nid_hf)
394c
395      ENDIF ! ok_hf
Note: See TracBrowser for help on using the repository browser.