Changeset 610 for LMDZ4


Ignore:
Timestamp:
Mar 24, 2005, 4:45:53 PM (20 years ago)
Author:
Laurent Fairhead
Message:

Probleme au moment de la synchro avec LOOP
LF

Location:
LMDZ4
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/IPSL-CM4_IPCC_patches/libf/phylmd/write_histhf.h

    r599 r610  
    171171
    172172      endif
    173       if (ok_hf) then
    174 
    175 c   Comprendre comment marche el i=nint(zout/zsto)
    176 c
    177 c     print*,'ACRITURE HF !!! ACRITURE HF !!! ACRITURE HF !!! '
    178       ndex2d = 0
    179       ndex3d = 0
    180 c
    181       zsto = dtime
    182       zout = dtime * ecrit_hf
    183       itau_w = itau_phy + itap
    184 c
    185       IF(lev_histhf.GE.1) THEN
    186 c
    187 c     i = NINT(zout/zsto)
    188 c     CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)
    189 c     CALL histwrite(nid_hf,"phis",i,zx_tmp_2d,iim*jjmp1,ndex2d)
    190 c
    191 c     i = NINT(zout/zsto)
    192 c     CALL gr_fi_ecrit(1,klon,iim,jjmp1,paire,zx_tmp_2d)
    193 c     CALL histwrite(nid_hf,"aire",i,zx_tmp_2d,iim*jjmp1,ndex2d)
    194 C
    195       CALL gr_fi_ecrit(1, klon,iim,jjmp1, paire_ter, zx_tmp_2d)
    196       CALL histwrite(nid_hf,"aireTER",itau_w,
    197      $      zx_tmp_2d,iim*jjmp1,ndex2d)
    198 c
    199       DO i=1, klon
    200        zx_tmp_fi2d(i)=pctsrf(i,is_ter)+pctsrf(i,is_lic)
    201       ENDDO
    202 c
    203       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    204       CALL histwrite(nid_hf,"contfracATM",itau_w,
    205      $      zx_tmp_2d,iim*jjmp1,ndex2d)
    206 c
    207       CALL gr_fi_ecrit(1,klon,iim,jjmp1,pctsrf_new(:,is_ter),zx_tmp_2d)
    208       CALL histwrite(nid_hf,"contfracOR",itau_w,
    209      $      zx_tmp_2d,iim*jjmp1,ndex2d)
    210 c
    211       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d)
    212       CALL histwrite(nid_hf,"t2m",itau_w,zx_tmp_2d,iim*jjmp1,
    213      .               ndex2d)
    214 c
    215       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d)
    216       CALL histwrite(nid_hf,"q2m",itau_w,zx_tmp_2d,iim*jjmp1,
    217      .               ndex2d)
    218 c
    219       DO i = 1, klon
    220          zx_tmp_fi2d(i) = paprs(i,1)
    221       ENDDO
    222       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    223       CALL histwrite(nid_hf,"psol",itau_w,zx_tmp_2d,iim*jjmp1,
    224      .               ndex2d)
    225 c
    226       DO i = 1, klon
    227          zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
    228       ENDDO
    229       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    230       CALL histwrite(nid_hf,"rain",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    231 c
    232 c ENSEMBLES BEG
    233       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)
    234       CALL histwrite(nid_hf,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    235 c
    236       CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)
    237       CALL histwrite(nid_hf,"slp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    238 c
    239       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d)
    240       CALL histwrite(nid_hf,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    241 c
    242       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d)
    243       CALL histwrite(nid_hf,"v10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    244 c
    245       DO i=1, klon
    246        zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
    247       ENDDO
    248       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    249       CALL histwrite(nid_hf,"wind10m",itau_w,zx_tmp_2d,
    250      $     iim*jjmp1,ndex2d)
    251 c
    252       DO k=1, nlevENS
    253       IF(clev(k).EQ."500") THEN
    254       CALL gr_fi_ecrit(1, klon,iim,jjmp1, philev(:,k),zx_tmp_2d)
    255       CALL histwrite(nid_hf,"phi"//clev(k),itau_w,zx_tmp_2d,
    256      $       iim*jjmp1,ndex2d)
    257       ENDIF !clev(k).EQ."500"
    258       ENDDO
    259 c
    260       ENDIF !lev_histhf.GE.1
    261 c
    262       IF(lev_histhf.GE.2) THEN
    263 c
    264       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d)
    265       CALL histwrite(nid_hf,"cldt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    266 c
    267 c -- LOOP
    268       zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, is_ter)
    269       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    270       CALL histwrite(nid_hf,"SWnetOR",itau_w,
    271      $     zx_tmp_2d,iim*jjmp1,ndex2d)
    272 c
    273       zx_tmp_fi2d(1:klon) = solsw(1:klon)/(1.-albsol(1:klon))
    274       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    275       CALL histwrite(nid_hf,"SWdownOR",itau_w,
    276      $     zx_tmp_2d,iim*jjmp1,ndex2d)
    277 c -- LOOP
    278 c
    279       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
    280       CALL histwrite(nid_hf,"LWdownOR",itau_w,zx_tmp_2d,iim*jjmp1,
    281      $     ndex2d)
    282 c
    283 c
    284       ENDIF !lev_histhf.GE.2
    285 c
    286       IF(lev_histhf.GE.3) THEN
    287 c
    288       DO k=1, nlevENS
    289 c
    290       CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlev(:,k),zx_tmp_2d)
    291       CALL histwrite(nid_hf,"t"//clev(k),itau_w,zx_tmp_2d,
    292      $       iim*jjmp1,ndex2d)
    293 c
    294       IF(clev(k).NE."500") THEN !clev(k).NE."500"
    295       CALL gr_fi_ecrit(1, klon,iim,jjmp1, philev(:,k),zx_tmp_2d)
    296       CALL histwrite(nid_hf,"phi"//clev(k),itau_w,zx_tmp_2d,
    297      $       iim*jjmp1,ndex2d)
    298       ENDIF !clev(k).NE."500"
    299 c
    300       CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlev(:,k),zx_tmp_2d)
    301       CALL histwrite(nid_hf,"q"//clev(k),itau_w,zx_tmp_2d,
    302      $       iim*jjmp1,ndex2d)
    303 c
    304       IF(1.EQ.0) THEN
    305       CALL gr_fi_ecrit(1, klon,iim,jjmp1, rhlev(:,k),zx_tmp_2d)
    306       CALL histwrite(nid_hf,"rh"//clev(k),itau_w,zx_tmp_2d,
    307      $       iim*jjmp1,ndex2d)
    308       ENDIF !1.EQ.0
    309 c
    310       CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulev(:,k),zx_tmp_2d)
    311       CALL histwrite(nid_hf,"u"//clev(k),itau_w,zx_tmp_2d,
    312      $       iim*jjmp1,ndex2d)
    313 c
    314       CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlev(:,k),zx_tmp_2d)
    315       CALL histwrite(nid_hf,"v"//clev(k),itau_w,zx_tmp_2d,
    316      $       iim*jjmp1,ndex2d)
    317 c
    318       ENDDO !nlevENS
    319 c
    320       IF(1.EQ.0) THEN
    321       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
    322       CALL histwrite(nid_hf,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    323 c
    324       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
    325       CALL histwrite(nid_hf,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    326       ENDIF !(1.EQ.0) THEN
    327 c
    328       ENDIF !lev_histhf.GE.3
    329 c
    330       IF(lev_histhf.GE.4) THEN
    331 c
    332 #define histhf3d
    333 #ifdef histhf3d
    334 #include "write_histhf3d.h"
    335 #endif
    336 c
    337       ENDIF !lev_histhf.GE.4
    338 c
    339       if (ok_sync) then
    340         call histsync(nid_hf)
    341       endif
    342 
    343       endif
  • LMDZ4/trunk/libf/phylmd/write_histhf.h

    r594 r610  
    171171
    172172      endif
    173 !
    174 ! $Header$
    175 !
    176       if (ok_hf) then
    177 
    178 c   Comprendre comment marche el i=nint(zout/zsto)
    179 c
    180 c     print*,'ACRITURE HF !!! ACRITURE HF !!! ACRITURE HF !!! '
    181       ndex2d = 0
    182       ndex3d = 0
    183 c
    184       zsto = dtime
    185       zout = dtime * ecrit_hf
    186       itau_w = itau_phy + itap
    187 c
    188       IF(lev_histhf.GE.1) THEN
    189 c
    190 c     i = NINT(zout/zsto)
    191 c     CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)
    192 c     CALL histwrite(nid_hf,"phis",i,zx_tmp_2d,iim*jjmp1,ndex2d)
    193 c
    194 c     i = NINT(zout/zsto)
    195 c     CALL gr_fi_ecrit(1,klon,iim,jjmp1,paire,zx_tmp_2d)
    196 c     CALL histwrite(nid_hf,"aire",i,zx_tmp_2d,iim*jjmp1,ndex2d)
    197 C
    198       CALL gr_fi_ecrit(1, klon,iim,jjmp1, paire_ter, zx_tmp_2d)
    199       CALL histwrite(nid_hf,"aireTER",itau_w,
    200      $      zx_tmp_2d,iim*jjmp1,ndex2d)
    201 c
    202       DO i=1, klon
    203        zx_tmp_fi2d(i)=pctsrf(i,is_ter)+pctsrf(i,is_lic)
    204       ENDDO
    205 c
    206       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    207       CALL histwrite(nid_hf,"contfracATM",itau_w,
    208      $      zx_tmp_2d,iim*jjmp1,ndex2d)
    209 c
    210       CALL gr_fi_ecrit(1,klon,iim,jjmp1,pctsrf_new(:,is_ter),zx_tmp_2d)
    211       CALL histwrite(nid_hf,"contfracOR",itau_w,
    212      $      zx_tmp_2d,iim*jjmp1,ndex2d)
    213 c
    214       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d)
    215       CALL histwrite(nid_hf,"t2m",itau_w,zx_tmp_2d,iim*jjmp1,
    216      .               ndex2d)
    217 c
    218       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d)
    219       CALL histwrite(nid_hf,"q2m",itau_w,zx_tmp_2d,iim*jjmp1,
    220      .               ndex2d)
    221 c
    222       DO i = 1, klon
    223          zx_tmp_fi2d(i) = paprs(i,1)
    224       ENDDO
    225       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    226       CALL histwrite(nid_hf,"psol",itau_w,zx_tmp_2d,iim*jjmp1,
    227      .               ndex2d)
    228 c
    229       DO i = 1, klon
    230          zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
    231       ENDDO
    232       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    233       CALL histwrite(nid_hf,"rain",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    234 c
    235 c ENSEMBLES BEG
    236       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)
    237       CALL histwrite(nid_hf,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    238 c
    239       CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)
    240       CALL histwrite(nid_hf,"slp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    241 c
    242       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d)
    243       CALL histwrite(nid_hf,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    244 c
    245       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d)
    246       CALL histwrite(nid_hf,"v10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    247 c
    248       DO i=1, klon
    249        zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
    250       ENDDO
    251       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    252       CALL histwrite(nid_hf,"wind10m",itau_w,zx_tmp_2d,
    253      $     iim*jjmp1,ndex2d)
    254 c
    255       DO k=1, nlevENS
    256       IF(clev(k).EQ."500") THEN
    257       CALL gr_fi_ecrit(1, klon,iim,jjmp1, philev(:,k),zx_tmp_2d)
    258       CALL histwrite(nid_hf,"phi"//clev(k),itau_w,zx_tmp_2d,
    259      $       iim*jjmp1,ndex2d)
    260       ENDIF !clev(k).EQ."500"
    261       ENDDO
    262 c
    263       ENDIF !lev_histhf.GE.1
    264 c
    265       IF(lev_histhf.GE.2) THEN
    266 c
    267       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d)
    268       CALL histwrite(nid_hf,"cldt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    269 c
    270 c -- LOOP
    271       zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, is_ter)
    272       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    273       CALL histwrite(nid_hf,"SWnetOR",itau_w,
    274      $     zx_tmp_2d,iim*jjmp1,ndex2d)
    275 c
    276       zx_tmp_fi2d(1:klon) = solsw(1:klon)/(1.-albsol(1:klon))
    277       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    278       CALL histwrite(nid_hf,"SWdownOR",itau_w,
    279      $     zx_tmp_2d,iim*jjmp1,ndex2d)
    280 c -- LOOP
    281 c
    282       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
    283       CALL histwrite(nid_hf,"LWdownOR",itau_w,zx_tmp_2d,iim*jjmp1,
    284      $     ndex2d)
    285 c
    286 c
    287       ENDIF !lev_histhf.GE.2
    288 c
    289       IF(lev_histhf.GE.3) THEN
    290 c
    291       DO k=1, nlevENS
    292 c
    293       CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlev(:,k),zx_tmp_2d)
    294       CALL histwrite(nid_hf,"t"//clev(k),itau_w,zx_tmp_2d,
    295      $       iim*jjmp1,ndex2d)
    296 c
    297       IF(clev(k).NE."500") THEN !clev(k).NE."500"
    298       CALL gr_fi_ecrit(1, klon,iim,jjmp1, philev(:,k),zx_tmp_2d)
    299       CALL histwrite(nid_hf,"phi"//clev(k),itau_w,zx_tmp_2d,
    300      $       iim*jjmp1,ndex2d)
    301       ENDIF !clev(k).NE."500"
    302 c
    303       CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlev(:,k),zx_tmp_2d)
    304       CALL histwrite(nid_hf,"q"//clev(k),itau_w,zx_tmp_2d,
    305      $       iim*jjmp1,ndex2d)
    306 c
    307       IF(1.EQ.0) THEN
    308       CALL gr_fi_ecrit(1, klon,iim,jjmp1, rhlev(:,k),zx_tmp_2d)
    309       CALL histwrite(nid_hf,"rh"//clev(k),itau_w,zx_tmp_2d,
    310      $       iim*jjmp1,ndex2d)
    311       ENDIF !1.EQ.0
    312 c
    313       CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulev(:,k),zx_tmp_2d)
    314       CALL histwrite(nid_hf,"u"//clev(k),itau_w,zx_tmp_2d,
    315      $       iim*jjmp1,ndex2d)
    316 c
    317       CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlev(:,k),zx_tmp_2d)
    318       CALL histwrite(nid_hf,"v"//clev(k),itau_w,zx_tmp_2d,
    319      $       iim*jjmp1,ndex2d)
    320 c
    321       ENDDO !nlevENS
    322 c
    323       IF(1.EQ.0) THEN
    324       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
    325       CALL histwrite(nid_hf,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    326 c
    327       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
    328       CALL histwrite(nid_hf,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    329       ENDIF !(1.EQ.0) THEN
    330 c
    331       ENDIF !lev_histhf.GE.3
    332 c
    333       IF(lev_histhf.GE.4) THEN
    334 c
    335 #define histhf3d
    336 #ifdef histhf3d
    337 #include "write_histhf3d.h"
    338 #endif
    339 c
    340       ENDIF !lev_histhf.GE.4
    341 c
    342       if (ok_sync) then
    343         call histsync(nid_hf)
    344       endif
    345 
    346       endif
Note: See TracChangeset for help on using the changeset viewer.