source: trunk/libf/phytitan/write_histmth.h @ 125

Last change on this file since 125 was 119, checked in by slebonnois, 14 years ago

Sebastien Lebonnois: apres validation des versions Venus et Titan,
correction d'un certain nombre de bugs.

File size: 12.6 KB
RevLine 
[3]1      IF (ok_mensuel) THEN
2c
3      ndex2d = 0
4      ndex3d = 0
5      zx_tmp_2d = 0.
6      zx_tmp_3d = 0.
7      zx_tmp_fi2d=0.
8      zx_tmp_fi3d=0.
9c
10         zsto = dtime
11         zout = dtime * FLOAT(ecrit_mth)
12         itau_w = itau_phy + itap
13c
14c-------------------------------------------------------
15      IF(lev_histmth.GE.1) THEN
16c
17ccccccccccccc 2D fields, invariables
18c
19      CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)
[97]20      CALL histwrite(nid_mth,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
[3]21C
22      CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)
[97]23      CALL histwrite(nid_mth,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
[3]24c
25ccccccc axe Ls
26      do j=1,jjmp1
27       do i=1,iim
[97]28        zx_tmp_2d(i,j)=zls*180./RPI      ! zls est en radians !!
[3]29       enddo
30      enddo
[97]31      CALL histwrite(nid_mth,"ls",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
[3]32c
33ccccccccccccc 2D fields, variables
34c
35      CALL gr_fi_ecrit(1, klon,iim,jjmp1, ftsol,zx_tmp_2d)
[97]36      CALL histwrite(nid_mth,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
[3]37c
38      DO i = 1, klon
39         zx_tmp_fi2d(i) = paprs(i,1)
40      ENDDO
41      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
[97]42      CALL histwrite(nid_mth,"psol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
[3]43c
44c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, ue,zx_tmp_2d)
[97]45c     CALL histwrite(nid_mth,"ue",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
[3]46c
47c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, ve,zx_tmp_2d)
[97]48c     CALL histwrite(nid_mth,"ve",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
[3]49c
[106]50c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
[110]51c     CALL histwrite(nid_mth,"cdragh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
[106]52c
53c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
[110]54c     CALL histwrite(nid_mth,"cdragm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
[106]55c
[3]56      ENDIF !lev_histmth.GE.1
57c
58c-------------------------------------------------------
59      IF(lev_histmth.GE.2) THEN
60c
61ccccccccccccc 3D fields, basics
62c
63      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
[97]64      CALL histwrite(nid_mth,"temp",itau_w,zx_tmp_3d,
[3]65     .                                   iim*jjmp1*klev,ndex3d)
66c
67      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
[97]68      CALL histwrite(nid_mth,"pres",itau_w,zx_tmp_3d,
[3]69     .                                   iim*jjmp1*klev,ndex3d)
70c
71      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
[97]72      CALL histwrite(nid_mth,"geop",itau_w,zx_tmp_3d,
[3]73     .                                   iim*jjmp1*klev,ndex3d)
74c
75      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
[97]76      CALL histwrite(nid_mth,"vitu",itau_w,zx_tmp_3d,
[3]77     .                                   iim*jjmp1*klev,ndex3d)
78c
79      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
[97]80      CALL histwrite(nid_mth,"vitv",itau_w,zx_tmp_3d,
[3]81     .                                   iim*jjmp1*klev,ndex3d)
82c
83      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d)
[97]84      CALL histwrite(nid_mth,"vitw",itau_w,zx_tmp_3d,
[3]85     .                                   iim*jjmp1*klev,ndex3d)
86c
[106]87c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, ycoefh, zx_tmp_3d)
[110]88c     CALL histwrite(nid_mth,"Kz",itau_w,zx_tmp_3d,
[106]89c    .                                   iim*jjmp1*klev,ndex3d)
90c
[3]91      CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d)
[97]92      CALL histwrite(nid_mth,"tops",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
[3]93c
94         if (iflag_trac.eq.1) THEN
[105]95c         if (microfi.eq.1) then
[97]96c          DO iq=1,nmicro
97c      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qaer(1,1,iq), zx_tmp_3d)
98c      CALL histwrite(nid_mth,tname(iq),itau_w,zx_tmp_3d,
99c    .                                   iim*jjmp1*klev,ndex3d)
100c          ENDDO
101c         endif
102          if (nmicro.lt.nqmax) then
[3]103           DO iq=nmicro+1,nqmax
104       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,tr_seri(1,1,iq),zx_tmp_3d)
[97]105       CALL histwrite(nid_mth,tname(iq),itau_w,zx_tmp_3d,
[3]106     .                                   iim*jjmp1*klev,ndex3d)
107           ENDDO
108c Condensation:
109c          DO iq=nmicro+1,nqmax
110c      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,d_tr_mph(1,1,iq),zx_tmp_3d)
[97]111c      CALL histwrite(nid_mth,"c_"//tname(iq),itau_w,zx_tmp_3d,
[3]112c    .                                   iim*jjmp1*klev,ndex3d)
113c          ENDDO
114          endif
115         endif
116c
117      ENDIF !lev_histmth.GE.2
118c
119c-------------------------------------------------------
120      IF(lev_histmth.GE.3) THEN
121c
122cccccccccccccccccc  Radiative transfer
123c
124c 2D
125c
126      CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
[97]127      CALL histwrite(nid_mth,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
[3]128c
129      CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d)
[97]130      CALL histwrite(nid_mth,"sols",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
[3]131c
132      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d)
[97]133      CALL histwrite(nid_mth,"soll",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
[3]134c
135c 3D
136c
137      zx_tmp_fi3d(1:klon,1:klev)=swnet(1:klon,1:klev)
138      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
[97]139      CALL histwrite(nid_mth,"SWnet",itau_w,zx_tmp_3d,
[3]140     .                                   iim*jjmp1*klev,ndex3d)
141c
142      zx_tmp_fi3d(1:klon,1:klev)=lwnet(1:klon,1:klev)
143      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
[97]144      CALL histwrite(nid_mth,"LWnet",itau_w,zx_tmp_3d,
[3]145     .                                   iim*jjmp1*klev,ndex3d)
146c
[97]147c 3D adding Tau and k  (31/08/10)
[106]148c
149       do k=7,NSPECV,10
[97]150         do i=1,klon
151         do l=1,klev
[106]152           t_tauhvd(i,l)=TAUHVD(i,klev-l+1,k)
[97]153         enddo
154         enddo
155         write(str1,'(i2.2)') k
156      zx_tmp_fi3d(1:klon,1:klev)=t_tauhvd(1:klon,1:klev)
157      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
[119]158      CALL histwrite(nid_mth,"thv"//str1,itau_w,zx_tmp_3d,
[97]159     .                                   iim*jjmp1*klev,ndex3d)
[106]160       enddo      ! fin boucle NSPECV
[97]161
[106]162       do k=7,NSPECV,10
[97]163         do i=1,klon
164         do l=1,klev
165         if(l.ne.klev)
166     s    t_khvd(i,l)=TAUHVD(i,klev-l+1,k)
167     s    -TAUHVD(i,klev-l+1-1,k)
168
169          if(l.eq.klev)
170     s    t_khvd(i,l)=TAUHVD(i,klev-l+1,k)
171
172         t_khvd(i,l)=t_khvd(i,l)/(zzlev(i,l+1)-zzlev(i,l))
173         enddo
174         enddo
175         write(str1,'(i2.2)') k
176      zx_tmp_fi3d(1:klon,1:klev)=t_khvd(1:klon,1:klev)
177      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
[119]178      CALL histwrite(nid_mth,"khv"//str1,itau_w,zx_tmp_3d,
[97]179     .                                   iim*jjmp1*klev,ndex3d)
[106]180       enddo      ! fin boucle NSPECV
[97]181
[106]182       do k=7,NSPECV,10
183         do i=1,klon
184         do l=1,klev
185           t_tauhvd(i,l)=TAUGVD(i,klev-l+1,k)
186         enddo
187         enddo
188         write(str1,'(i2.2)') k
189      zx_tmp_fi3d(1:klon,1:klev)=t_tauhvd(1:klon,1:klev)
190      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
[119]191      CALL histwrite(nid_mth,"tgv"//str1,itau_w,zx_tmp_3d,
[106]192     .                                   iim*jjmp1*klev,ndex3d)
193       enddo      ! fin boucle NSPECV
194
195       do k=7,NSPECV,10
196         do i=1,klon
197         do l=1,klev
198         if(l.ne.klev)
199     s    t_khvd(i,l)=TAUGVD(i,klev-l+1,k)
200     s    -TAUGVD(i,klev-l+1-1,k)
201
202          if(l.eq.klev)
203     s    t_khvd(i,l)=TAUGVD(i,klev-l+1,k)
204
205         t_khvd(i,l)=t_khvd(i,l)/(zzlev(i,l+1)-zzlev(i,l))
206         enddo
207         enddo
208         write(str1,'(i2.2)') k
209      zx_tmp_fi3d(1:klon,1:klev)=t_khvd(1:klon,1:klev)
210      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
[119]211      CALL histwrite(nid_mth,"kgv"//str1,itau_w,zx_tmp_3d,
[106]212     .                                   iim*jjmp1*klev,ndex3d)
213       enddo      ! fin boucle NSPECV
214
215       do k=8,NSPECI,10
216         do i=1,klon
217         do l=1,klev
218           t_tauhvd(i,l)=TAUHID(i,klev-l+1,k)
219         enddo
220         enddo
221         write(str1,'(i2.2)') k
222      zx_tmp_fi3d(1:klon,1:klev)=t_tauhvd(1:klon,1:klev)
223      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
[119]224      CALL histwrite(nid_mth,"thi"//str1,itau_w,zx_tmp_3d,
[106]225     .                                   iim*jjmp1*klev,ndex3d)
226       enddo      ! fin boucle NSPECI
227
228       do k=8,NSPECI,10
229         do i=1,klon
230         do l=1,klev
231         if(l.ne.klev)
232     s    t_khvd(i,l)=TAUHID(i,klev-l+1,k)
233     s    -TAUHID(i,klev-l+1-1,k)
234
235          if(l.eq.klev)
236     s    t_khvd(i,l)=TAUHID(i,klev-l+1,k)
237
238         t_khvd(i,l)=t_khvd(i,l)/(zzlev(i,l+1)-zzlev(i,l))
239         enddo
240         enddo
241         write(str1,'(i2.2)') k
242      zx_tmp_fi3d(1:klon,1:klev)=t_khvd(1:klon,1:klev)
243      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
[119]244      CALL histwrite(nid_mth,"khi"//str1,itau_w,zx_tmp_3d,
[106]245     .                                   iim*jjmp1*klev,ndex3d)
246       enddo      ! fin boucle NSPECI
247
248       do k=8,NSPECI,10
249         do i=1,klon
250         do l=1,klev
251           t_tauhvd(i,l)=TAUGID(i,klev-l+1,k)
252         enddo
253         enddo
254         write(str1,'(i2.2)') k
255      zx_tmp_fi3d(1:klon,1:klev)=t_tauhvd(1:klon,1:klev)
256      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
[119]257      CALL histwrite(nid_mth,"tgi"//str1,itau_w,zx_tmp_3d,
[106]258     .                                   iim*jjmp1*klev,ndex3d)
259       enddo      ! fin boucle NSPECI
260
261       do k=8,NSPECI,10
262         do i=1,klon
263         do l=1,klev
264         if(l.ne.klev)
265     s    t_khvd(i,l)=TAUGID(i,klev-l+1,k)
266     s    -TAUGID(i,klev-l+1-1,k)
267
268          if(l.eq.klev)
269     s    t_khvd(i,l)=TAUGID(i,klev-l+1,k)
270
271         t_khvd(i,l)=t_khvd(i,l)/(zzlev(i,l+1)-zzlev(i,l))
272         enddo
273         enddo
274         write(str1,'(i2.2)') k
275      zx_tmp_fi3d(1:klon,1:klev)=t_khvd(1:klon,1:klev)
276      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
[119]277      CALL histwrite(nid_mth,"kgi"//str1,itau_w,zx_tmp_3d,
[106]278     .                                   iim*jjmp1*klev,ndex3d)
279       enddo      ! fin boucle NSPECI
280
[3]281      ENDIF !lev_histmth.GE.3
282c
283c-------------------------------------------------------
284      IF(lev_histmth.GE.4) THEN
285c
286      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d)
[97]287      CALL histwrite(nid_mth,"dtdyn",itau_w,zx_tmp_3d,
[3]288     .                                   iim*jjmp1*klev,ndex3d)
289c
290      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d)
[97]291      CALL histwrite(nid_mth,"dtphy",itau_w,zx_tmp_3d,
[3]292     .                                   iim*jjmp1*klev,ndex3d)
293c K/s
294      zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)
295      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
[97]296      CALL histwrite(nid_mth,"dtvdf",itau_w,zx_tmp_3d,
[3]297     .                                   iim*jjmp1*klev,ndex3d)
298c
299c K/s
300      zx_tmp_fi3d(1:klon,1:klev)=d_t_ajs(1:klon,1:klev)
301      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
[97]302      CALL histwrite(nid_mth,"dtajs",itau_w,zx_tmp_3d,
[3]303     .                                   iim*jjmp1*klev,ndex3d)
304c
305c K/s
306      zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)
307      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
[97]308      CALL histwrite(nid_mth,"dtswr",itau_w,zx_tmp_3d,
[3]309     .                                   iim*jjmp1*klev,ndex3d)
310c
311c K/s     
312      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)
313      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
[97]314      CALL histwrite(nid_mth,"dtlwr",itau_w,zx_tmp_3d,
[3]315     .                                   iim*jjmp1*klev,ndex3d)
316c K/s     
317c     zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)
318c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
[97]319c     CALL histwrite(nid_mth,"dtec",itau_w,zx_tmp_3d,
[3]320c    .                                   iim*jjmp1*klev,ndex3d)
321c
322      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_vdf, zx_tmp_3d)
[97]323      CALL histwrite(nid_mth,"duvdf",itau_w,zx_tmp_3d,
[3]324     .                                   iim*jjmp1*klev,ndex3d)
325c
326      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_dyn, zx_tmp_3d)
[97]327      CALL histwrite(nid_mth,"dudyn",itau_w,zx_tmp_3d,
[3]328     .                                   iim*jjmp1*klev,ndex3d)
329c
330c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_vdf, zx_tmp_3d)
[97]331c     CALL histwrite(nid_mth,"dvvdf",itau_w,zx_tmp_3d,
[3]332c    .                                   iim*jjmp1*klev,ndex3d)
333c
334      ENDIF !lev_histmth.GE.4
335c
336c-------------------------------------------------------
337      IF(lev_histmth.GE.5) THEN
338c
339c
340c      CALL gr_fi_ecrit(1, klon,iim,jjmp1, fluxu , zx_tmp_2d)
341c      CALL histwrite(nid_mth,"taux_",itau_w,
[97]342c    $      zx_tmp_2d,iim*jjmp1,ndex2d) 
[3]343c     
344c      CALL gr_fi_ecrit(1, klon,iim,jjmp1, fluxv , zx_tmp_2d)
345c      CALL histwrite(nid_mth,"tauy_",itau_w,
[97]346c    $      zx_tmp_2d,iim*jjmp1,ndex2d)
[3]347c
348c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
[97]349c     CALL histwrite(nid_mth,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
[3]350c
351c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
[97]352c     CALL histwrite(nid_mth,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
[3]353c
354      ENDIF !lev_histmth.GE.5
355c-------------------------------------------------------
356c
357      if (ok_sync) then
358        call histsync(nid_mth)
359      endif
360
361      ENDIF
Note: See TracBrowser for help on using the repository browser.