source: LMDZ4/tags/LMDZ4_V3_2/libf/phylmd/write_histhf.h @ 4999

Last change on this file since 4999 was 912, checked in by (none), 17 years ago

This commit was manufactured by cvs2svn to create tag 'LMDZ4_V3_2'.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 11.5 KB
RevLine 
[524]1!
2! $Header$
3!
4      if (ok_hf) then
5
6c
7      ndex2d = 0
8      ndex3d = 0
9c
10      itau_w = itau_phy + itap
11c
[644]12      IF(type_run.EQ."CLIM".OR.type_run.EQ."ENSP") THEN
13c
[524]14      IF(lev_histhf.GE.1) THEN
15c
[766]16cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, paire_ter, zx_tmp_2d)
17      CALL histwrite_phy(nid_hf,"aireTER",itau_w,paire_ter)
[524]18c
19      DO i=1, klon
20       zx_tmp_fi2d(i)=pctsrf(i,is_ter)+pctsrf(i,is_lic)
21      ENDDO
22c
[766]23cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
24      CALL histwrite_phy(nid_hf,"contfracATM",itau_w,zx_tmp_fi2d)
[524]25c
[766]26cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,pctsrf_new(:,is_ter),zx_tmp_2d)
27      CALL histwrite_phy(nid_hf,"contfracOR",itau_w,
28     .                   pctsrf_new(:,is_ter))
[524]29c
[766]30cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d)
31      CALL histwrite_phy(nid_hf,"t2m",itau_w,zt2m)
[524]32c
[766]33cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d)
34      CALL histwrite_phy(nid_hf,"q2m",itau_w,zq2m)
[524]35c
36      DO i = 1, klon
37         zx_tmp_fi2d(i) = paprs(i,1)
38      ENDDO
[766]39cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
40      CALL histwrite_phy(nid_hf,"psol",itau_w,zx_tmp_fi2d)
[524]41c
42      DO i = 1, klon
43         zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
44      ENDDO
[766]45cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
46      CALL histwrite_phy(nid_hf,"precip",itau_w,zx_tmp_fi2d)
[524]47c
48c ENSEMBLES BEG
[766]49cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)
50      CALL histwrite_phy(nid_hf,"tsol",itau_w,zxtsol)
[524]51c
[766]52cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)
53      CALL histwrite_phy(nid_hf,"slp",itau_w,slp)
[524]54c
[766]55cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d)
56      CALL histwrite_phy(nid_hf,"u10m",itau_w,zu10m)
[644]57c
[766]58cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d)
59      CALL histwrite_phy(nid_hf,"v10m",itau_w,zv10m)
[524]60c
61      DO i=1, klon
62       zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
63      ENDDO
[766]64cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
65      CALL histwrite_phy(nid_hf,"wind10m",itau_w,zx_tmp_fi2d)
[524]66c
[644]67      DO k=1, nlevSTD
68c
69c        bb=clevSTD(k)
70c
71c        IF(k.GE.2) THEN
72         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
73         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
74c         aa=clevSTD(k)
75c         bb=aa(1:lnblnk1(aa))
76c        ENDIF
77c
78      IF(bb2.EQ."500") THEN
79c
[766]80cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, philevSTD(:,k),zx_tmp_2d)
81      CALL histwrite_phy(nid_hf,"phi"//bb2,itau_w, philevSTD(:,k))
[644]82      ENDIF !bb2.EQ."500"
[524]83      ENDDO
84c
85      ENDIF !lev_histhf.GE.1
86c
87      IF(lev_histhf.GE.2) THEN
88c
[644]89cIM 140904 BEG
90      DO i = 1, klon
91         zx_tmp_fi2d(i) = cldt(i)*100.
92      ENDDO
93cIM 140904 END
94cIM 140904   CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d)
[766]95cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
96      CALL histwrite_phy(nid_hf,"cldt",itau_w,zx_tmp_fi2d)
[524]97c
98      zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, is_ter)
[766]99cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
100      CALL histwrite_phy(nid_hf,"SWnetOR",itau_w, zx_tmp_fi2d)
[591]101c
102      zx_tmp_fi2d(1:klon) = solsw(1:klon)/(1.-albsol(1:klon))
[766]103cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
104      CALL histwrite_phy(nid_hf,"SWdownOR",itau_w, zx_tmp_fi2d)
[524]105c
[766]106cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
107      CALL histwrite_phy(nid_hf,"LWdownOR",itau_w,sollwdown) 
[524]108c
109c
110      ENDIF !lev_histhf.GE.2
111c
112      IF(lev_histhf.GE.3) THEN
113c
[644]114      DO k=1, nlevSTD
[524]115c
[644]116c        bb=clevSTD(k)
[524]117c
[644]118c        IF(k.GE.2) THEN
[897]119c         IF(k.GE.1.AND.k.LE.10) bb2=clevSTD(k)
120c         IF(k.GE.11.AND.k.LE.17) bb3=clevSTD(k)
[644]121c         aa=clevSTD(k)
122c         bb=aa(1:lnblnk1(aa))
123c        ENDIF
124c
[897]125      bb2=clevSTD(k)
126      IF(bb2.EQ."1000".OR.bb2.EQ."925".OR.
127     $      bb2.EQ."850".OR.bb2.EQ."700".OR.
128     $      bb2.EQ."500".OR.bb2.EQ."300".OR.
129     $      bb2.EQ."250".OR.bb2.EQ."200".OR.
130     $      bb2.EQ."150".OR.bb2.EQ."100".OR.
131     $      bb2.EQ."50".OR.bb2.EQ."30".OR.
132     $      bb2.EQ."10")THEN
[644]133c
[766]134cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d)
135      CALL histwrite_phy(nid_hf,"t"//bb2,itau_w, tlevSTD(:,k))
[524]136c
[644]137      IF(bb2.NE."500") THEN !bb2.NE."500"
138c
[766]139cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,philevSTD(:,k),zx_tmp_2d)
140      CALL histwrite_phy(nid_hf,"phi"//bb2,itau_w,philevSTD(:,k))
[644]141      ENDIF !bb2.NE."500"
[524]142c
[897]143      IF(bb2.GE."200") THEN
144c
[766]145cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlevSTD(:,k),zx_tmp_2d)
146      CALL histwrite_phy(nid_hf,"q"//bb2,itau_w, qlevSTD(:,k))
[897]147      ENDIF
[524]148c
[766]149cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d)
150      CALL histwrite_phy(nid_hf,"u"//bb2,itau_w,ulevSTD(:,k))
[524]151c
[766]152cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d)
153      CALL histwrite_phy(nid_hf,"v"//bb2,itau_w, vlevSTD(:,k))
[524]154c
[897]155cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, wlevSTD(:,k),zx_tmp_2d)
156      CALL histwrite_phy(nid_hf,"w"//bb2,itau_w, wlevSTD(:,k))
157c
158      ENDIF
[524]159      ENDDO !nlevENS
160c
161      IF(1.EQ.0) THEN
[766]162cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
163      CALL histwrite_phy(nid_hf,"cdrm",itau_w,cdragm)
[524]164c
[766]165cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
166      CALL histwrite_phy(nid_hf,"cdrh",itau_w,cdragh)
[524]167      ENDIF !(1.EQ.0) THEN
168c
[591]169      ENDIF !lev_histhf.GE.3
170c
171      IF(lev_histhf.GE.4) THEN
172c
[644]173#undef histhf3d
[591]174#define histhf3d
175#ifdef histhf3d
176#include "write_histhf3d.h"
177#endif
178c
179      ENDIF !lev_histhf.GE.4
180c
[644]181      ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN
182c
183      IF(lev_histhf.GE.1) THEN
184c
185      DO k=1, nlevSTD
186c        bb=clevSTD(k)
187c
188c        IF(k.GE.2) THEN
189         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
190         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
191c         aa=clevSTD(k)
192c         bb=aa(1:lnblnk1(aa))
193c        ENDIF
194c
195        IF(bb2.EQ."850".or.bb2.EQ."200") THEN
196c
[766]197cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d)
198        CALL histwrite_phy(nid_hf,"u"//bb2,itau_w,ulevSTD(:,k))
[644]199c
[766]200cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d)
201        CALL histwrite_phy(nid_hf,"v"//bb2,itau_w,vlevSTD(:,k))
[644]202c
203        ENDIF !bb2.EQ."850".or.bb2.EQ."200"
204c
205      ENDDO !nlevSTD
206c
[766]207cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
208      CALL histwrite_phy(nid_hf,"topl",itau_w,toplw)
[644]209c
210      DO i = 1, klon
211         zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
212      ENDDO
[766]213cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
214      CALL histwrite_phy(nid_hf,"precip",itau_w,zx_tmp_fi2d)
[644]215c
[766]216cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)
217      CALL histwrite_phy(nid_hf,"slp",itau_w,slp)
[644]218c
219cIM 280504 BEG
220      ENDIF !(lev_histhf.GE.1) THEN
221c
222      IF(lev_histhf.GE.2) THEN
223c
224       DO k=1, nlevSTD
225c
226c        bb=clevSTD(k)
227c
228c        IF(k.GE.2) THEN
229         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
230         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
231c         aa=clevSTD(k)
232c         bb=aa(1:lnblnk1(aa))
233c        ENDIF
234c
235        IF(bb2.EQ."850".or.bb2.EQ."500") THEN
236c
[766]237cym         CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d)
238         CALL histwrite_phy(nid_hf,"t"//bb2,itau_w,tlevSTD(:,k))
[644]239c
[766]240cym         CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlevSTD(:,k),zx_tmp_2d)
241         CALL histwrite_phy(nid_hf,"q"//bb2,itau_w, qlevSTD(:,k))
[644]242c
243        ENDIF !bb2.EQ."850".or.bb2.EQ."500"
244c
245        IF(bb2.EQ."500") THEN
246c
[766]247cym         CALL gr_fi_ecrit(1, klon,iim,jjmp1, philevSTD(:,k),zx_tmp_2d)
248         CALL histwrite_phy(nid_hf,"phi"//bb2,itau_w, philevSTD(:,k))
[644]249c
[766]250cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, wlevSTD(:,k),zx_tmp_2d)
251        CALL histwrite_phy(nid_hf,"w"//bb2,itau_w, wlevSTD(:,k))
[644]252c
253        ENDIF !bb2.EQ."500"
254c
255        IF(bb3.EQ."50") THEN
256c
[766]257cym         CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d)
258         CALL histwrite_phy(nid_hf,"t"//bb3,itau_w, tlevSTD(:,k))
[644]259c
[766]260cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d)
261        CALL histwrite_phy(nid_hf,"u"//bb3,itau_w, ulevSTD(:,k))
[644]262c
[766]263cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d)
264        CALL histwrite_phy(nid_hf,"v"//bb3,itau_w, vlevSTD(:,k))
[644]265c
266        ENDIF !bb3.EQ."50"
267c
268       ENDDO !k=1, nlevSTD
269c
[766]270cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d)
271      CALL histwrite_phy(nid_hf,"u10m",itau_w,zu10m)
[644]272c
[766]273cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d)
274      CALL histwrite_phy(nid_hf,"v10m",itau_w,zv10m)
[644]275c
[766]276cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d)
277      CALL histwrite_phy(nid_hf,"t2m",itau_w, zt2m)
[644]278c
[766]279cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d)
280      CALL histwrite_phy(nid_hf,"q2m",itau_w,zq2m)
[644]281c
282      DO i = 1, klon
283         zx_tmp_fi2d(i) = paprs(i,1)
284      ENDDO
[766]285cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
286      CALL histwrite_phy(nid_hf,"psol",itau_w,zx_tmp_fi2d)
[644]287c
288cIM 140904 BEG
289      DO i = 1, klon
290         zx_tmp_fi2d(i) = cldt(i)*100.
291      ENDDO
292cIM 140904 END
293cIM 140904   CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d)
[766]294cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
295      CALL histwrite_phy(nid_hf,"cldt",itau_w,zx_tmp_fi2d)
[644]296c
297      zx_tmp_fi2d(1 : klon) = zxfluxu(1 : klon, 1)
[766]298cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
299      CALL histwrite_phy(nid_hf,"taux",itau_w,zx_tmp_fi2d)
[644]300C
301      zx_tmp_fi2d(1 : klon) = zxfluxv(1 : klon, 1)
[766]302cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
303      CALL histwrite_phy(nid_hf,"tauy",itau_w,zx_tmp_fi2d)
[644]304c
[766]305cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d)
306      CALL histwrite_phy(nid_hf,"prw",itau_w,prw)
[644]307c
308      zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
[766]309cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
310      CALL histwrite_phy(nid_hf,"sens",itau_w,zx_tmp_fi2d)
[644]311c
[766]312cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfluxlat,zx_tmp_2d)
313      CALL histwrite_phy(nid_hf,"flat",itau_w,zxfluxlat)
[644]314c
315c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d)
[766]316c     CALL histwrite_phy(nid_hf,"snow_mass",itau_w,zsnow_mass)
[644]317c
318      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 )
[766]319cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
320      CALL histwrite_phy(nid_hf, "SWdnSFC",itau_w,zx_tmp_fi2d)
[644]321c
322      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 )
[766]323cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
324      CALL histwrite_phy(nid_hf, "SWupSFC",itau_w,zx_tmp_fi2d)
[644]325c
[766]326cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
327      CALL histwrite_phy(nid_hf,"LWdnSFC",itau_w,sollwdown)
[644]328c
329cIM 090904   zx_tmp_fi2d(1:klon)=sollw(1:klon)+sollwdown(1:klon)
330cIM 130904   zx_tmp_fi2d(1:klon)=sollw(1:klon)-sollwdown(1:klon)
331      zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon)
[766]332cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
333      CALL histwrite_phy(nid_hf,"LWupSFC",itau_w,zx_tmp_fi2d)                   
[644]334c
335      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 )
[766]336cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
337      CALL histwrite_phy(nid_hf, "SWdnTOA",itau_w,zx_tmp_fi2d)
[644]338c
339      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 )
[766]340cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
341      CALL histwrite_phy(nid_hf, "SWupTOA",itau_w,zx_tmp_fi2d)
[644]342c
[776]343      IF (is_sequential) THEN
[766]344cym      CALL gr_fi_ecrit(nbteta,klon,iim,jjmp1,PVteta,zx_tmp_3dte)
[644]345      DO k=1, nbteta
[782]346       zx_tmp_fi2d(1:klon) = PVteta(1:klon,k)
[766]347       CALL histwrite_phy(nid_hf,"PV"//ctetaSTD(k),
[782]348     .      itau_w,zx_tmp_fi2d)
[644]349      ENDDO !k=1, nbteta
[766]350      ENDIF
[644]351c
352c
353c planetary boundary layer height
354c
355c     ENDIF !1.EQ.0
356c
357      ENDIF !(lev_histhf.GE.2) THEN
358cIM 280504 END
359c
360      ENDIF !type_run
361c
362      IF (ok_sync) THEN
[766]363c$OMP MASTER
[591]364        call histsync(nid_hf)
[766]365c$OMP END MASTER
[644]366      ENDIF
[591]367
[644]368      ENDIF
Note: See TracBrowser for help on using the repository browser.