Ignore:
Timestamp:
May 25, 2005, 3:10:09 PM (19 years ago)
Author:
Laurent Fairhead
Message:

Synchronisation avec tous les diagnostiques de Ionela IM
Inclusion du slab ocean IM
LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/phylmd/write_histhf.h

    r610 r644  
    44      if (ok_hf) then
    55
    6 c   Comprendre comment marche el i=nint(zout/zsto)
    7 c
    8 c     print*,'ACRITURE HF !!! ACRITURE HF !!! ACRITURE HF !!! '
     6c
    97      ndex2d = 0
    108      ndex3d = 0
    119c
    12       zsto = dtime
    13       zout = dtime * ecrit_hf
    1410      itau_w = itau_phy + itap
    1511c
     12      IF(type_run.EQ."CLIM".OR.type_run.EQ."ENSP") THEN
     13c
    1614      IF(lev_histhf.GE.1) THEN
    1715c
    18 c     i = NINT(zout/zsto)
    19 c     CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)
    20 c     CALL histwrite(nid_hf,"phis",i,zx_tmp_2d,iim*jjmp1,ndex2d)
    21 c
    22 c     i = NINT(zout/zsto)
    23 c     CALL gr_fi_ecrit(1,klon,iim,jjmp1,paire,zx_tmp_2d)
    24 c     CALL histwrite(nid_hf,"aire",i,zx_tmp_2d,iim*jjmp1,ndex2d)
    25 C
    2616      CALL gr_fi_ecrit(1, klon,iim,jjmp1, paire_ter, zx_tmp_2d)
    2717      CALL histwrite(nid_hf,"aireTER",itau_w,
     
    5949      ENDDO
    6050      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    61       CALL histwrite(nid_hf,"rain",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     51      CALL histwrite(nid_hf,"precip",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    6252c
    6353c ENSEMBLES BEG
     
    6858      CALL histwrite(nid_hf,"slp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    6959c
     60c
    7061      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d)
    7162      CALL histwrite(nid_hf,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     
    8172     $     iim*jjmp1,ndex2d)
    8273c
    83       DO k=1, nlevENS
    84       IF(clev(k).EQ."500") THEN
    85       CALL gr_fi_ecrit(1, klon,iim,jjmp1, philev(:,k),zx_tmp_2d)
    86       CALL histwrite(nid_hf,"phi"//clev(k),itau_w,zx_tmp_2d,
    87      $       iim*jjmp1,ndex2d)
    88       ENDIF !clev(k).EQ."500"
     74      DO k=1, nlevSTD
     75c
     76c        bb=clevSTD(k)
     77c
     78c        IF(k.GE.2) THEN
     79         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
     80         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
     81c         aa=clevSTD(k)
     82c         bb=aa(1:lnblnk1(aa))
     83c        ENDIF
     84c
     85      IF(bb2.EQ."500") THEN
     86c
     87      CALL gr_fi_ecrit(1, klon,iim,jjmp1, philevSTD(:,k),zx_tmp_2d)
     88      CALL histwrite(nid_hf,"phi"//bb2,itau_w,zx_tmp_2d,
     89     $       iim*jjmp1,ndex2d)
     90      ENDIF !bb2.EQ."500"
    8991      ENDDO
    9092c
     
    9395      IF(lev_histhf.GE.2) THEN
    9496c
    95       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d)
     97cIM 140904 BEG
     98      DO i = 1, klon
     99         zx_tmp_fi2d(i) = cldt(i)*100.
     100      ENDDO
     101cIM 140904 END
     102cIM 140904   CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d)
     103      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    96104      CALL histwrite(nid_hf,"cldt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    97105c
     
    115123      IF(lev_histhf.GE.3) THEN
    116124c
    117       DO k=1, nlevENS
    118 c
    119       CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlev(:,k),zx_tmp_2d)
    120       CALL histwrite(nid_hf,"t"//clev(k),itau_w,zx_tmp_2d,
    121      $       iim*jjmp1,ndex2d)
    122 c
    123       IF(clev(k).NE."500") THEN !clev(k).NE."500"
    124       CALL gr_fi_ecrit(1, klon,iim,jjmp1, philev(:,k),zx_tmp_2d)
    125       CALL histwrite(nid_hf,"phi"//clev(k),itau_w,zx_tmp_2d,
    126      $       iim*jjmp1,ndex2d)
    127       ENDIF !clev(k).NE."500"
    128 c
    129       CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlev(:,k),zx_tmp_2d)
    130       CALL histwrite(nid_hf,"q"//clev(k),itau_w,zx_tmp_2d,
    131      $       iim*jjmp1,ndex2d)
    132 c
    133       IF(1.EQ.0) THEN
    134       CALL gr_fi_ecrit(1, klon,iim,jjmp1, rhlev(:,k),zx_tmp_2d)
    135       CALL histwrite(nid_hf,"rh"//clev(k),itau_w,zx_tmp_2d,
    136      $       iim*jjmp1,ndex2d)
    137       ENDIF !1.EQ.0
    138 c
    139       CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulev(:,k),zx_tmp_2d)
    140       CALL histwrite(nid_hf,"u"//clev(k),itau_w,zx_tmp_2d,
    141      $       iim*jjmp1,ndex2d)
    142 c
    143       CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlev(:,k),zx_tmp_2d)
    144       CALL histwrite(nid_hf,"v"//clev(k),itau_w,zx_tmp_2d,
    145      $       iim*jjmp1,ndex2d)
    146 c
     125      DO k=1, nlevSTD
     126c
     127c        bb=clevSTD(k)
     128c
     129c        IF(k.GE.2) THEN
     130         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
     131         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
     132c         aa=clevSTD(k)
     133c         bb=aa(1:lnblnk1(aa))
     134c        ENDIF
     135c
     136      IF(bb2.EQ."850".OR.bb2.EQ."700".OR.
     137     $   bb2.EQ."500".OR.bb2.EQ."200") THEN
     138c
     139      CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d)
     140      CALL histwrite(nid_hf,"t"//bb2,itau_w,zx_tmp_2d,
     141     $       iim*jjmp1,ndex2d)
     142c
     143      IF(bb2.NE."500") THEN !bb2.NE."500"
     144c
     145      CALL gr_fi_ecrit(1, klon,iim,jjmp1,philevSTD(:,k),zx_tmp_2d)
     146      CALL histwrite(nid_hf,"phi"//bb2,itau_w,zx_tmp_2d,
     147     $       iim*jjmp1,ndex2d)
     148      ENDIF !bb2.NE."500"
     149c
     150      CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlevSTD(:,k),zx_tmp_2d)
     151      CALL histwrite(nid_hf,"q"//bb2,itau_w,zx_tmp_2d,
     152     $       iim*jjmp1,ndex2d)
     153c
     154      CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d)
     155      CALL histwrite(nid_hf,"u"//bb2,itau_w,zx_tmp_2d,
     156     $       iim*jjmp1,ndex2d)
     157c
     158      CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d)
     159      CALL histwrite(nid_hf,"v"//bb2,itau_w,zx_tmp_2d,
     160     $       iim*jjmp1,ndex2d)
     161c
     162      ENDIF !bb2.EQ."850".OR.bb2.EQ."700"
    147163      ENDDO !nlevENS
    148164c
     
    159175      IF(lev_histhf.GE.4) THEN
    160176c
     177#undef histhf3d
    161178#define histhf3d
    162179#ifdef histhf3d
     
    166183      ENDIF !lev_histhf.GE.4
    167184c
    168       if (ok_sync) then
     185      ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN
     186c
     187      IF(lev_histhf.GE.1) THEN
     188c
     189      DO k=1, nlevSTD
     190c        bb=clevSTD(k)
     191c
     192c        IF(k.GE.2) THEN
     193         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
     194         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
     195c         aa=clevSTD(k)
     196c         bb=aa(1:lnblnk1(aa))
     197c        ENDIF
     198c
     199        IF(bb2.EQ."850".or.bb2.EQ."200") THEN
     200c
     201        CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d)
     202        CALL histwrite(nid_hf,"u"//bb2,itau_w,zx_tmp_2d,
     203     $       iim*jjmp1,ndex2d)
     204c
     205        CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d)
     206        CALL histwrite(nid_hf,"v"//bb2,itau_w,zx_tmp_2d,
     207     $       iim*jjmp1,ndex2d)
     208c
     209        ENDIF !bb2.EQ."850".or.bb2.EQ."200"
     210c
     211      ENDDO !nlevSTD
     212c
     213      CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
     214      CALL histwrite(nid_hf,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     215c
     216      DO i = 1, klon
     217         zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
     218      ENDDO
     219      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     220      CALL histwrite(nid_hf,"precip",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     221c
     222      CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)
     223      CALL histwrite(nid_hf,"slp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     224c
     225cIM 280504 BEG
     226      ENDIF !(lev_histhf.GE.1) THEN
     227c
     228      IF(lev_histhf.GE.2) THEN
     229c
     230       DO k=1, nlevSTD
     231c
     232c        bb=clevSTD(k)
     233c
     234c        IF(k.GE.2) THEN
     235         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
     236         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
     237c         aa=clevSTD(k)
     238c         bb=aa(1:lnblnk1(aa))
     239c        ENDIF
     240c
     241        IF(bb2.EQ."850".or.bb2.EQ."500") THEN
     242c
     243         CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d)
     244         CALL histwrite(nid_hf,"t"//bb2,itau_w,zx_tmp_2d,
     245     $       iim*jjmp1,ndex2d)
     246c
     247         CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlevSTD(:,k),zx_tmp_2d)
     248         CALL histwrite(nid_hf,"q"//bb2,itau_w,zx_tmp_2d,
     249     $       iim*jjmp1,ndex2d)
     250c
     251        ENDIF !bb2.EQ."850".or.bb2.EQ."500"
     252c
     253        IF(bb2.EQ."500") THEN
     254c
     255         CALL gr_fi_ecrit(1, klon,iim,jjmp1, philevSTD(:,k),zx_tmp_2d)
     256         CALL histwrite(nid_hf,"phi"//bb2,itau_w,zx_tmp_2d,
     257     $       iim*jjmp1,ndex2d)
     258c
     259        CALL gr_fi_ecrit(1, klon,iim,jjmp1, wlevSTD(:,k),zx_tmp_2d)
     260        CALL histwrite(nid_hf,"w"//bb2,itau_w,zx_tmp_2d,
     261     $       iim*jjmp1,ndex2d)
     262c
     263        ENDIF !bb2.EQ."500"
     264c
     265        IF(bb3.EQ."50") THEN
     266c
     267         CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d)
     268         CALL histwrite(nid_hf,"t"//bb3,itau_w,zx_tmp_2d,
     269     $       iim*jjmp1,ndex2d)
     270c
     271        CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d)
     272        CALL histwrite(nid_hf,"u"//bb3,itau_w,zx_tmp_2d,
     273     $       iim*jjmp1,ndex2d)
     274c
     275        CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d)
     276        CALL histwrite(nid_hf,"v"//bb3,itau_w,zx_tmp_2d,
     277     $       iim*jjmp1,ndex2d)
     278c
     279        ENDIF !bb3.EQ."50"
     280c
     281       ENDDO !k=1, nlevSTD
     282c
     283      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d)
     284      CALL histwrite(nid_hf,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     285c
     286      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d)
     287      CALL histwrite(nid_hf,"v10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     288c
     289      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d)
     290      CALL histwrite(nid_hf,"t2m",itau_w,zx_tmp_2d,iim*jjmp1,
     291     $               ndex2d)
     292c
     293      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d)
     294      CALL histwrite(nid_hf,"q2m",itau_w,zx_tmp_2d,iim*jjmp1,
     295     $               ndex2d)
     296c
     297      DO i = 1, klon
     298         zx_tmp_fi2d(i) = paprs(i,1)
     299      ENDDO
     300      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     301      CALL histwrite(nid_hf,"psol",itau_w,zx_tmp_2d,iim*jjmp1,
     302     $               ndex2d)
     303c
     304cIM 140904 BEG
     305      DO i = 1, klon
     306         zx_tmp_fi2d(i) = cldt(i)*100.
     307      ENDDO
     308cIM 140904 END
     309cIM 140904   CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d)
     310      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     311      CALL histwrite(nid_hf,"cldt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     312c
     313      zx_tmp_fi2d(1 : klon) = zxfluxu(1 : klon, 1)
     314      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     315      CALL histwrite(nid_hf,"taux",itau_w,
     316     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     317C
     318      zx_tmp_fi2d(1 : klon) = zxfluxv(1 : klon, 1)
     319      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     320      CALL histwrite(nid_hf,"tauy",itau_w,
     321     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     322c
     323      CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d)
     324      CALL histwrite(nid_hf,"prw",itau_w,zx_tmp_2d,
     325     $               iim*jjmp1,ndex2d)
     326c
     327      zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
     328      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     329      CALL histwrite(nid_hf,"sens",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     330c
     331      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfluxlat,zx_tmp_2d)
     332      CALL histwrite(nid_hf,"flat",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     333c
     334c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d)
     335c     CALL histwrite(nid_hf,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1,
     336c    $               ndex2d)
     337c
     338      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 )
     339      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     340      CALL histwrite(nid_hf, "SWdnSFC",itau_w,zx_tmp_2d,
     341     $                               iim*jjmp1,ndex2d)
     342c
     343      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 )
     344      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     345      CALL histwrite(nid_hf, "SWupSFC",itau_w,zx_tmp_2d,
     346     $                               iim*jjmp1,ndex2d)
     347c
     348      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
     349      CALL histwrite(nid_hf,"LWdnSFC",itau_w,zx_tmp_2d,iim*jjmp1,
     350     $               ndex2d)
     351c
     352cIM 090904   zx_tmp_fi2d(1:klon)=sollw(1:klon)+sollwdown(1:klon)
     353cIM 130904   zx_tmp_fi2d(1:klon)=sollw(1:klon)-sollwdown(1:klon)
     354      zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon)
     355      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     356      CALL histwrite(nid_hf,"LWupSFC",itau_w,zx_tmp_2d,iim*jjmp1,
     357     $               ndex2d)                   
     358c
     359      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 )
     360      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     361      CALL histwrite(nid_hf, "SWdnTOA",itau_w,zx_tmp_2d,
     362     $                               iim*jjmp1,ndex2d)
     363c
     364      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 )
     365      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     366      CALL histwrite(nid_hf, "SWupTOA",itau_w,zx_tmp_2d,
     367     $                               iim*jjmp1,ndex2d)
     368c
     369      CALL gr_fi_ecrit(nbteta,klon,iim,jjmp1,PVteta,zx_tmp_3dte)
     370      DO k=1, nbteta
     371       CALL histwrite(nid_hf,"PV"//ctetaSTD(k),
     372     .      itau_w,zx_tmp_3dte(:,:,k),iim*jjmp1,ndex2d)
     373      ENDDO !k=1, nbteta
     374c
     375c
     376c planetary boundary layer height
     377c
     378c     ENDIF !1.EQ.0
     379c
     380      ENDIF !(lev_histhf.GE.2) THEN
     381cIM 280504 END
     382c
     383      ENDIF !type_run
     384c
     385      IF (ok_sync) THEN
    169386        call histsync(nid_hf)
    170       endif
     387      ENDIF
    171388
    172       endif
     389      ENDIF
Note: See TracChangeset for help on using the changeset viewer.