Changeset 644 for LMDZ4


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

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

Location:
LMDZ4/trunk
Files:
24 added
38 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/dyn3d/advx.F

    r524 r644  
    106106         DO j = 1,jjp1
    107107            DO i = 1,iim
    108                sqi = sqi + S0(i,j,l,9)
     108cIM 240305            sqi = sqi + S0(i,j,l,9)
     109               sqi = sqi + S0(i,j,l,ntra)
    109110            ENDDO
    110111         ENDDO
     
    483484        DO j = 1, jjp1
    484485          DO i = 1, iim
    485              sqf = sqf + S0(i,j,l,9)
     486cIM 240405          sqf = sqf + S0(i,j,l,9)
     487             sqf = sqf + S0(i,j,l,ntra)
    486488          END DO 
    487489        END DO
  • LMDZ4/trunk/libf/dyn3d/advz.F

    r524 r644  
    105105         DO j = 1,jjp1
    106106            DO i = 1,iim
    107                sqi = sqi + S0(i,j,l,9)
     107cIM 240305            sqi = sqi + S0(i,j,l,9)
     108               sqi = sqi + S0(i,j,l,ntra)
    108109            ENDDO
    109110         ENDDO
     
    307308         DO j = 1,jjp1
    308309            DO i = 1,iim
    309                sqf = sqf + S0(i,j,l,9)
     310cIM 240305            sqf = sqf + S0(i,j,l,9)
     311               sqf = sqf + S0(i,j,l,ntra)
    310312            ENDDO
    311313         ENDDO
  • LMDZ4/trunk/libf/dyn3d/calfis.F

    r616 r644  
    162162      REAL zsinbis(iim),zcosbis(iim),z1bis(iim)
    163163      REAL unskap, pksurcp
    164 
     164c
     165cIM diagnostique PVteta, Amip2
     166      INTEGER ntetaSTD
     167      PARAMETER(ntetaSTD=3)
     168      REAL rtetaSTD(ntetaSTD)
     169      DATA rtetaSTD/350., 380., 405./
     170      REAL PVteta(ngridmx,ntetaSTD)
     171c
    165172#ifdef INCA
    166173      REAL flxw(iip1,jjp1,llm)
     
    430437
    431438      ENDDO
    432 
    433 
     439c
     440cIM calcul PV a teta=350, 380, 405K
     441      CALL PVtheta(ngridmx,llm,pucov,pvcov,pteta,
     442     $           ztfi,zplay,zplev,
     443     $           ntetaSTD,rtetaSTD,PVteta)
     444c
    434445#ifdef INCA
    435446      CALL gr_dyn_fi(llm,iip1,jjp1,ngridmx,flxw,flxwfi)
     
    468479     .             zdtfi,
    469480     .             zdqfi,
    470      .             zdpsrf)
     481     .             zdpsrf,
     482cIM diagnostique PVteta, Amip2         
     483     .             pducov,
     484     .             PVteta)
    471485
    472486500   CONTINUE
  • LMDZ4/trunk/libf/dyn3d/etat0_netcdf.F

    r528 r644  
    4343      REAL :: radsol(klon),rain_fall(klon), snow_fall(klon)
    4444      REAL :: solsw(klon), sollw(klon), fder(klon)
    45       REAL :: deltat(klon), frugs(klon,nbsrf), agesno(klon,nbsrf)
     45cIM "slab" ocean
     46      REAL :: tslab(klon), seaice(klon)
     47      REAL :: frugs(klon,nbsrf), agesno(klon,nbsrf)
    4648      REAL :: rugmer(klon)
    4749      REAL :: zmea(iip1*jjp1), zstd(iip1*jjp1)
     
    365367     .    jjm, rlonu, rlatv , interbar )
    366368      !
    367       varname = 'deltat'
    368       deltat(:) = 0.0
    369       CALL startget(varname,iip1,jjp1,rlonv,rlatu,klon,deltat,0.0,
     369cIM "slab" ocean
     370      varname = 'tslab'
     371      tslab(:) = 0.0
     372      CALL startget(varname,iip1,jjp1,rlonv,rlatu,klon,tslab,0.0,
     373     .     jjm, rlonu, rlatv , interbar )
     374c
     375      varname = 'seaice'
     376      seaice(:) = 0.0
     377      CALL startget(varname,iip1,jjp1,rlonv,rlatu,klon,seaice,0.0,
    370378     .     jjm, rlonu, rlatv , interbar )
    371379      !
     
    651659      q_ancien = 0.
    652660      agesno = 0.
    653       deltat = 0.
     661cIM "slab" ocean
     662      tslab(1:klon) = tsolsrf(1:klon,is_oce)
     663      seaice = 0. !kg m-2
     664c
    654665      frugs(1:klon,is_oce) = rugmer(1:klon)
    655666      frugs(1:klon,is_ter) = MAX(1.0e-05, zstd(1:klon)*zsig(1:klon)/2.0)
     
    664675cIM   call phyredem("startphy.nc",phystep,radpas, co2_ppm, solaire,
    665676      call phyredem("startphy.nc",phystep,radpas,
    666      $    latfi, lonfi, pctsrf, tsolsrf, tsoil, deltat, qsolsrf, qsol,
     677     $    latfi, lonfi, pctsrf, tsolsrf, tsoil, tslab, seaice,
     678     $    qsolsrf, qsol,
    667679     $    snsrf,
    668680     $    albe, alblw, evap, rain_fall, snow_fall, solsw, sollw, fder,
  • LMDZ4/trunk/libf/dyn3d/guide.F

    r617 r644  
    8181      INTEGER step_rea,count_no_rea
    8282
     83cIM 180305   real aire_min,aire_max
    8384      integer ilon,ilat
    8485      real factt,ztau(ip1jmp1)
  • LMDZ4/trunk/libf/dyn3d/startvar.F

    r533 r644  
    521521            CASE ('snow')
    522522                  champ(:) = 0.0
    523             CASE ('deltat')
     523cIM "slab" ocean
     524            CASE ('tslab')
     525                   champ(:) = 0.0
     526            CASE ('seaice')
    524527                  champ(:) = 0.0
    525528            CASE ('rugmer')
  • LMDZ4/trunk/libf/phylmd/clesphys.h

    r524 r644  
    2222cIM lev_histmth : niveau sorties mensuelles
    2323       INTEGER lev_histhf, lev_histday, lev_histmth
     24       CHARACTER*4 type_run
     25       LOGICAL ok_isccp, ok_regdyn
     26       REAL lonmin_ins, lonmax_ins, latmin_ins, latmax_ins
     27       INTEGER ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day
     28       INTEGER ecrit_mth, ecrit_tra, ecrit_reg
    2429
    2530       COMMON/clesphys/cycle_diurne, soil_model, new_oliq,
     
    2934     ,     , top_height, overlap, cdmmax, cdhmax, ksta, ksta_ter
    3035     ,     , ok_kzmin, lev_histhf, lev_histday, lev_histmth
     36     ,     , type_run, ok_isccp, ok_regdyn
     37     ,     , lonmin_ins, lonmax_ins, latmin_ins, latmax_ins
     38     ,     , ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day
     39     ,     , ecrit_mth, ecrit_tra, ecrit_reg
  • LMDZ4/trunk/libf/phylmd/clesphys.inc

    r524 r644  
    1515       LOGICAL :: ok_kzmin
    1616       INTEGER :: lev_histhf, lev_histday, lev_histmth
     17       CHARACTER (len=4) type_run
     18       LOGICAL ok_isccp, ok_regdyn
     19       REAL lonmin_ins, lonmax_ins, latmin_ins, latmax_ins
     20       INTEGER ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day
     21       INTEGER ecrit_mth, ecrit_tra, ecrit_reg
    1722
    1823       COMMON/clesphys/cycle_diurne, soil_model, new_oliq, &
     
    2126     &     , CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt &
    2227     &     , top_height, overlap, cdmmax, cdhmax, ksta, ksta_ter &
    23      &     , ok_kzmin, lev_histhf, lev_histday, lev_histmth
     28     &     , ok_kzmin, lev_histhf, lev_histday, lev_histmth &
     29     &     , type_run, ok_isccp, ok_regdyn &
     30     &     , lonmin_ins, lonmax_ins, latmin_ins, latmax_ins &
     31     &     , ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day &
     32     &     , ecrit_mth, ecrit_tra, ecrit_reg
  • LMDZ4/trunk/libf/phylmd/clmain.F

    r590 r644  
    1010     .                  soil_model,cdmmax, cdhmax,
    1111     .                  ksta, ksta_ter, ok_kzmin, ftsoil,qsol,
    12      .                  paprs,pplay,radsol,snow,qsurf,evap,albe,alblw,
     12cIM BAD .                  paprs,pplay,radsol,snow,qsurf,evap,albe,alblw,
     13     .                  paprs,pplay,snow,qsurf,evap,albe,alblw,
    1314     .                  fluxlat,
    1415     .                  rain_f, snow_f, solsw, sollw, sollwdown, fder,
     
    2021     .                  dflux_t,dflux_q,
    2122     .                  zcoefh,zu1,zv1, t2m, q2m, u10m, v10m,
    22      .                  fqcalving,ffonte, run_off_lic_0)
     23cIM cf. AM : pbl
     24     .                  pblh,capCL,oliqCL,cteiCL,pblT,
     25     .                  therm,trmb1,trmb2,trmb3,plcl,
     26     .                  fqcalving,ffonte, run_off_lic_0,
     27cIM "slab" ocean
     28     .                  flux_o, flux_g, tslab, seaice)
    2329cAA .                  itr, tr, flux_surf, d_tr)
    2430cAA REM:
     
    7278c dflux_t derive du flux sensible
    7379c dflux_q derive du flux latent
     80cIM "slab" ocean
     81c flux_g---output-R-  flux glace (pour OCEAN='slab  ')
     82c flux_o---output-R-  flux ocean (pour OCEAN='slab  ')
     83c tslab-in/output-R temperature du slab ocean (en Kelvin) ! uniqmnt pour slab
     84c seaice---output-R-  glace de mer (kg/m2) (pour OCEAN='slab  ')
     85ccc
    7486c ffonte----Flux thermique utilise pour fondre la neige
    7587c fqcalving-Flux d'eau "perdue" par la surface et necessaire pour limiter la
     
    8294c flux_surf--input-R- flux de traceurs a la surface
    8395c d_tr-------output-R tendance de traceurs
     96cIM cf. AM : PBL
     97c trmb1-------deep_cape
     98c trmb2--------inhibition
     99c trmb3-------Point Omega
     100c Cape(klon)-------Cape du thermique
     101c EauLiq(klon)-------Eau liqu integr du thermique
     102c ctei(klon)-------Critere d'instab d'entrainmt des nuages de CL
     103c lcl------- Niveau de condensation
     104c pblh------- HCL
     105c pblT------- T au nveau HCL
    84106c======================================================================
    85107#include "dimensions.h"
     
    96118      REAL t(klon,klev), q(klon,klev)
    97119      REAL u(klon,klev), v(klon,klev)
    98       REAL paprs(klon,klev+1), pplay(klon,klev), radsol(klon)
     120cIM 230604 BAD  REAL radsol(klon) ???
     121      REAL paprs(klon,klev+1), pplay(klon,klev)
    99122      REAL rlon(klon), rlat(klon), cufi(klon), cvfi(klon)
    100123      REAL d_t(klon, klev), d_q(klon, klev)
     
    102125      REAL flux_t(klon,klev, nbsrf), flux_q(klon,klev, nbsrf)
    103126      REAL dflux_t(klon), dflux_q(klon)
     127cIM "slab" ocean
     128      REAL flux_o(klon), flux_g(klon)
     129      REAL y_flux_o(klon), y_flux_g(klon)
     130      REAL tslab(klon), ytslab(klon)
     131      REAL seaice(klon), y_seaice(klon)
    104132cIM cf JLD
    105133      REAL y_fqcalving(klon), y_ffonte(klon)
     
    189217      REAL ycoefm0(klon,klev), ycoefh0(klon,klev)
    190218
     219cIM 081204 hcl_Anne ? BEG
    191220      real yzlay(klon,klev),yzlev(klon,klev+1),yteta(klon,klev)
    192221      real ykmm(klon,klev+1),ykmn(klon,klev+1)
     
    194223      real yq2(klon,klev+1),q2(klon,klev+1,nbsrf)
    195224      real q2diag(klon,klev+1)
    196       real yustar(klon),y_cd_m(klon),y_cd_h(klon)
    197 
    198 
    199 
    200 
    201 
     225cIM 081204   real yustar(klon),y_cd_m(klon),y_cd_h(klon)
     226cIM 081204 hcl_Anne ? END
    202227c
    203228#include "YOMCST.h"
     
    241266c
    242267      REAL yt2m(klon), yq2m(klon), yu10m(klon)
     268      REAL yustar(klon)
    243269c -- LOOP
    244270       REAL yu10mx(klon)
     
    247273c -- LOOP
    248274c
     275      REAL yt10m(klon), yq10m(klon)
     276cIM cf. AM : pbl, hbtm2 (Comme les autres diagnostics on cumule ds physic ce qui
     277c   permet de sortir les grdeurs par sous surface)
     278      REAL pblh(klon,nbsrf)
     279      REAL plcl(klon,nbsrf)
     280      REAL capCL(klon,nbsrf)
     281      REAL oliqCL(klon,nbsrf)
     282      REAL cteiCL(klon,nbsrf)
     283      REAL pblT(klon,nbsrf)
     284      REAL therm(klon,nbsrf)
     285      REAL trmb1(klon,nbsrf)
     286      REAL trmb2(klon,nbsrf)
     287      REAL trmb3(klon,nbsrf)
     288      REAL ypblh(klon)
     289      REAL ylcl(klon)
     290      REAL ycapCL(klon)
     291      REAL yoliqCL(klon)
     292      REAL ycteiCL(klon)
     293      REAL ypblT(klon)
     294      REAL ytherm(klon)
     295      REAL ytrmb1(klon)
     296      REAL ytrmb2(klon)
     297      REAL ytrmb3(klon)
     298      REAL y_cd_h(klon), y_cd_m(klon)
     299c     REAL ygamt(klon,2:klev) ! contre-gradient pour temperature
     300c     REAL ygamq(klon,2:klev) ! contre-gradient pour humidite
    249301      REAL uzon(klon), vmer(klon)
    250302      REAL tair1(klon), qair1(klon), tairsol(klon)
     
    269321          call flush(6)
    270322      endif
    271       IF (first_appel) THEN
    272 !          first_appel=.false.
     323      IF (debugindex .and. first_appel) THEN
     324          first_appel=.false.
    273325!
    274326! initialisation sorties netcdf
     
    447499        ypct(j) = pctsrf(i,nsrf)
    448500        yts(j) = ts(i,nsrf)
     501cIM "slab" ocean
     502        ytslab(i) = tslab(i)
     503c
    449504        ysnow(j) = snow(i,nsrf)
    450505        yqsurf(j) = qsurf(i,nsrf)
     
    504559c
    505560c
    506 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
    507561c calculer Cdrag et les coefficients d'echange
    508 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
    509 
    510 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
    511 c  Calcul anciens du LMD. Effectues de toutes facons.
    512 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
    513 
    514562      CALL coefkz(nsrf, knon, ypaprs, ypplay,
    515563cIM 261103
     
    519567     .            yqsurf,
    520568     .            ycoefm, ycoefh)
    521 
    522       CALL coefkz2(nsrf, knon, ypaprs, ypplay,yt,
     569cIM 081204 BEG
     570cCR test
     571      if (iflag_pbl.eq.1) then
     572cIM 081204 END
     573        CALL coefkz2(nsrf, knon, ypaprs, ypplay,yt,
    523574     .                  ycoefm0, ycoefh0)
    524       if (first_appel) then
    525         if (prt_level > 9) THEN
    526           WRITE(lunout,*)'Apres coefkz2 '
    527           WRITE(lunout,*)'nsrf,knon,yts,yrugos,yqsurf',
    528      .    nsrf,knon,yts,yrugos,yqsurf
    529           WRITE(lunout,*)'ypaprs(1,k),ypplay(1,k),yu,yv,yt'
    530           do k=1,klev
    531             WRITE(lunout,*)ypaprs(1,k),ypplay(1,k),
    532      .      yu(1,k),yv(1,k),yt(1,k)
    533           enddo
    534           do k=1,klev
    535             WRITE(lunout,*)ycoefm(1,k),ycoefh(1,k),
    536      .      ycoefm0(1,k),ycoefh0(1,k)
    537           enddo
    538         ENDIF
    539         first_appel=.false.
     575        DO k = 1, klev
     576        DO i = 1, knon
     577           ycoefm(i,k) = MAX(ycoefm(i,k),ycoefm0(i,k))
     578           ycoefh(i,k) = MAX(ycoefh(i,k),ycoefh0(i,k))
     579        ENDDO
     580        ENDDO
    540581      endif
    541 
    542       DO k = 1, klev
    543       DO i = 1, knon
    544          ycoefm(i,k) = MAX(ycoefm(i,k),ycoefm0(i,k))
    545          ycoefh(i,k) = MAX(ycoefh(i,k),ycoefh0(i,k))
    546       ENDDO
    547       ENDDO
    548 
    549582c
    550583cIM cf JLD : on seuille ycoefm et ycoefh
     
    690723     s          y_d_t, y_d_q, y_d_ts, yz0_new,
    691724     s          y_flux_t, y_flux_q, y_dflux_t, y_dflux_q,
    692      s          y_fqcalving,y_ffonte,y_run_off_lic_0)
     725     s          y_fqcalving,y_ffonte,y_run_off_lic_0,
     726cIM "slab" ocean
     727     s          y_flux_o, y_flux_g, ytslab, y_seaice)
    693728c
    694729c calculer la longueur de rugosite sur ocean
     
    829864      ENDDO
    830865c
    831       if (check) THEN
    832        WRITE(*,*)' avant stdlevvar. nsrf=',nsrf
    833        IF(nsrf.EQ.3) THEN
    834         j=1465
    835         WRITE(*,*)' INstO',klon,knon,nsrf,zxli,uzon(j),vmer(j),
    836      &      tair1(j),qair1(j),zgeo1(j),tairsol(j),qairsol(j),rugo1(j),
    837      &      psfce(j),patm(j)
    838        ENDIF
    839        WRITE(*,*)' qairsol (min, max)'
    840      $     , minval(qairsol(1:knon)), maxval(qairsol(1:knon))
    841        call flush(6)
    842       ENDIF
    843 c
    844866      CALL stdlevvar(klon, knon, nsrf, zxli,
    845867     &               uzon, vmer, tair1, qair1, zgeo1,
    846868     &               tairsol, qairsol, rugo1, psfce, patm,
    847      &               yt2m, yq2m, yu10m)
    848 
    849 c
    850       if (check) THEN
    851       IF(nsrf.EQ.3) THEN
    852        j=1465
    853        WRITE(*,*)' OUstd',klon,knon,nsrf,zxli,uzon(j),vmer(j),
    854      & tair1(j),qair1(j),zgeo1(j),tairsol(j),qairsol(j),rugo1(j),
    855      & psfce(j),patm(j)
    856        WRITE(*,*)' tqu',yt2m(j),yq2m(j),yu10m(j)
    857           call flush(6)
    858       ENDIF
    859       ENDIF
     869cIM  &               yt2m, yq2m, yu10m)
     870     &               yt2m, yq2m, yt10m, yq10m, yu10m, yustar)
     871cIM 081204 END
     872c
    860873c
    861874      DO j=1, knon
     
    863876       t2m(i,nsrf)=yt2m(j)
    864877
    865        if (check) THEN
    866         IF(nsrf.EQ.3 .and. j.EQ.1465) THEN
    867          WRITE(*,*) 't2m APRES stdlev',j,i,tair1(j),t2m(i,nsrf),
    868      $   tairsol(j),rlon(i),rlat(i)
    869          call flush(6)
    870         ENDIF
    871        ENDIF
    872878c
    873879       q2m(i,nsrf)=yq2m(j)
     
    878884c
    879885      ENDDO
     886c
     887cIM cf AM : pbl, HBTM
     888      DO i = 1, knon
     889         y_cd_h(i) = ycoefh(i,1)
     890         y_cd_m(i) = ycoefm(i,1)
     891      ENDDO
     892c     print*,'appel hbtm2'
     893      CALL HBTM(knon, ypaprs, ypplay,
     894     .          yt2m,yt10m,yq2m,yq10m,yustar,
     895     .          y_flux_t,y_flux_q,yu,yv,yt,yq,
     896     .          ypblh,ycapCL,yoliqCL,ycteiCL,ypblT,
     897     .          ytherm,ytrmb1,ytrmb2,ytrmb3,ylcl)
     898c     print*,'fin hbtm2'
     899c
     900      DO j=1, knon
     901       i = ni(j)
     902       pblh(i,nsrf)   = ypblh(j)
     903       plcl(i,nsrf)   = ylcl(j)
     904       capCL(i,nsrf)  = ycapCL(j)
     905       oliqCL(i,nsrf) = yoliqCL(j)
     906       cteiCL(i,nsrf) = ycteiCL(j)
     907       pblT(i,nsrf)   = ypblT(j)
     908       therm(i,nsrf)  = ytherm(j)
     909       trmb1(i,nsrf)  = ytrmb1(j)
     910       trmb2(i,nsrf)  = ytrmb2(j)
     911       trmb3(i,nsrf)  = ytrmb3(j)
     912      ENDDO
     913c
    880914#else
    881        DO j=1, knon
    882          i = ni(j)
    883          t2m(i,nsrf)=0.
    884          q2m(i,nsrf)=0.
    885          u10m(i,nsrf)=0.
    886          v10m(i,nsrf)=0.
    887        ENDDO
     915cIM cf AM : pbl, HBTM
     916      DO j=1, knon
     917       i = ni(j)
     918       pblh(i,nsrf)   = 0.
     919       plcl(i,nsrf)   = 0.
     920       capCL(i,nsrf)  = 0.
     921       oliqCL(i,nsrf) = 0.
     922       cteiCL(i,nsrf) = 0.
     923       pblT(i,nsrf)   = 0.
     924       therm(i,nsrf)  = 0.
     925       trmb1(i,nsrf)  = 0.
     926       trmb2(i,nsrf)  = 0.
     927       trmb3(i,nsrf)  = 0.
     928      ENDDO
     929      DO j=1, knon
     930       i = ni(j)
     931       t2m(i,nsrf)=0.
     932       q2m(i,nsrf)=0.
     933       u10m(i,nsrf)=0.
     934       v10m(i,nsrf)=0.
     935      ENDDO
    888936#endif
    889937
     
    894942         enddo
    895943      enddo
    896 c
    897 
     944cIM "slab" ocean
     945      IF(OCEAN.EQ.'slab  '.OR.OCEAN.EQ.'force ') THEN
     946       IF (nsrf.EQ.is_oce) THEN
     947        DO j = 1, knon
     948c on projette sur la grille globale
     949         i = ni(j)
     950         IF(pctsrf_new(i,is_oce).GT.epsfra) THEN
     951          flux_o(i) = y_flux_o(j)
     952         ELSE
     953          flux_o(i) = 0.
     954         ENDIF
     955        ENDDO
     956       ENDIF
     957c
     958       IF (nsrf.EQ.is_sic) THEN
     959        DO j = 1, knon
     960         i = ni(j)
     961cIM 230604 on pondere lorsque l'on fait le bilan au sol :  flux_g(i) = y_flux_g(j)*ypct(j)
     962         IF(pctsrf_new(i,is_sic).GT.epsfra) THEN
     963          flux_g(i) = y_flux_g(j)
     964         ELSE
     965          flux_g(i) = 0.
     966         ENDIF
     967        ENDDO
     968       ENDIF !nsrf.EQ.is_sic
     969      ENDIF !OCEAN
     970c
     971      IF(OCEAN.EQ.'slab  ') THEN
     972       IF(nsrf.EQ.is_oce) then
     973        tslab(1:klon) = ytslab(1:klon)
     974        seaice(1:klon) = y_seaice(1:klon)
     975       ENDIF !nsrf
     976      ENDIF !OCEAN
    89897799999 CONTINUE
    899 c
    900978C
    901979C On utilise les nouvelles surfaces
     
    9241002     s                d_t, d_q, d_ts, z0_new,
    9251003     s                flux_t, flux_q,dflux_s,dflux_l,
    926      s                fqcalving,ffonte,run_off_lic_0)
     1004     s                fqcalving,ffonte,run_off_lic_0,
     1005cIM "slab" ocean
     1006     s                flux_o,flux_g,tslab,seaice)
    9271007
    9281008      USE interface_surf
     
    10011081c hauteur de neige, en kg/m2/s
    10021082      REAL fqcalving(klon)
     1083cIM "slab" ocean
     1084      REAL tslab(klon)  !temperature du slab ocean (K) (OCEAN='slab  ')
     1085      REAL seaice(klon) ! glace de mer en kg/m2
     1086      REAL flux_o(klon) ! flux entre l'ocean et l'atmosphere W/m2
     1087      REAL flux_g(klon) ! flux entre l'ocean et la glace de mer W/m2
     1088c
    10031089c======================================================================
    10041090      REAL t_grnd  ! temperature de rappel pour glace de mer
     
    11991285        zlev1(1:knon) = delp(1:knon,1)
    12001286c        swnet = swdown * (1. - albedo)
    1201         swdown(1:knon) = swnet(1:knon)
     1287c
     1288cIM swdown=flux SW incident sur terres
     1289cIM swdown=flux SW net sur les autres surfaces
     1290cIM     swdown(1:knon) = swnet(1:knon)
     1291        if(nisurf.eq.is_ter) THEN
     1292         swdown(1:knon) = swnet(1:knon)/(1-albedo(1:knon))
     1293        else
     1294         swdown(1:knon) = swnet(1:knon)
     1295        endif
    12021296c      enddo
    12031297      ccanopy = co2_ppm
     
    12201314     s evap, fluxsens, fluxlat, dflux_l, dflux_s,             
    12211315     s tsol_rad, tsurf_new, alb_new, alblw, emis_new, z0_new,
    1222      s pctsrf_new, agesno,fqcalving,ffonte, run_off_lic_0)
     1316     s pctsrf_new, agesno,fqcalving,ffonte, run_off_lic_0,
     1317cIM "slab" ocean
     1318     s flux_o, flux_g, tslab, seaice)
    12231319
    12241320
     
    14721568c Variables locales:
    14731569c
    1474       INTEGER i, k
     1570      INTEGER i, k, kk !IM 120704
    14751571      REAL zgeop(klon,klev)
    14761572      REAL zmgeom(klon)
  • LMDZ4/trunk/libf/phylmd/cltracrn.F

    r524 r644  
    8282cAA que le pondere par la fraction de nature de sol.
    8383c
    84       print*,'PASSAGE DANS CLTRACRN'
     84c      print*,'PASSAGE DANS CLTRACRN'
    8585
    8686      DO i = 1,klon
  • LMDZ4/trunk/libf/phylmd/conf_phys.F90

    r585 r644  
    2222include "clesphys.inc"
    2323include "compbl.h"
     24#include "control.inc"
    2425!
    2526! Configuration de la "physique" de LMDZ a l'aide de la fonction
     
    577578
    578579!
    579 !
    580 !Config Key  =
    581 !Config Desc = 
    582 !Config Def  =
    583 !Config Help =
    584 !
    585 !   =
    586 !  call getin('',)
    587 !
    588 !
    589 !
    590 !
     580!Config Key  = type_run
     581!Config Desc =
     582!Config Def  = 'AMIP' ou 'ENSP'
     583!Config Help =
     584!
     585  type_run = 'AMIP'
     586  call getin('type_run',type_run)
     587
     588!
     589!Config Key  = ok_isccp
     590!Config Desc =
     591!Config Def  = .true.
     592!Config Help =
     593!
     594! ok_isccp = .true.
     595  ok_isccp = .false.
     596  call getin('ok_isccp',ok_isccp)
     597
     598!
     599!
     600!Config Key  = ok_regdyn
     601!Config Desc =
     602!Config Def  = 'AMIP'
     603!Config Help =
     604!
     605! ok_regdyn = .true.
     606  ok_regdyn = .false.
     607  call getin('ok_regdyn',ok_regdyn)
     608!
     609! coordonnees (lonmin_ins, lonmax_ins, latmin_ins, latmax_ins) pour la zone
     610! avec sorties instantannees tous les pas de temps de la physique => "histbilKP_ins.nc"
     611!
     612!Config Key  = lonmin_ins
     613!Config Desc = 100. 
     614!Config Def  = longitude minimale sorties "bilKP_ins"
     615!Config Help =
     616!
     617   lonmin_ins = 100.
     618   call getin('lonmin_ins',lonmin_ins)
     619!
     620!Config Key  = lonmax_ins
     621!Config Desc = 130.
     622!Config Def  = longitude maximale sorties "bilKP_ins"
     623!Config Help =
     624!
     625   lonmax_ins = 130.
     626   call getin('lonmax_ins',lonmax_ins)
     627!
     628!Config Key  = latmin_ins
     629!Config Desc = -20. 
     630!Config Def  = latitude minimale sorties "bilKP_ins"
     631!Config Help =
     632!
     633   latmin_ins = -20.
     634   call getin('latmin_ins',latmin_ins)
     635!
     636!Config Key  = latmax_ins
     637!Config Desc = 20.
     638!Config Def  = latitude maximale sorties "bilKP_ins"
     639!Config Help =
     640!
     641   latmax_ins = 20.
     642   call getin('latmax_ins',latmax_ins)
     643!
     644!Config Key  = ecrit_ins
     645!Config Desc =
     646!Config Def  = NINT(86400./dtime/48.) !a chaque pas de temps physique
     647!Config Help =
     648!
     649! ecrit_ins = NINT(86400./dtime/48.)
     650  ecrit_ins = NINT(86400./48.)
     651  call getin('ecrit_ins',ecrit_ins)
     652!
     653!Config Key  = ecrit_hf
     654!Config Desc =
     655!Config Def  = NINT(86400./dtime *0.25) !toutes les 6h
     656!Config Help =
     657!
     658! ecrit_hf = NINT(86400./dtime *0.25)
     659  ecrit_hf = NINT(86400. *0.25)
     660  call getin('ecrit_hf',ecrit_hf)
     661!
     662!Config Key  = ecrit_hf2mth
     663!Config Desc =
     664!Config Def  = 4*30 !ecriture mens. a partir de val. inst. toutes les 6h
     665!Config Help =
     666!
     667  ecrit_hf2mth = 4*30
     668  call getin('ecrit_hf2mth',ecrit_hf2mth)
     669!
     670!Config Key  = ecrit_day
     671!Config Desc =
     672!Config Def  = NINT(86400./dtime *1.0) !tous les jours
     673!Config Help =
     674!
     675! ecrit_day = NINT(86400./dtime *1.0)
     676  ecrit_day = NINT(86400. *1.0)
     677  call getin('ecrit_day',ecrit_day)
     678!
     679!Config Key  = ecrit_mth
     680!Config Desc =
     681!Config Def  = NINT(86400./dtime *ecritphy) !1fois par mois
     682!Config Help =
     683!
     684! ecrit_mth = NINT(86400./dtime *ecritphy)
     685  ecrit_mth = NINT(86400. *ecritphy)
     686  call getin('ecrit_mth',ecrit_mth)
     687!
     688!Config Key  = ecrit_tra
     689!Config Desc =
     690!Config Def  = NINT(86400./dtime * ecritphy) !tous les pas de temps physiques
     691!Config Help =
     692!
     693! ecrit_tra = NINT(86400./dtime * ecritphy)
     694  ecrit_tra = NINT(86400.* ecritphy)
     695  call getin('ecrit_tra',ecrit_tra)
     696!
     697!Config Key  = ecrit_reg
     698!Config Desc =
     699!Config Def  = NINT(86400./dtime *0.25)  !4 fois par jour
     700!Config Help =
     701!
     702! ecrit_reg = NINT(86400./dtime *0.25)  !4 fois par jour
     703  ecrit_reg = NINT(86400. *0.25)  !4 fois par jour
     704  call getin('ecrit_reg',ecrit_reg)
     705!
     706
    591707
    592708  write(numout,*)' ##############################################'
     
    642758  write(numout,*)' iflag_pbl = ', iflag_pbl
    643759  write(numout,*)' iflag_thermals = ', iflag_thermals
    644 
     760  write(numout,*)' type_run = ',type_run
     761  write(numout,*)' ok_isccp = ',ok_isccp
     762  write(numout,*)' ok_regdyn = ',ok_regdyn
     763  write(numout,*)' lonmin lonmax latmin latmax bilKP_ins =',&
     764 & lonmin_ins, lonmax_ins, latmin_ins, latmax_ins
     765  write(numout,*)' ecrit_ ins, hf, hf2mth, day, mth, reg, tra',&
     766 & ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra
    645767  return
    646768
  • LMDZ4/trunk/libf/phylmd/ini_histISCCP.h

    r524 r644  
    77c zout et zsto.
    88c dtime est passe par ailleurs a histbeg
    9 c zsto = frequence de stockage des champs
     9c zstophy = frequence de stockage des champs tous les pdt physiques
    1010c zout = frequence d'ecriture des champs
    11          zsto = dtime
     11        zstophy = dtime
    1212c
    1313c ecriture 8 fois par jour
     
    1515c ecriture toutes les 2h (12 fois par jour)
    1616c       zout = dtime * 4.
    17 c ecriture toutes les 1/h (48 fois par jour)
     17c ecriture toutes les 1/2 h (48 fois par jour)
    1818c       zout = dtime
    1919c
    2020c ecriture mensuelle
    2121        zout = dtime * ecrit_mth
    22 c
    23         print*,'ISCCP zout,zsto=',zout,zsto
     22c       zout = dtime * ecrit_day
    2423c
    2524c       PRINT*, 'La frequence de sortie ISCCP est de ', ecrit_isccp
     
    4847     .                 lmaxm1, cldtopres, nvert,'down')
    4948c
     49        IF(type_run.EQ."ENSP".OR.type_run.EQ."CLIM") THEN
     50c
    5051c variables a ecrire
    5152c
     
    5455     .                "LMDZ ISCCP cld", "%",
    5556     .                iim, jjmp1,nhori,lmaxm1,1,lmaxm1,nvert,32,
    56      .                "ave(X)", zsto,zout)
     57     .                "ave(X)", zstophy,zout)
    5758         ENDDO
    5859c
     
    6061     .                "Nb of calls with sunlit ", "%",
    6162     .                iim, jjmp1,nhori,1,1,1,-99,32,
    62      .                "ave(X)", zsto,zout)
     63     .                "ave(X)", zstophy,zout)
     64c
     65        ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN
     66c
     67         DO k=1, kmaxm1
     68          DO l=1, lmaxm1
     69c
     70          CALL histdef(nid_isccp, pclev(l)//taulev(k),
     71     .                "LMDZ ISCCP cld "//cnameisccp(l,k), "%",
     72     .                iim, jjmp1,nhori,1,1,1,-99,32,
     73     .                "ave(X)", zstophy,zout)
     74c
     75          ENDDO
     76         ENDDO
     77c
     78         CALL histdef(nid_isccp, "nsunlit",
     79     .                "Nb of calls with sunlit ", "%",
     80     .                iim, jjmp1,nhori,1,1,1,-99,32,
     81     .                "ave(X)", zstophy,zout)
     82c
     83        ENDIF
    6384c
    6485        CALL histend(nid_isccp)
  • LMDZ4/trunk/libf/phylmd/ini_histREGDYN.h

    r524 r644  
    55      IF (ok_regdyn) THEN
    66c
    7          PRINT*, 'La frequence de sortie REGDYN est de ', ecrit_mth
    8 c        PRINT*, 'La frequence de sortie REGDYN est de ', ecrit_regdyn
    9 cIM cf. LF
     7cIM      PRINT*, 'La frequence de sortie REGDYN est de ', ecrit_mth
     8c
    109         idayref = day_ref
    1110         CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)
    12 
    13 cccIM    CALL ymds2ju(anne_ini, 1, 1, 0.0, zjulian)
    14 c        CALL ymds2ju(annee_ref, 1, 1, 0.0, zjulian)
    15 c        zjulian = zjulian + day_ini
    1611c
    17 
    1812c axe vertical pour les differents niveaux des histogrammes
    1913      DO iw=1, iwmax
     
    2822     .                 "mb/day",
    2923     .                 iwmax, zx_o500, komega)
    30 
     24c
    3125c   pour les champs instantannes, il faut mettre la meme valeur pour
    32 c   zout et tsto.
     26c   zout et zsto.
    3327c   dtime est passe par ailleurs a histbeg
    34 
     28c
    3529c        zout = dtime * REAL(NINT(86400./dtime*ecrit_regdyn))
    3630c        zsto = zout
    3731c        print*,'zout,zsto=',zout,zsto
     32c
     33c stockage a chaque pas de temps de la physique
     34c
     35         zstophy = dtime
     36cIM 020904      zstophy = dtime * nbapp_isccp
     37
    3838c ecriture mensuelle
    3939c
    40          zsto = dtime
    4140         zout = dtime * ecrit_mth
     41cIM 020904     
     42c        zout = dtime * ecrit_day
    4243c        zout = dtime * REAL(NINT(86400./dtime*ecrit_regdyn))
    4344
     
    4849         CALL histdef(nid_regdyn, "hw1", "Tropics Histogram ", "%",
    4950     &                kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32,
    50      &                "ave(X)", zsto,zout)
     51     &                "ave(X)", zstophy,zout)
    5152
    5253         CALL histdef(nid_regdyn, "nh1", "Nb of pixels Tropics Histo",
    5354     &                "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,
    54      &                32,"ave(X)", zsto,zout)
     55     &                32,"ave(X)", zstophy,zout)
    5556c
    5657
    57          CALL histdef(nid_regdyn, "nht1","Total Nb pixels Tropics Histo"
    58      &                ,"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,
    59      &                32,"ave(X)", zsto,zout)
     58         CALL histdef(nid_regdyn, "nht1",
     59     &                "Total Nb pixels Tropics Histo",
     60     &                "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,
     61     &                32,"ave(X)", zstophy,zout)
    6062c
    6163c PAN
    6264         CALL histdef(nid_regdyn, "hw2", "North Pacific Histogram", "%",
    6365     &                kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32,
    64      &                "ave(X)", zsto,zout)
     66     &                "ave(X)", zstophy,zout)
    6567
    6668         CALL histdef(nid_regdyn, "nh2", "Nb of pixels North Pacific",
    6769     &                "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,
    68      &                32,"ave(X)", zsto,zout)
     70     &                32,"ave(X)", zstophy,zout)
    6971c
    7072
    71          CALL histdef(nid_regdyn, "nht2","Total Nb pixels North Pacific
    72      &                Histo"
    73      &                ,"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,
    74      &                32,"ave(X)", zsto,zout)
     73         CALL histdef(nid_regdyn, "nht2",
     74     &                "Total Nb pixels North Pacific Histo",
     75     &                "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,
     76     &                32,"ave(X)", zstophy,zout)
    7577c CAL
    7678         CALL histdef(nid_regdyn, "hw3", "California Histogram", "%",
    7779     &                kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32,
    78      &                "ave(X)", zsto,zout)
     80     &                "ave(X)", zstophy,zout)
    7981
    80          CALL histdef(nid_regdyn, "nh3", "Nb of pixels California
    81      &                Histo",
     82         CALL histdef(nid_regdyn, "nh3",
     83     &                "Nb of pixels California Histo",
    8284     &                "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,
    83      &                32,"ave(X)", zsto,zout)
     85     &                32,"ave(X)", zstophy,zout)
    8486c
    8587
    86          CALL histdef(nid_regdyn, "nht3","Total Nb pixels California
    87      &                Histo"
    88      &                ,"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,
    89      &                32,"ave(X)", zsto,zout)
     88         CALL histdef(nid_regdyn, "nht3",
     89     &                "Total Nb pixels California Histo",
     90     &                "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,
     91     &                32,"ave(X)", zstophy,zout)
    9092c HAW
    9193         CALL histdef(nid_regdyn, "hw4", "Hawai Histogram", "%",
    9294     &                kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32,
    93      &                "ave(X)", zsto,zout)
     95     &                "ave(X)", zstophy,zout)
    9496
    9597         CALL histdef(nid_regdyn, "nh4", "Nb of pixels Hawai Histo",
    9698     &                "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,
    97      &                32,"ave(X)", zsto,zout)
     99     &                32,"ave(X)", zstophy,zout)
    98100c
    99101
    100          CALL histdef(nid_regdyn, "nht4","Total Nb pixels Hawai Histo"
    101      &                ,"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,
    102      &                32,"ave(X)", zsto,zout)
     102         CALL histdef(nid_regdyn, "nht4",
     103     &                "Total Nb pixels Hawai Histo",
     104     &                "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,
     105     &                32,"ave(X)", zstophy,zout)
    103106c WAP
    104107         CALL histdef(nid_regdyn, "hw5", "Warm Pool Histogram", "%",
    105108     &                kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32,
    106      &                "ave(X)", zsto,zout)
     109     &                "ave(X)", zstophy,zout)
    107110
    108111         CALL histdef(nid_regdyn, "nh5", "Nb of pixels Warm Pool Histo",
    109112     &                "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,
    110      &                32,"ave(X)", zsto,zout)
     113     &                32,"ave(X)", zstophy,zout)
    111114c
    112115
    113          CALL histdef(nid_regdyn, "nht5","Total Nb pixels Warm Pool
    114      &                Histo"
    115      &                ,"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,
    116      &                32,"ave(X)", zsto,zout)
     116         CALL histdef(nid_regdyn, "nht5",
     117     &                "Total Nb pixels Warm Pool Histo",
     118     &                "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,
     119     &                32,"ave(X)", zstophy,zout)
    117120c
    118121         CALL histend(nid_regdyn)
  • LMDZ4/trunk/libf/phylmd/ini_histday.h

    r577 r644  
    1 !
    2 ! $Header$
    3 !
     1c
     2c $Header$
     3c
    44      IF (ok_journe) THEN
    55c
    6          zsto = dtime
    7          zout = dtime * FLOAT(ecrit_day)
    8          zsto1= dtime * FLOAT(ecrit_day)
    9 c         zout = dtime * REAL(ecrit_day)
    10 c         zsto1= dtime * REAL(ecrit_day)
     6       zstophy = dtime
     7       zstoday= dtime * FLOAT(ecrit_day)
     8       zout = dtime * FLOAT(ecrit_day)
    119c
    1210         idayref = day_ref
     
    2523     .                 1,iim,1,jjmp1, itau_phy, zjulian, dtime,
    2624     .                 nhori, nid_day)
    27          write(*,*)'Journee ', itau_phy, zjulian
    2825         CALL histvert(nid_day, "presnivs", "Vertical levels", "mb",
    29      .                 klev, presnivs, nvert)
     26     .                 klev, presnivs/100., nvert)
    3027c
    3128       IF(lev_histday.GE.1) THEN
    3229c
    33          CALL histdef(nid_day, "phis", "Surface geop. height", "-",
    34      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    35      .                "once", zsto,zout)
     30         CALL histdef(nid_day, "phis", "Surface geop. height", "m2/s2",
     31     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     32     .                "once", zstophy,zout)
    3633c
    3734         CALL histdef(nid_day, "aire", "Grid area", "-",
    3835     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    39      .                "once", zsto,zout)
     36     .                "once", zstophy,zout)
    4037c
    4138         CALL histdef(nid_day, "contfracATM","% sfce ter+lic ","-",
    4239     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    43      .                "once", zsto,zout)
     40     .                "once", zstophy,zout)
    4441c
    4542         CALL histdef(nid_day, "contfracOR","% sfce terre OR", "-",
    4643     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    47      .                "once", zsto,zout)
     44     .                "once", zstophy,zout)
    4845c
    4946c Champs 2D:
     
    5148         CALL histdef(nid_day, "tsol", "Surface Temperature", "K",
    5249     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    53      .                "ave(X)", zsto,zout)
     50     .                "ave(X)", zstophy,zout)
    5451c
    5552         CALL histdef(nid_day, "t2m", "Temperature 2m", "K",
    5653     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    57      .                "ave(X)", zsto,zout)
     54     .                "ave(X)", zstophy,zout)
    5855c
    5956c Champs retires momentannéement en attendant un hypothetique
     
    6360     .                "K",
    6461     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    65      .                t2mincels, zsto,zout)
     62     .                t2mincels, zstophy,zout)
    6663c
    6764         CALL histdef(nid_day, "t2m_max", "Temp. 2m max.",
    6865     .                "K",
    6966     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    70      .                t2maxcels, zsto,zout)
     67     .                t2maxcels, zstophy,zout)
    7168c
    7269         CALL histdef(nid_day, "plul", "Large-scale Precip.",
    7370     .   "kg/(s*m2)",
    7471     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    75      .                "ave(X)", zsto,zout)
     72     .                "ave(X)", zstophy,zout)
    7673c
    7774         CALL histdef(nid_day, "pluc", "Convective Precip.",
    7875     .   "kg/(s*m2)",
    7976     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    80      .                "ave(X)", zsto,zout)
     77     .                "ave(X)", zstophy,zout)
    8178c
    8279         CALL histdef(nid_day, "snowl", "Solid Large-scale Precip.",
    83      .   "kg/(s*m2)",
    84      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    85      .                "ave(X)", zsto,zout)
     80     .   "kg/(m2*s)",
     81     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     82     .                "ave(X)", zstophy,zout)
    8683c
    8784         IF(1.EQ.0) THEN !snowc=0.
    8885         CALL histdef(nid_day, "snowc", "Solid Convective Precip.",
    89      .   "kg/(s*m2)",
    90      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    91      .                "ave(X)", zsto,zout)
     86     .   "kg/(m2*s)",
     87     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     88     .                "ave(X)", zstophy,zout)
    9289         ENDIF !snowc=0.
    9390c
    9491         CALL histdef(nid_day, "flat", "Latent heat flux", "W/m2",
    9592     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    96      .                "ave(X)", zsto,zout)
     93     .                "ave(X)", zstophy,zout)
    9794c
    9895         CALL histdef(nid_day, "sicf", "Sea-ice fraction", "-",
    9996     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    100      .                "inst(X)", zsto1,zout)
     97     .                "inst(X)", zstoday,zout)
    10198c
    10299         CALL histdef(nid_day, "q2m", "Specific humidity", "kg/kg",
    103100     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    104      .                "ave(X)", zsto,zout)
     101     .                "ave(X)", zstophy,zout)
    105102c
    106103         CALL histdef(nid_day, "u10m", "Vent zonal 10m", "m/s",
    107104     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    108      .                "ave(X)", zsto,zout)
     105     .                "ave(X)", zstophy,zout)
    109106c
    110107         CALL histdef(nid_day, "v10m", "Vent meridien 10m", "m/s",
    111108     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    112      .                "ave(X)", zsto,zout)
     109     .                "ave(X)", zstophy,zout)
    113110c
    114111         CALL histdef(nid_day, "wind10m","10-m wind speed","m/s",
    115112     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    116      .                "ave(X)", zsto,zout)
     113     .                "ave(X)", zstophy,zout)
    117114c
    118115         CALL histdef(nid_day, "wind10max", "10-m wind speed max.",
    119116     .                "m/s",
    120117     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    121      .                t2maxcels, zsto,zout)
     118     .                t2maxcels, zstophy,zout)
    122119c
    123120         CALL histdef(nid_day, "psol", "Surface Pressure", "Pa",
    124121     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    125      .                "ave(X)", zsto,zout)
     122     .                "ave(X)", zstophy,zout)
    126123c
    127124         CALL histdef(nid_day, "precip","Precipitation Totale liq+sol"
    128125     .                , "kg/(s*m2)",
    129126     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    130      .                "ave(X)", zsto,zout)
    131 c
    132          CALL histdef(nid_day, "snowf", "Snow fall", "kg/(s*m2)",
    133      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    134      .                "ave(X)", zsto,zout)
    135 c
    136          CALL histdef(nid_day, "snow_mass", "Snow Mass", "kg/m2",
    137      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    138      .                "ave(X)", zsto,zout)
    139 c
    140          CALL histdef(nid_day, "evap", "Evaporation", "kg/(s*m2)",
    141      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    142      .                "ave(X)", zsto,zout)
     127     .                "ave(X)", zstophy,zout)
     128c
     129         CALL histdef(nid_day, "snowf", "Snow fall", "kg/(m2*s)",
     130     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     131     .                "ave(X)", zstophy,zout)
     132c
     133c        CALL histdef(nid_day, "snow_mass", "Snow Mass", "kg/m2",
     134c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     135c    .                "ave(X)", zstophy,zout)
     136c
     137         CALL histdef(nid_day, "evap", "Evaporation", "kg/(m2*s)",
     138     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     139     .                "ave(X)", zstophy,zout)
    143140c
    144141         CALL histdef(nid_day, "tops", "Solar rad. at TOA", "W/m2",
    145142     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    146      .                "ave(X)", zsto,zout)
     143     .                "ave(X)", zstophy,zout)
    147144c
    148145         CALL histdef(nid_day, "topl", "IR rad. at TOA", "W/m2",
    149146     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    150      .                "ave(X)", zsto,zout)
     147     .                "ave(X)", zstophy,zout)
    151148c
    152149         CALL histdef(nid_day, "sols", "Net Solar rad. at surf.",
    153150     .                "W/m2",
    154151     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    155      .                "ave(X)", zsto,zout)
     152     .                "ave(X)", zstophy,zout)
    156153c
    157154         CALL histdef(nid_day, "soll", "Net IR rad. at surface", "W/m2",
    158155     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    159      .                "ave(X)", zsto,zout)
     156     .                "ave(X)", zstophy,zout)
    160157c
    161158         CALL histdef(nid_day, "cldl", "Low-level cloudiness", "-",
    162159     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    163      .                "ave(X)", zsto,zout)
     160     .                "ave(X)", zstophy,zout)
    164161c
    165162         CALL histdef(nid_day, "cldm", "Mid-level cloudiness", "-",
    166163     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    167      .                "ave(X)", zsto,zout)
     164     .                "ave(X)", zstophy,zout)
    168165c
    169166         CALL histdef(nid_day, "cldh", "High-level cloudiness", "-",
    170167     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    171      .                "ave(X)", zsto,zout)
     168     .                "ave(X)", zstophy,zout)
    172169c
    173170         CALL histdef(nid_day, "cldt", "Total cloudiness", "-",
    174171     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    175      .                "ave(X)", zsto,zout)
     172     .                "ave(X)", zstophy,zout)
    176173c
    177174         CALL histdef(nid_day, "cldq", "Cloud liquid water path",
    178175     .                "kg/m2",
    179176     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    180      .                "ave(X)", zsto,zout)
     177     .                "ave(X)", zstophy,zout)
    181178c
    182179         CALL histdef(nid_day, "prw", "Precipitable water", "kg/m2",
    183180     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    184      .                "ave(X)", zsto,zout)
     181     .                "ave(X)", zstophy,zout)
    185182c
    186183c  Champs dynamiques sur niveaux de pression
    187          DO k=1, nlevENS
    188 c
    189           CALL histdef(nid_day, "u"//clev(k),
    190      .                 "Zonal wind"//clev(k)//"mb","m/s",
    191      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    192      .                "ave(X)", zsto,zout)
    193 c
    194           CALL histdef(nid_day, "v"//clev(k),
    195      .                 "Meridional wind"//clev(k)//"mb","m/s",
    196      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    197      .                "ave(X)", zsto,zout)
    198 c
    199          ENDDO !nlevENS
    200 c
    201          CALL histdef(nid_day, "w500", "Verical wind 500mb", "m/s",
    202      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    203      .                "ave(X)", zsto,zout)
    204 c
    205          CALL histdef(nid_day,"phi500", "Geopotentiel a 500mb","m2/s2",
    206      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    207      .                "ave(X)", zsto,zout)
     184c
     185c        DO k=1, nlevENS
     186         DO k=1, nlevSTD
     187c
     188c        bb=clevSTD(k)
     189c
     190         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
     191         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
     192c         aa=clevSTD(k)
     193c         bb2=clevSTD(k)
     194c        ENDIF
     195c
     196         IF(bb2.EQ."850".OR.bb2.EQ."700"
     197     .   .OR.bb2.EQ."500".OR.bb2.EQ."200") THEN
     198c
     199          CALL histdef(nid_day, "u"//bb2,
     200     .                 "Zonal wind "//bb2//"mb","m/s",
     201     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     202     .                "inst(X)", zout,zout)
     203c
     204          CALL histdef(nid_day, "v"//bb2,
     205     .                 "Meridional wind "//bb2//"mb","m/s",
     206     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     207     .                "inst(X)", zout,zout)
     208c
     209         ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.bb2.EQ."500".OR.bb2.EQ."200") THEN
     210c
     211         IF(bb2.EQ."500") THEN
     212c
     213         CALL histdef(nid_day, "w"//bb2, "Vertical wind "//bb2//"mb",
     214     .                "m/s",
     215     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     216     .                "inst(X)", zout,zout)
     217c
     218         CALL histdef(nid_day,"phi"//bb2, "Geopotential "//bb2//"mb",
     219     .                "m",
     220     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     221     .                "inst(X)", zout,zout)
     222c
     223         ENDIF !(bb2.EQ."500")
     224c
     225         ENDDO !nlevSTD
    208226c
    209227         CALL histdef(nid_day, "slp", "Sea Level Pressure", "Pa",
    210228     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    211      .                "ave(X)", zsto,zout)
     229     .                "ave(X)", zstophy,zout)
    212230c
    213231         CALL histdef(nid_day, "cape_max", "CAPE max.",
    214232     .                "J/kg",
    215233     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    216      .                capemaxcels, zsto,zout)
     234     .                capemaxcels, zstophy,zout)
    217235c
    218236         CALL histdef(nid_day, "solldown", "Down. IR rad. at surface",
    219237     .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
    220      .                "ave(X)", zsto,zout)
     238     .                "ave(X)", zstophy,zout)
    221239c
    222240         CALL histdef(nid_day, "sens", "Sensible heat flux", "W/m2",
    223241     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    224      .                "ave(X)", zsto,zout)
     242     .                "ave(X)", zstophy,zout)
    225243c
    226244         CALL histdef(nid_day, "SWdnSFC", "SWdn at surface","W/m2",
    227245     .                iim,jjmp1,nhori, 1,1,1,-99,
    228      .                32, "ave(X)", zsto,zout)
     246     .                32, "ave(X)", zstophy,zout)
     247c
     248cIM diagnostiques flux ocean-atm ou ocean-glace de mer
     249cIM pour utilisation dans un modele de "slab" ocean
     250c
     251         IF (OCEAN.EQ.'force ') THEN
     252c
     253          CALL histdef(nid_day, "lmt_bils",
     254     .         "Bilan au sol atmosphere forcee", "W/m2",
     255     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     256     .                "ave(X)", zstophy,zout)
     257c
     258         ELSE IF (OCEAN.EQ.'slab  ') THEN
     259c
     260          CALL histdef(nid_day, "slab_bils",
     261     .                "Bilan au sol slab", "W/m2",
     262     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     263     .                "ave(X)", zstophy,zout)
     264c
     265          CALL histdef(nid_day, "tslab", "Slab SST ", "K",
     266     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     267     .                "ave(X)", zstophy,zout)
     268c
     269          CALL histdef(nid_day, "seaice", "Slab seaice", "kg/m2",
     270     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     271     .                "ave(X)", zstophy,zout)
     272c
     273          CALL histdef(nid_day, "siceh", "Slab seaice height", "m",
     274     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     275     .                "ave(X)", zstophy,zout)
     276c
     277         ENDIF !OCEAN.EQ.force/slab
     278c
     279         CALL histdef(nid_day, "fluxo",
     280     .                "Flux turbulents ocean-atmosphere", "W/m2",
     281     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     282     .                "ave(X)", zstophy,zout)
     283c
     284         CALL histdef(nid_day, "fluxg",
     285     .                "Flux ocean-glace de mer", "W/m2",
     286     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     287     .                "ave(X)", zstophy,zout)
    229288c
    230289      ENDIF !lev_histday.GE.1
     
    234293         CALL histdef(nid_day, "bils", "Surf. total heat flux", "W/m2",
    235294     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    236      .                "ave(X)", zsto,zout)
     295     .                "ave(X)", zstophy,zout)
    237296c
    238297         CALL histdef(nid_day, "fder", "Heat flux derivation", "W/m2/K",
    239298     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    240      .                "ave(X)", zsto,zout)
     299     .                "ave(X)", zstophy,zout)
    241300c
    242301      ENDIF !lev_histday.GE.2
     
    252311         CALL histdef(nid_day, "temp", "Air temperature", "K",
    253312     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    254      .                "ave(X)", zsto,zout)
     313     .                "ave(X)", zstophy,zout)
    255314c
    256315         CALL histdef(nid_day, "ovap", "Specific humidity", "kg/kg",
    257316     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    258      .                "ave(X)", zsto,zout)
    259 c
    260          CALL histdef(nid_day, "geop", "Geopotential height", "m",
    261      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    262      .                "ave(X)", zsto,zout)
     317     .                "ave(X)", zstophy,zout)
     318c
     319         CALL histdef(nid_day, "geop", "Geopotential height", "m2/s2",
     320     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     321     .                "ave(X)", zstophy,zout)
    263322c
    264323         CALL histdef(nid_day, "vitu", "Zonal wind", "m/s",
    265324     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    266      .                "ave(X)", zsto,zout)
     325     .                "ave(X)", zstophy,zout)
    267326c
    268327         CALL histdef(nid_day, "vitv", "Meridional wind", "m/s",
    269328     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    270      .                "ave(X)", zsto,zout)
    271 c
    272          CALL histdef(nid_day, "vitw", "Vertical wind", "Pa/s",
    273      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    274      .                "ave(X)", zsto,zout)
     329     .                "ave(X)", zstophy,zout)
     330c
     331         CALL histdef(nid_day, "vitw", "Vertical wind", "m/s",
     332     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     333     .                "ave(X)", zstophy,zout)
    275334c
    276335         CALL histdef(nid_day, "pres", "Air pressure", "Pa",
    277336     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    278      .                "ave(X)", zsto,zout)
     337     .                "ave(X)", zstophy,zout)
    279338c
    280339c=================================================================
     
    292351         CALL histdef(nid_day, "SWupTOA", "SWup at TOA","W/m2",
    293352     .                iim,jjmp1,nhori, 1,1,1,-99,
    294      .                32, "ave(X)", zsto,zout)
     353     .                32, "ave(X)", zstophy,zout)
    295354c
    296355         CALL histdef(nid_day, "SWupSFC", "SWup at surface","W/m2",
    297356     .                iim,jjmp1,nhori, 1,1,1,-99,
    298      .                32, "ave(X)", zsto,zout)
     357     .                32, "ave(X)", zstophy,zout)
    299358c
    300359         CALL histdef(nid_day, "SWdnTOA", "SWdn at TOA","W/m2",
    301360     .                iim,jjmp1,nhori, 1,1,1,-99,
    302      .                32, "ave(X)", zsto,zout)
     361     .                32, "ave(X)", zstophy,zout)
    303362c
    304363         CALL histdef(nid_day, "SWupTOAclr",
    305364     .                "SWup clear sky at TOA","W/m2",
    306365     .                iim,jjmp1,nhori, 1,1,1,-99,
    307      .                32, "ave(X)", zsto,zout)
     366     .                32, "ave(X)", zstophy,zout)
    308367
    309368         CALL histdef(nid_day, "SWupSFCclr",
    310369     .                "SWup clear sky at surface","W/m2",
    311370     .                iim,jjmp1,nhori, 1,1,1,-99,
    312      .                32, "ave(X)", zsto,zout)
     371     .                32, "ave(X)", zstophy,zout)
    313372
    314373         CALL histdef(nid_day, "SWdnTOAclr",
    315374     .                "SWdn clear sky at TOA","W/m2",
    316375     .                iim,jjmp1,nhori, 1,1,1,-99,
    317      .                32, "ave(X)", zsto,zout)
     376     .                32, "ave(X)", zstophy,zout)
    318377
    319378         CALL histdef(nid_day, "SWdnSFCclr",
    320379     .                "SWdn clear sky at surface","W/m2",
    321380     .                iim,jjmp1,nhori, 1,1,1,-99,
    322      .                32, "ave(X)", zsto,zout)
     381     .                32, "ave(X)", zstophy,zout)
    323382c
    324383c=================================================================
     
    328387c=================================================================
    329388c
    330          CALL histdef(nid_day, "tter", "Surface Temperature", "K",
    331      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    332      .                "ave(X)", zsto,zout)
    333 c
    334          CALL histdef(nid_day, "tlic", "Surface Temperature", "K",
    335      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    336      .                "ave(X)", zsto,zout)
    337 c
    338          CALL histdef(nid_day, "toce", "Surface Temperature", "K",
    339      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    340      .                "ave(X)", zsto,zout)
    341 c
    342          CALL histdef(nid_day, "tsic", "Surface Temperature", "K",
    343      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    344      .                "ave(X)", zsto,zout)
    345 c
    346          CALL histdef(nid_day, "t2mter", "Temp.terre 2m", "K",
    347      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    348      .                "ave(X)", zsto,zout)
     389         CALL histdef(nid_day, "tter", "Surface Temperature ter", "K",
     390     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     391     .                "ave(X)", zstophy,zout)
     392c
     393         CALL histdef(nid_day, "tlic", "Surface Temperature lic", "K",
     394     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     395     .                "ave(X)", zstophy,zout)
     396c
     397         CALL histdef(nid_day, "toce", "Surface Temperature oce", "K",
     398     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     399     .                "ave(X)", zstophy,zout)
     400c
     401         CALL histdef(nid_day, "tsic", "Surface Temperature sic", "K",
     402     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     403     .                "ave(X)", zstophy,zout)
     404c
     405         CALL histdef(nid_day, "t2mter", "Temp.tere 2m", "K",
     406     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     407     .                "ave(X)", zstophy,zout)
    349408c
    350409         CALL histdef(nid_day, "t2mlic", "Temp.lic 2m", "K",
    351410     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    352      .                "ave(X)", zsto,zout)
     411     .                "ave(X)", zstophy,zout)
    353412c
    354413         CALL histdef(nid_day, "t2moce", "Temp.oce 2m", "K",
    355414     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    356      .                "ave(X)", zsto,zout)
     415     .                "ave(X)", zstophy,zout)
    357416c
    358417         CALL histdef(nid_day, "t2msic", "Temp.sic 2m", "K",
    359418     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    360      .                "ave(X)", zsto,zout)
     419     .                "ave(X)", zstophy,zout)
    361420c
    362421         CALL histdef(nid_day, "t2mter_min", "Temp.terre 2m min.",
    363422     .                "K",
    364423     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    365      .                t2mincels, zsto,zout)
     424     .                t2mincels, zstophy,zout)
    366425c
    367426         CALL histdef(nid_day, "t2mter_max", "Temp.terre 2m max.",
    368427     .                "K",
    369428     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    370      .                t2maxcels, zsto,zout)
     429     .                t2maxcels, zstophy,zout)
    371430c
    372431         CALL histdef(nid_day, "u10mter", "Vent zonal ter 10m", "m/s",
    373432     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    374      .                "ave(X)", zsto,zout)
     433     .                "ave(X)", zstophy,zout)
    375434c
    376435         CALL histdef(nid_day, "u10mlic", "Vent zonal lic 10m", "m/s",
    377436     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    378      .                "ave(X)", zsto,zout)
     437     .                "ave(X)", zstophy,zout)
    379438c
    380439         CALL histdef(nid_day, "u10moce", "Vent zonal oce 10m", "m/s",
    381440     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    382      .                "ave(X)", zsto,zout)
     441     .                "ave(X)", zstophy,zout)
    383442c
    384443         CALL histdef(nid_day, "u10msic", "Vent zonal sic 10m",
    385444     .                 "m/s",iim,jjmp1,nhori, 1,1,1, -99, 32,
    386      .                "ave(X)", zsto,zout)
     445     .                "ave(X)", zstophy,zout)
    387446c
    388447         CALL histdef(nid_day, "v10mter", "Vent meridien ter 10m",
    389448     .                "m/s", iim,jjmp1,nhori, 1,1,1, -99, 32,
    390      .                "ave(X)", zsto,zout)
     449     .                "ave(X)", zstophy,zout)
    391450c
    392451         CALL histdef(nid_day, "v10mlic", "Vent meridien lic 10m",
    393452     .                 "m/s",iim,jjmp1,nhori, 1,1,1, -99, 32,
    394      .                "ave(X)", zsto,zout)
     453     .                "ave(X)", zstophy,zout)
    395454c
    396455         CALL histdef(nid_day, "v10moce", "Vent meridien oce 10m",
    397456     .                 "m/s",iim,jjmp1,nhori, 1,1,1, -99, 32,
    398      .                "ave(X)", zsto,zout)
     457     .                "ave(X)", zstophy,zout)
    399458c
    400459         CALL histdef(nid_day, "v10msic", "Vent meridien sic 10m",
    401460     .                 "m/s",iim,jjmp1,nhori, 1,1,1, -99, 32,
    402      .                "ave(X)", zsto,zout)
     461     .                "ave(X)", zstophy,zout)
    403462c
    404463         DO nsrf = 1, nbsrf
    405464C
    406465           call histdef(nid_day, "pourc_"//clnsurf(nsrf),
    407      $         "Fraction"//clnsurf(nsrf), "W/m2", 
    408      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    409      $         "ave(X)", zsto,zout)
     466     $         "% "//clnsurf(nsrf), "%", 
     467     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     468     $         "ave(X)", zstophy,zout)
     469C
     470           call histdef(nid_day, "fract_"//clnsurf(nsrf),
     471     $         "Fraction "//clnsurf(nsrf), "1", 
     472     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     473     $         "ave(X)", zstophy,zout)
    410474C
    411475           call histdef(nid_day, "tsol_"//clnsurf(nsrf),
    412      $         "Fraction"//clnsurf(nsrf), "W/m2", 
    413      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    414      $         "ave(X)", zsto,zout)
     476     $         "Temperature "//clnsurf(nsrf), "K", 
     477     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     478     $         "ave(X)", zstophy,zout)
    415479C
    416480           call histdef(nid_day, "sens_"//clnsurf(nsrf),
    417481     $         "Sensible heat flux "//clnsurf(nsrf), "W/m2", 
    418482     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    419      $         "ave(X)", zsto,zout)
     483     $         "ave(X)", zstophy,zout)
    420484c
    421485           call histdef(nid_day, "lat_"//clnsurf(nsrf),
    422486     $         "Latent heat flux "//clnsurf(nsrf), "W/m2", 
    423487     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    424      $         "ave(X)", zsto,zout)
     488     $         "ave(X)", zstophy,zout)
    425489C
    426490           call histdef(nid_day, "taux_"//clnsurf(nsrf),
    427      $         "Zonal wind stress"//clnsurf(nsrf),"Pa",
    428      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    429      $         "ave(X)", zsto,zout)
     491     $         "Zonal wind stress "//clnsurf(nsrf),"Pa",
     492     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     493     $         "ave(X)", zstophy,zout)
    430494
    431495           call histdef(nid_day, "tauy_"//clnsurf(nsrf),
    432      $         "Meridional xind stress "//clnsurf(nsrf), "Pa", 
    433      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    434      $         "ave(X)", zsto,zout)
     496     $         "Meridional wind stress "//clnsurf(nsrf), "Pa", 
     497     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     498     $         "ave(X)", zstophy,zout)
    435499C
    436500           call histdef(nid_day, "albe_"//clnsurf(nsrf),
    437      $         "Albedo surf. "//clnsurf(nsrf), "W/m2", 
    438      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    439      $         "ave(X)", zsto,zout)
     501     $         "Albedo surf. "//clnsurf(nsrf), "-", 
     502     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     503     $         "ave(X)", zstophy,zout)
    440504C
    441505           call histdef(nid_day, "rugs_"//clnsurf(nsrf),
    442      $         "Latent heat flux "//clnsurf(nsrf), "W/m2", 
    443      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    444      $         "ave(X)", zsto,zout)
     506     $         "Rugosite "//clnsurf(nsrf), "m", 
     507     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     508     $         "ave(X)", zstophy,zout)
    445509C
    446510         END DO
     
    452516c=================================================================
    453517      ENDIF !lev_histday.GE.4
     518c
     519      IF(lev_histday.GE.5) THEN !lev_histday.GE.5
     520c
     521c rajout sorties F. Aires
     522         CALL histdef(nid_day, "tops0", "CS Solar rad. at TOA",
     523     .                "W/m2",
     524     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     525     .                "ave(X)", zstophy,zout)
     526c
     527         CALL histdef(nid_day, "topl0", "CS IR rad. at TOA",
     528     .                "W/m2",
     529     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     530     .                "ave(X)", zstophy,zout)
     531c
     532         CALL histdef(nid_day, "sols0", "CS Net Solar rad. at surf.",
     533     .                "W/m2",
     534     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     535     .                "ave(X)", zstophy,zout)
     536c
     537         CALL histdef(nid_day, "soll0", "CS Net IR rad. at surface",
     538     .                "W/m2",
     539     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     540     .                "ave(X)", zstophy,zout)
     541c
     542         CALL histdef(nid_day, "rneb", "Cloud fraction", "-",
     543     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     544     .                "ave(X)", zstophy,zout)
     545c
     546         CALL histdef(nid_day, "rnebcon", "Convective Cloud Fraction"
     547     .                , "-",
     548     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     549     .                "ave(X)", zstophy,zout)
     550c
     551         CALL histdef(nid_day,"lwcon","Cloud liquid water content",
     552     .                "kg/kg",
     553     .                iim,jjmp1,nhori, klev,1,klev, nvert, 32,
     554     .                "ave(X)", zstophy,zout)
     555c
     556        CALL histdef(nid_day,"iwcon","Cloud ice water content","kg/kg",
     557     .                iim,jjmp1,nhori, klev,1,klev, nvert, 32,
     558     .                "ave(X)", zstophy,zout)
     559c
     560         CALL histdef(nid_day,"lwp","Cloud water path","kg/m2",
     561     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     562     .                "ave(X)", zstophy,zout)
     563c
     564         CALL histdef(nid_day,"iwp","Cloud ice water path","kg/m2",
     565     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     566     .                "ave(X)", zstophy,zout)
     567c
     568        CALL histdef(nid_day,"meantaucld",
     569     .                "ISCCP mean cloud optical thickness","1",
     570     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     571     .                "ave(X)", zstophy,zout)
     572c
     573        CALL histdef(nid_day,"cldtau","Cloud optical thickness","1",
     574     .                iim,jjmp1,nhori, klev,1,klev, nvert, 32,
     575     .                "ave(X)", zstophy,zout)
     576c
     577        CALL histdef(nid_day,"cldemi","Cloud optical emissivity","1",
     578     .                iim,jjmp1,nhori, klev,1,klev, nvert, 32,
     579     .                "ave(X)", zstophy,zout)
     580c
     581      ENDIF !lev_histday.GE.5
    454582c=================================================================
    455583c
  • LMDZ4/trunk/libf/phylmd/ini_histhf.h

    r590 r644  
    55      IF (ok_hf) THEN
    66c
    7         zout = dtime * REAL(NINT(86400./dtime*ecrit_hf))
    8         zsto = zout
    9         zsto1 = dtime
    10         PRINT*, 'La frequence de sortie instant. est de ', ecrit_hf
     7       zstohf = dtime * FLOAT(ecrit_hf)
     8       zstophy = dtime
     9       zstoday = dtime * FLOAT(ecrit_day)
     10       zout = dtime * FLOAT(ecrit_hf)
    1111c
    1212         idayref = day_ref
     
    2121
    2222         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
    23 
    24 cccIM      CALL histbeg("histhf", iim,zx_lon, jjmp1,zx_lat,
    2523         CALL histbeg("histhf", iim,zx_lon(:,1), jjmp1,zx_lat(1,:),
    2624     .                 1,iim,1,jjmp1, itau_phy, zjulian, dtime,
     
    2826
    2927         CALL histvert(nid_hf, "presnivs", "Vertical levels", "mb",
    30      .                 klev, presnivs, nvert)
    31 c
    32 
     28     .                 klev, presnivs/100., nvert)
     29c
     30
     31      IF(type_run.EQ."CLIM".OR.type_run.EQ."ENSP") THEN
     32c
    3333      IF(lev_histhf.GE.1) THEN
    3434c
    35 c        CALL histdef(nid_hf, "phis", "Surface geop. height", "-",
    36 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    37 c    .                "once", zsto,zout)
    38 c
    39 c        CALL histdef(nid_hf, "aire", "Grid area", "-",
    40 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    41 c    .                "once", zsto,zout)
    42 c
    4335         CALL histdef(nid_hf, "aireTER","Grid area CONT","-",
    4436     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    45      .                "once", zsto,zout)
     37     .                "once", zstohf,zout)
    4638c
    4739         CALL histdef(nid_hf, "contfracATM","% sfce ter+lic ","-",
    4840     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    49      .                "once", zsto,zout)
     41     .                "once", zstohf,zout)
    5042c
    5143         CALL histdef(nid_hf, "contfracOR","% sfce terre OR", "-",
    5244     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    53      .                "once", zsto,zout)
     45     .                "once", zstohf,zout)
    5446c
    5547c Champs 2D:
     
    5749         CALL histdef(nid_hf, "t2m", "Temperature 2m", "K",
    5850     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    59      .                "inst(X)", zsto,zout)
     51     .                "inst(X)", zstohf,zout)
    6052c
    6153         CALL histdef(nid_hf, "q2m", "Specific humidity", "kg/kg",
    6254     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    63      .                "inst(X)", zsto,zout)
     55     .                "inst(X)", zstohf,zout)
    6456c
    6557         CALL histdef(nid_hf, "psol", "Surface Pressure", "Pa",
    6658     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    67      .                "inst(X)", zsto,zout)
    68 c
    69          print*,'ATTENTION METTRE AVE(X) POUR LES PRECIPS'
    70 
    71          CALL histdef(nid_hf, "rain", "Precipitation", "kg/m^2s",
     59     .                "inst(X)", zstohf,zout)
     60c
     61         CALL histdef(nid_hf, "precip", "Precipitation", "kg/(s*m2)",
    7262     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    73      .                "ave(X)", zsto1,zout)
     63     .                "ave(X)", zstophy,zout)
    7464c
    7565cIM ENSEMBLES BEG
    76 c
    7766         CALL histdef(nid_hf, "tsol", "Surface Temperature", "K",
    7867     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    79      .                "inst(X)", zsto,zout)
     68     .                "inst(X)", zstohf,zout)
    8069c
    8170         CALL histdef(nid_hf, "slp", "Sea Level Pressure", "Pa",
    8271     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    83      .                "inst(X)", zsto,zout)
    84 c
     72     .                "inst(X)", zstohf,zout)
    8573c
    8674         CALL histdef(nid_hf, "u10m", "Vent zonal 10m", "m/s",
    8775     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    88      .                "inst(X)", zsto,zout)
     76     .                "inst(X)", zstohf,zout)
    8977c
    9078         CALL histdef(nid_hf, "v10m", "Vent meridien 10m", "m/s",
    9179     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    92      .                "inst(X)", zsto,zout)
     80     .                "inst(X)", zstohf,zout)
    9381c
    9482         CALL histdef(nid_hf, "wind10m","10-m wind speed","m/s",
    9583     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    96      .                "inst(X)", zsto,zout)
    97 c
    98          DO k=1, nlevENS
    99           IF(clev(k).EQ."500") THEN
    100           CALL histdef(nid_hf, "phi"//clev(k),
    101      .                "Geopotential"//clev(k)//"mb", "m2/s2",
    102      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    103      .                "inst(X)", zsto,zout)
    104           ENDIF !clev(k).EQ."500"
    105          ENDDO !k=1, nlevENS
     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
    106105c
    107106      ENDIF !lev_histhf.GE.1
     
    109108      IF(lev_histhf.GE.2) THEN
    110109c
    111          CALL histdef(nid_hf, "cldt", "Total cloudiness", "-",
    112      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    113      .                "ave(X)", zsto1,zout)
    114 c
    115 c -- LOOP
     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
    116119         CALL histdef(nid_hf, "SWdownOR",
    117      .                "Sfce incident SW down radiation OR", "W/m^2",
    118      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    119      .                "ave(X)", zsto1,zout)
    120 c
    121          CALL histdef(nid_hf, "SWnetOR",
    122      .                "Sfce incident SW net radiation OR", "W/m^2",
    123      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    124      .                "ave(X)", zsto1,zout)
    125 c -- LOOP
     120     .                "Sfce incident SW radiation OR", "W/m2",
     121     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     122     .                "ave(X)", zstophy,zout)
    126123c
    127124         CALL histdef(nid_hf, "LWdownOR",
    128      .                "Sfce incident LW radiation OR", "W/m^2",
    129      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    130      .                "ave(X)", zsto1,zout)
     125     .                "Sfce incident LW radiation OR", "W/m2",
     126     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     127     .                "ave(X)", zstophy,zout)
    131128      ENDIF !lev_histhf.GE.2
    132129c
     
    135132      IF(lev_histhf.GE.3) THEN
    136133c
    137          DO k=1, nlevENS
    138 c
    139           CALL histdef(nid_hf, "t"//clev(k),
    140      .                 "Temperature"//clev(k)//"mb","K",
    141      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    142      .                "inst(X)", zsto,zout)
    143 c
    144           IF(clev(k).NE."500") THEN
    145           CALL histdef(nid_hf, "phi"//clev(k),
    146      .                "Geopotential"//clev(k)//"mb", "m2/s2",
    147      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    148      .                "inst(X)", zsto,zout)
     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)
    149158          ENDIF
    150159c
    151           CALL histdef(nid_hf, "q"//clev(k),
    152      .                 "Specific humidity"//clev(k)//"mb","kg/kg",
    153      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    154      .                "inst(X)", zsto,zout)
    155 c
    156          IF(1.EQ.0) THEN
    157          CALL histdef(nid_hf, "rh"//clev(k),
    158      .                 "Relative humidity"//clev(k)//"mb", "%",
    159      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    160      .                "inst(X)", zsto,zout)
    161          ENDIF
    162 c
    163           CALL histdef(nid_hf, "u"//clev(k),
    164      .                 "Zonal wind"//clev(k)//"mb","m/s",
    165      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    166      .                "inst(X)", zsto,zout)
    167 c
    168           CALL histdef(nid_hf, "v"//clev(k),
    169      .                 "Meridional wind"//clev(k)//"mb","m/s",
    170      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    171      .                "inst(X)", zsto,zout)
    172 c
    173          ENDDO !nlevENS
    174          IF(1.EQ.0) THEN
    175          CALL histdef(nid_hf, "cdrm", " Momentum drag coef.", "-",
    176      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    177      .                "inst(X)", zsto,zout)
    178 c
    179          CALL histdef(nid_hf, "cdrh", "Heat drag coef.", "-",
    180      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    181      .                "inst(X)", zsto,zout)
    182          ENDIF !(1.EQ.0) THEN
     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
    183178c
    184179      ENDIF !lev_histhf.GE.3
    185180c
    186181      IF(lev_histhf.GE.4) THEN
     182c
     183cIM sorties hf 3D
     184c
     185#undef histhf3d
    187186#define histhf3d
    188187#ifdef histhf3d
     
    191190      ENDIF !lev_histhf.GE.4
    192191c
    193 c#define histhf3d
    194 c#ifdef histhf3d
    195 c#include "ini_histhf3d.h"
    196 c#endif
    197 c
    198          CALL histend(nid_hf)
    199 c
    200       endif ! ok_hf
     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
  • LMDZ4/trunk/libf/phylmd/ini_histhf3d.h

    r524 r644  
    1 !
    2 ! $Header$
    3 !
    4 
    5 c     IF (ok_hf) THEN
    61c
    7         zout = dtime * REAL(NINT(86400./dtime*ecrit_hf))
    8         zsto = zout
    9         zsto1 = dtime
    10         PRINT*, 'La frequence de sortie instant. est de ', ecrit_hf
     2c $Header$
    113c
    12 cIM cf LF
    13          idayref = day_ref
    14          CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)
    15 
    16 cccIM    CALL ymds2ju(anne_ini, 1, 1, 0.0, zjulian)
    17 c        CALL ymds2ju(annee_ref, 1, 1, 0.0, zjulian)
    18 c        zjulian = zjulian + day_ini
    19 cIM cf LF
    20 
     4c sorties hf 3d
    215c
    22          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
    23          DO i = 1, iim
    24             zx_lon(i,1) = rlon(i+1)
    25             zx_lon(i,jjmp1) = rlon(i+1)
    26          ENDDO
    27 
    28          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
    29 
    30 cccIM      CALL histbeg("histhf", iim,zx_lon, jjmp1,zx_lat,
    31          CALL histbeg("histhf3d", iim,zx_lon(:,1), jjmp1,zx_lat(1,:),
     6cIM 130904     zstohf = dtime * REAL(NINT(86400./dtime*ecrit_hf))
     7cIM 130904     zout = dtime * REAL(NINT(86400./dtime*ecrit_hf))
     8cIM     zstohf = dtime * FLOAT(ecrit_hf)
     9cIM     zout = dtime * FLOAT(ecrit_hf)
     10        zstohf = dtime * FLOAT(ecrit_hf)
     11        zout = dtime * FLOAT(ecrit_hf)
     12c
     13c       PRINT*, 'La frequence de sortie hf3d est de ', ecrit_hf
     14c
     15        idayref = day_ref
     16        CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)
     17c
     18        CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
     19        DO i = 1, iim
     20         zx_lon(i,1) = rlon(i+1)
     21         zx_lon(i,jjmp1) = rlon(i+1)
     22        ENDDO
     23c
     24        CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
     25        CALL histbeg("histhf3d", iim,zx_lon(:,1), jjmp1,zx_lat(1,:),
    3226     .                 1,iim,1,jjmp1, itau_phy, zjulian, dtime,
    3327     .                 nhori, nid_hf3d)
    34 
    35          CALL histvert(nid_hf3d, "presnivs", "Vertical levels", "mb",
    36      .                 klev, presnivs, nvert)
    3728c
    38 
    39 c     IF(lev_histhf.GE.4) THEN
     29        CALL histvert(nid_hf3d, "presnivs", "Vertical levels", "mb",
     30     .                 klev, presnivs/100., nvert)
    4031c
    4132c Champs 3D:
    4233c
    43          CALL histdef(nid_hf3d, "temp", "Air temperature", "K",
     34        CALL histdef(nid_hf3d, "temp", "Air temperature", "K",
    4435     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    45      .                "ave(X)", zsto,zout)
     36     .                "ave(X)", zstohf,zout)
    4637c
    47          CALL histdef(nid_hf3d, "ovap", "Specific humidity", "kg/kg",
     38        CALL histdef(nid_hf3d, "ovap", "Specific humidity", "kg/kg",
    4839     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    49      .                "ave(X)", zsto,zout)
     40     .                "ave(X)", zstohf,zout)
    5041c
    51          CALL histdef(nid_hf3d, "vitu", "Zonal wind", "m/s",
     42        CALL histdef(nid_hf3d, "vitu", "Zonal wind", "m/s",
    5243     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    53      .                "ave(X)", zsto,zout)
     44     .                "ave(X)", zstohf,zout)
    5445c
    55          CALL histdef(nid_hf3d, "vitv", "Meridional wind", "m/s",
     46        CALL histdef(nid_hf3d, "vitv", "Meridional wind", "m/s",
    5647     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    57      .                "ave(X)", zsto,zout)
     48     .                "ave(X)", zstohf,zout)
    5849c
    59 c     ENDIF
     50        CALL histend(nid_hf3d)
    6051c
    61          CALL histend(nid_hf3d)
    62 c
    63 c     endif ! ok_hf
  • LMDZ4/trunk/libf/phylmd/ini_histins.h

    r524 r644  
    2424         write(*,*)'Inst ', itau_phy, zjulian
    2525         CALL histvert(nid_ins, "presnivs", "Vertical levels", "mb",
    26      .                 klev, presnivs, nvert)
     26cIM    .                 klev, presnivs, nvert)
     27     .                 klev, presnivs/100., nvert)
    2728c        call histvert(nid_ins, 'sig_s', 'Niveaux sigma','-',
    2829c    .              klev, znivsig, nvert)
     
    8889     .                "inst(X)", zsto,zout)
    8990c
    90          CALL histdef(nid_ins, "snow_mass", "Snow Mass", "kg/m2",
    91      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    92      .                "inst(X)", zsto,zout)
     91c        CALL histdef(nid_ins, "snow_mass", "Snow Mass", "kg/m2",
     92c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     93c    .                "inst(X)", zsto,zout)
    9394c
    9495         CALL histdef(nid_ins, "topl", "OLR", "W/m2",
     
    143144C
    144145           call histdef(nid_ins, "pourc_"//clnsurf(nsrf),
    145      $         "Fraction"//clnsurf(nsrf), "W/m2", 
     146     $         "% "//clnsurf(nsrf), "%", 
     147     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     148     $         "inst(X)", zsto,zout)
     149
     150           call histdef(nid_ins, "fract_"//clnsurf(nsrf),
     151     $         "Fraction "//clnsurf(nsrf), "1", 
    146152     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    147153     $         "inst(X)", zsto,zout)
     
    196202c
    197203c
     204cIM cf. AM 081204 BEG
     205c HBTM2
     206         CALL histdef(nid_ins, "s_pblh", "Boundary Layer Height", "m",
     207     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     208     .                "inst(X)", zsto,zout)
     209c
     210         CALL histdef(nid_ins, "s_pblt", "T at Boundary Layer Height",
     211     .                "K",
     212     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     213     .                "inst(X)", zsto,zout)
     214c
     215         CALL histdef(nid_ins, "s_lcl", "Condensation level", "m",
     216     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     217     .                "inst(X)", zsto,zout)
     218c
     219         CALL histdef(nid_ins, "s_capCL", "Conv avlbl pot ener for
     220     .                ABL", "J/m2",
     221     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     222     .                "inst(X)", zsto,zout)
     223c
     224         CALL histdef(nid_ins, "s_oliqCL", "Liq Water in BL", "kg/m2",
     225     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     226     .                "inst(X)", zsto,zout)
     227c
     228         CALL histdef(nid_ins, "s_cteiCL", "Instability criteria
     229     .                (ABL)", "K",
     230     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     231     .                "inst(X)", zsto,zout)
     232c
     233         CALL histdef(nid_ins, "s_therm", "Exces du thermique", "K",
     234     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     235     .                "inst(X)", zsto,zout)
     236c
     237         CALL histdef(nid_ins, "s_trmb1", "deep_cape(HBTM2)", "J/m2",
     238     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     239     .                "inst(X)", zsto,zout)
     240c
     241         CALL histdef(nid_ins, "s_trmb2", "inhibition (HBTM2)", "J/m2",
     242     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     243     .                "inst(X)", zsto,zout)
     244c
     245         CALL histdef(nid_ins, "s_trmb3", "Point Omega (HBTM2)", "m",
     246     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     247     .                "inst(X)", zsto,zout)
     248c
     249cIM cf. AM 081204 END
     250c
    198251c Champs 3D:
    199252c
  • LMDZ4/trunk/libf/phylmd/ini_histmth.h

    r619 r644  
    1 !
    2 ! $Header$
    3 !
     1c
     2c $Header$
     3c
    44      IF (ok_mensuel) THEN
    55c
    6          zsto = dtime
    7          zout = dtime * ecrit_mth
    8 c
    9 c zsto1: pour des valeurs "instantannees" mensuelles
    10          zsto1 = dtime * ecrit_mth
    11 c zsto2: pour des flux radiatifs calcules tous les 2 heures
    12          zsto2 = dtime * radpas
    13          PRINT*,' zsto,zsto1,zsto2,zout=',zsto, zsto1, zsto2,zout
     6       zstophy = dtime
     7       zstomth = dtime * FLOAT(ecrit_mth) !valeurs mensuelles "instantannees"
     8       zstorad = dtime * FLOAT(radpas)    !variables stockees toutes les 2h
     9       zstohf = dtime *FLOAT(ecrit_hf)   !variables stockees toutes les 6h
     10       zout = dtime * FLOAT(ecrit_mth)    !frequence des sorties : 1 val. par mois
     11c
     12cIM    PRINT*,' La zstophy,zstorad,zstohf,zstomth,zout=',
     13cIM  . zstophy,zstorad,zstohf,zstomth,zout
    1414c
    1515         idayref = day_ref
     
    2121            zx_lon(i,jjmp1) = rlon(i+1)
    2222         ENDDO
     23c
     24cIM cf. AM 081204 BEG region
     25c         imin_histmth=1
     26c         imax_histmth=iim
     27c         jmin_histmth=1
     28c         jmax_histmth=jjmp1
     29c         do i=1,iim-1
     30c            if(zx_lon(i,1).lt.lonmin_histmth) imin_histmth=i
     31c            if(zx_lon(i,1).le.lonmax_histmth) imax_histmth=i+1
     32c         enddo
     33c         do j=1,jjmp1-1
     34c            if(zx_lat(1,j).ge.latmin_histmth) jmax_histmth=j
     35c            if(zx_lat(1,j).gt.latmax_histmth) jmin_histmth=j
     36c         enddo
     37c
     38c         print*,'On stoke le fichier instantanne sur, ',
     39c     s   imin_histmth,imax_histmth,jmin_histmth,jmax_histmth
     40c         print*,'On stoke le fichier instantanne sur, ',
     41c     s   zx_lon(imin_histmth,1),zx_lon(imax_histmth,1),
     42c     s   zx_lat(1,jmin_histmth),zx_lat(1,jmax_histmth)
     43cIM cf. AM 081204 END region
     44c
    2345         DO ll=1,klev
    2446            znivsig(ll)=float(ll)
     
    2850     .                 1,iim,1,jjmp1, itau_phy, zjulian, dtime,
    2951     .                 nhori, nid_mth)
    30          write(*,*)'Mensuel ', itau_phy, zjulian
     52c
     53cIM cf. AM 081204 BEG region
     54c         CALL histbeg("histmth.nc", iim,zx_lon(:,1), jjmp1,zx_lat(1,:),
     55c     .                 imin_histmth,imax_histmth-imin_histmth+1
     56c     .                 ,jmin_histmth,jmax_histmth-jmin_histmth+1
     57c     .                 , itau_phy, zjulian, dtime,
     58c     .                 nhori, nid_mth)
     59cIM 081204 END
     60c
    3161         CALL histvert(nid_mth, "presnivs", "Vertical levels", "mb",
    32      .                 klev, presnivs, nvert)
    33 c        call histvert(nid_mth, 'sig_s', 'Niveaux sigma','-',
    34 c    .              klev, znivsig, nvert)
    35 c
     62     .                 klev, presnivs/100., nvert)
     63c
     64      IF(type_run.EQ."CLIM".OR.type_run.EQ."ENSP") THEN
    3665c
    3766      IF(lev_histmth.GE.1) THEN
    38          CALL histdef(nid_mth, "phis", "Surface geop. height", "-",
    39      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    40      .                "once",  zsto,zout)
     67c
     68         CALL histdef(nid_mth, "phis",
     69     .                "Surface geop. height", "m2/s2",
     70     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     71     .                "once",  zstophy,zout)
    4172c
    4273         CALL histdef(nid_mth, "aire", "Grid area", "-",
    4374     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    44      .                "once",  zsto,zout)
    45 c
    46            call histdef(nid_mth, "pourc_"//clnsurf(is_ter),
    47      $         "Fraction "//clnsurf(is_ter), "W/m2", 
    48      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    49      $         "once", zsto,zout)
     75     .                "once",  zstophy,zout)
     76c
     77         CALL histdef(nid_mth, "pourc_"//clnsurf(is_ter),
     78     .         "% "//clnsurf(is_ter), "%", 
     79     .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     80     .         "once", zstophy,zout)
     81c
     82         CALL histdef(nid_mth, "fract_"//clnsurf(is_ter),
     83     .         "Fraction "//clnsurf(is_ter), "1", 
     84     .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     85     .         "once", zstophy,zout)
    5086c
    5187c Champs 2D:
     
    5389         CALL histdef(nid_mth, "slp", "Sea Level Pressure", "Pa",
    5490     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    55      .                "ave(X)", zsto,zout)
     91     .                "ave(X)", zstophy,zout)
    5692c
    5793         CALL histdef(nid_mth, "tsol", "Surface Temperature", "K",
    5894     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    59      .                "ave(X)", zsto,zout)
     95     .                "ave(X)", zstophy,zout)
    6096c
    6197         CALL histdef(nid_mth, "t2m", "Temperature 2m", "K",
    6298     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    63      .                "ave(X)", zsto,zout)
     99     .                "ave(X)", zstophy,zout)
     100c
    64101c ENSEMBLES BEG
    65102         CALL histdef(nid_mth, "t2m_min", "Temp. 2m min.",
    66103     .                "K",
    67104     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    68      .                t2mincels, zsto,zout)
     105     .                t2mincels, zstophy,zout)
    69106c
    70107         CALL histdef(nid_mth, "t2m_max", "Temp. 2m max.",
    71108     .                "K",
    72109     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    73      .                t2maxcels, zsto,zout)
     110     .                t2maxcels, zstophy,zout)
    74111c
    75112c        CALL histdef(nid_mth, "tsoil", "Sfce soil Temperature",
    76113c    .                "K",
    77114c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    78 c    .                "ave(X)", zsto,zout)
     115c    .                "ave(X)", zstophy,zout)
    79116c
    80117         CALL histdef(nid_mth, "wind10m","10-m wind speed","m/s",
    81118     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    82      .                "ave(X)", zsto,zout)
     119     .                "ave(X)", zstophy,zout)
    83120c
    84121         CALL histdef(nid_mth, "sicf", "Sea-ice fraction", "-",
    85122     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    86      .                "ave(X)", zsto,zout)
    87 
     123     .                "ave(X)", zstophy,zout)
    88124c
    89125c ENSEMBLES END
    90126         CALL histdef(nid_mth, "q2m", "Specific humidity 2m", "kg/kg",
    91127     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    92      .                "ave(X)", zsto,zout)
     128     .                "ave(X)", zstophy,zout)
    93129c
    94130         CALL histdef(nid_mth, "u10m", "Vent zonal 10m", "m/s",
    95131     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    96      .                "ave(X)", zsto,zout)
     132     .                "ave(X)", zstophy,zout)
    97133c
    98134         CALL histdef(nid_mth, "v10m", "Vent meridien 10m", "m/s",
    99135     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    100      .                "ave(X)", zsto,zout)
     136     .                "ave(X)", zstophy,zout)
    101137c
    102138         CALL histdef(nid_mth, "psol", "Surface Pressure", "Pa",
    103139     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    104      .                "ave(X)", zsto,zout)
     140     .                "ave(X)", zstophy,zout)
    105141c
    106142         CALL histdef(nid_mth, "qsurf", "Surface Air humidity", "kg/kg",
    107143     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    108      .                "ave(X)", zsto,zout)
     144     .                "ave(X)", zstophy,zout)
    109145c
    110146      if (.not. ok_veget) then
    111147         CALL histdef(nid_mth, "qsol", "Soil watter content", "mm",
    112148     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    113      .                "ave(X)", zsto,zout)
     149     .                "ave(X)", zstophy,zout)
    114150      endif
    115151c
     
    117153     .                "Number of day with rain (liq+sol)", "-",
    118154     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    119      .                "inst(X)", zsto1,zout)
     155     .                "inst(X)", zstomth,zout)
    120156c
    121157         CALL histdef(nid_mth, "precip", "Precipitation Totale liq+sol",
    122158     .                "kg/(s*m2)",
    123159     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    124      .                "ave(X)", zsto,zout)
     160     .                "ave(X)", zstophy,zout)
    125161c
    126162         CALL histdef(nid_mth, "plul", "Large-scale Precip.",
    127163     .   "kg/(s*m2)",
    128164     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    129      .                "ave(X)", zsto,zout)
     165     .                "ave(X)", zstophy,zout)
    130166c
    131167         CALL histdef(nid_mth, "pluc", "Convective Precip.",
    132168     .   "kg/(s*m2)",
    133169     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    134      .                "ave(X)", zsto,zout)
     170     .                "ave(X)", zstophy,zout)
    135171c
    136172         CALL histdef(nid_mth, "snow", "Snow fall", "kg/(s*m2)",
    137173     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    138      .                "ave(X)", zsto,zout)
    139 c
    140          CALL histdef(nid_mth, "snow_mass", "Snow Mass", "kg/m2",
    141      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    142      .                "ave(X)", zsto,zout)
     174     .                "ave(X)", zstophy,zout)
     175c
     176c        CALL histdef(nid_mth, "snow_mass", "Snow Mass", "kg/m2",
     177c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     178c    .                "ave(X)", zstophy,zout)
    143179c
    144180         CALL histdef(nid_mth, "evap", "Evaporation", "kg/(s*m2)",
    145181     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    146      .                "ave(X)", zsto,zout)
     182     .                "ave(X)", zstophy,zout)
    147183c
    148184         CALL histdef(nid_mth, "tops", "Solar rad. at TOA", "W/m2",
    149185     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    150      .                "ave(X)", zsto,zout)
    151 c
    152          CALL histdef(nid_mth, "tops0", "Solar rad. at TOA", "W/m2",
    153      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    154      .                "ave(X)", zsto,zout)
     186     .                "ave(X)", zstophy,zout)
     187c
     188         CALL histdef(nid_mth, "tops0", "CS Solar rad. at TOA", "W/m2",
     189     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     190     .                "ave(X)", zstophy,zout)
    155191c
    156192         CALL histdef(nid_mth, "topl", "IR rad. at TOA", "W/m2",
    157193     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    158      .                "ave(X)", zsto,zout)
     194     .                "ave(X)", zstophy,zout)
    159195c
    160196         CALL histdef(nid_mth, "topl0", "IR rad. at TOA", "W/m2",
    161197     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    162      .                "ave(X)", zsto,zout)
     198     .                "ave(X)", zstophy,zout)
    163199c
    164200         CALL histdef(nid_mth, "SWupTOA", "SWup at TOA","W/m2",
    165201     .                iim,jjmp1,nhori, 1,1,1,-99,
    166      .                32, "ave(X)", zsto2,zout)
     202     .                32, "ave(X)", zstophy,zout)
    167203c
    168204         CALL histdef(nid_mth, "SWupTOAclr",
    169205     .                "SWup clear sky at TOA","W/m2",
    170206     .                iim,jjmp1,nhori, 1,1,1,-99,
    171      .                32, "ave(X)", zsto2,zout)
     207     .                32, "ave(X)", zstophy,zout)
    172208c
    173209         CALL histdef(nid_mth, "SWdnTOA", "SWdn at TOA","W/m2",
    174210     .                iim,jjmp1,nhori, 1,1,1,-99,
    175      .                32, "ave(X)", zsto2,zout)
     211     .                32, "ave(X)", zstophy,zout)
    176212c
    177213         CALL histdef(nid_mth, "SWdnTOAclr",
    178214     .                "SWdn clear sky at TOA","W/m2",
    179215     .                iim,jjmp1,nhori, 1,1,1,-99,
    180      .                32, "ave(X)", zsto2,zout)
    181 c
    182          CALL histdef(nid_mth, "SWup200", "SWup at 200hPa","W/m2",
    183      .                iim,jjmp1,nhori, 1,1,1,-99,
    184      .                32, "ave(X)", zsto2,zout)
     216     .                32, "ave(X)", zstophy,zout)
     217c
     218         CALL histdef(nid_mth, "SWup200", "SWup at 200mb","W/m2",
     219     .                iim,jjmp1,nhori, 1,1,1,-99,
     220     .                32, "ave(X)", zstophy,zout)
    185221c
    186222         CALL histdef(nid_mth, "SWup200clr",
    187      .                "SWup clear sky at 200hPa","W/m2",
    188      .                iim,jjmp1,nhori, 1,1,1,-99,
    189      .                32, "ave(X)", zsto2,zout)
    190 c
    191          CALL histdef(nid_mth, "SWdn200", "SWdn at 200hPa","W/m2",
    192      .                iim,jjmp1,nhori, 1,1,1,-99,
    193      .                32, "ave(X)", zsto2,zout)
     223     .                "SWup clear sky at 200mb","W/m2",
     224     .                iim,jjmp1,nhori, 1,1,1,-99,
     225     .                32, "ave(X)", zstophy,zout)
     226c
     227         CALL histdef(nid_mth, "SWdn200", "SWdn at 200mb","W/m2",
     228     .                iim,jjmp1,nhori, 1,1,1,-99,
     229     .                32, "ave(X)", zstophy,zout)
    194230c
    195231         CALL histdef(nid_mth, "SWdn200clr",
    196      .                "SWdn clear sky at 200hPa","W/m2",
    197      .                iim,jjmp1,nhori, 1,1,1,-99,
    198      .                32, "ave(X)", zsto2,zout)
    199 c
    200          CALL histdef(nid_mth, "LWup200", "LWup at 200hPa","W/m2",
    201      .                iim,jjmp1,nhori, 1,1,1,-99,
    202      .                32, "ave(X)", zsto2,zout)
     232     .                "SWdn clear sky at 200mb","W/m2",
     233     .                iim,jjmp1,nhori, 1,1,1,-99,
     234     .                32, "ave(X)", zstophy,zout)
     235c
     236         CALL histdef(nid_mth, "LWup200", "LWup at 200mb","W/m2",
     237     .                iim,jjmp1,nhori, 1,1,1,-99,
     238     .                32, "ave(X)", zstophy,zout)
    203239c
    204240         CALL histdef(nid_mth, "LWup200clr",
    205      .                "LWup clear sky at 200hPa","W/m2",
    206      .                iim,jjmp1,nhori, 1,1,1,-99,
    207      .                32, "ave(X)", zsto2,zout)
    208 c
    209          CALL histdef(nid_mth, "LWdn200", "LWdn at 200hPa","W/m2",
    210      .                iim,jjmp1,nhori, 1,1,1,-99,
    211      .                32, "ave(X)", zsto2,zout)
     241     .                "LWup clear sky at 200mb","W/m2",
     242     .                iim,jjmp1,nhori, 1,1,1,-99,
     243     .                32, "ave(X)", zstophy,zout)
     244c
     245         CALL histdef(nid_mth, "LWdn200", "LWdn at 200mb","W/m2",
     246     .                iim,jjmp1,nhori, 1,1,1,-99,
     247     .                32, "ave(X)", zstophy,zout)
    212248c
    213249         CALL histdef(nid_mth, "LWdn200clr",
    214      .                "LWdn clear sky at 200hPa","W/m2",
    215      .                iim,jjmp1,nhori, 1,1,1,-99,
    216      .                32, "ave(X)", zsto2,zout)
     250     .                "LWdn clear sky at 200mb","W/m2",
     251     .                iim,jjmp1,nhori, 1,1,1,-99,
     252     .                32, "ave(X)", zstophy,zout)
    217253c
    218254         CALL histdef(nid_mth, "sols", "Solar rad. at surf.", "W/m2",
    219255     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    220      .                "ave(X)", zsto,zout)
     256     .                "ave(X)", zstophy,zout)
    221257c
    222258         CALL histdef(nid_mth, "sols0", "Solar rad. at surf.", "W/m2",
    223259     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    224      .                "ave(X)", zsto,zout)
     260     .                "ave(X)", zstophy,zout)
    225261c
    226262         CALL histdef(nid_mth, "soll", "IR rad. at surface", "W/m2",
    227263     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    228      .                "ave(X)", zsto,zout)
     264     .                "ave(X)", zstophy,zout)
    229265c
    230266         CALL histdef(nid_mth, "soll0", "IR rad. at surface", "W/m2",
    231267     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    232      .                "ave(X)", zsto,zout)
     268     .                "ave(X)", zstophy,zout)
    233269c
    234270         CALL histdef(nid_mth, "SWupSFC", "SWup at surface","W/m2",
    235271     .                iim,jjmp1,nhori, 1,1,1,-99,
    236      .                32, "ave(X)", zsto2,zout)
     272     .                32, "ave(X)", zstophy,zout)
    237273c
    238274         CALL histdef(nid_mth, "SWupSFCclr",
    239275     .                "SWup clear sky at surface","W/m2",
    240276     .                iim,jjmp1,nhori, 1,1,1,-99,
    241      .                32, "ave(X)", zsto2,zout)
     277     .                32, "ave(X)", zstophy,zout)
    242278c
    243279         CALL histdef(nid_mth, "SWdnSFC", "SWdn at surface","W/m2",
    244280     .                iim,jjmp1,nhori, 1,1,1,-99,
    245      .                32, "ave(X)", zsto2,zout)
     281     .                32, "ave(X)", zstophy,zout)
    246282c
    247283         CALL histdef(nid_mth, "SWdnSFCclr",
    248284     .                "SWdn clear sky at surface","W/m2",
    249285     .                iim,jjmp1,nhori, 1,1,1,-99,
    250      .                32, "ave(X)", zsto2,zout)
     286     .                32, "ave(X)", zstophy,zout)
    251287c
    252288         CALL histdef(nid_mth,"LWupSFC","Upwd. IR rad. at surface",
    253289     .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
    254      .                "ave(X)", zsto2,zout)
     290     .                "ave(X)", zstophy,zout)
    255291c
    256292         CALL histdef(nid_mth,"LWdnSFC","Down. IR rad. at surface",
    257293     .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
    258      .                "ave(X)", zsto2,zout)
     294     .                "ave(X)", zstophy,zout)
    259295c
    260296         CALL histdef(nid_mth,"LWupSFCclr",
    261297     .                "CS Upwd. IR rad. at surface",
    262298     .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
    263      .                "ave(X)", zsto2,zout)
     299     .                "ave(X)", zstophy,zout)
    264300c
    265301         CALL histdef(nid_mth,"LWdnSFCclr",
    266302     .                "Down. CS IR rad. at surface",
    267303     .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
    268      .                "ave(X)", zsto2,zout)
     304     .                "ave(X)", zstophy,zout)
    269305c
    270306         CALL histdef(nid_mth, "bils", "Surf. total heat flux", "W/m2",
    271307     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    272      .                "ave(X)", zsto,zout)
     308     .                "ave(X)", zstophy,zout)
    273309c
    274310         CALL histdef(nid_mth, "sens", "Sensible heat flux", "W/m2",
    275311     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    276      .                "ave(X)", zsto,zout)
     312     .                "ave(X)", zstophy,zout)
    277313c
    278314         CALL histdef(nid_mth, "fder", "Heat flux derivation", "W/m2",
    279315     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    280      .                "ave(X)", zsto,zout)
    281 c
    282 c Effets des aerosols
    283 c
    284 c     IF (ok_ade.OR.ok_aie) THEN
    285          CALL histdef(nid_mth, "topsad", "ADE at TOA", "W/m2",
    286      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    287      .                "ave(X)", zsto,zout)
    288 c
    289          CALL histdef(nid_mth, "solsad", "ADE at sfc", "W/m2",
    290      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    291      .                "ave(X)", zsto,zout)
    292 c
    293          CALL histdef(nid_mth, "topsai", "AIE at TOA", "W/m2",
    294      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    295      .                "ave(X)", zsto,zout)
    296 c
    297          CALL histdef(nid_mth, "solsai", "AIE at sfc", "W/m2",
    298      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    299      .                "ave(X)", zsto,zout)
    300 c     endif
    301 c
    302 
     316     .                "ave(X)", zstophy,zout)
    303317c
    304318c          CALL histdef(nid_mth, "frtu", "Zonal wind stress", "Pa",
    305319c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    306 c    .                "ave(X)", zsto,zout)
     320c    .                "ave(X)", zstophy,zout)
    307321c
    308322c        CALL histdef(nid_mth, "frtv", "Meridional wind stress", "Pa",
    309323c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    310 c    .                "ave(X)", zsto,zout)
     324c    .                "ave(X)", zstophy,zout)
    311325c
    312326         CALL histdef(nid_mth, "ffonte","Thermal flux for snow melting",
    313327     .                "W/m2",iim,jjmp1,nhori, 1,1,1, -99, 32,
    314      .                "ave(X)", zsto,zout)
     328     .                "ave(X)", zstophy,zout)
    315329c
    316330         CALL histdef(nid_mth, "fqcalving","Ice Calving",
    317331     .                "kg/m2/s",iim,jjmp1,nhori, 1,1,1, -99, 32,
    318      .                "ave(X)", zsto,zout)
    319 cIM: 171003
     332     .                "ave(X)", zstophy,zout)
     333c
    320334         DO nsrf = 1, nbsrf
    321335           call histdef(nid_mth, "taux_"//clnsurf(nsrf),
    322336     $         "Zonal wind stress"//clnsurf(nsrf), "Pa", 
    323337     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    324      $         "ave(X)", zsto,zout)
     338     $         "ave(X)", zstophy,zout)
    325339
    326340           call histdef(nid_mth, "tauy_"//clnsurf(nsrf),
    327      $         "Meridional xind stress "//clnsurf(nsrf), "Pa", 
    328      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    329      $         "ave(X)", zsto,zout)
     341     $         "Meridional wind stress "//clnsurf(nsrf), "Pa", 
     342     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     343     $         "ave(X)", zstophy,zout)
    330344         ENDDO
    331 cIM: 171003
    332345c
    333346         DO nsrf = 1, nbsrf
    334347C
    335           IF(nsrf.GT.1) THEN
     348          IF(nsrf.GT.2) THEN
    336349           call histdef(nid_mth, "pourc_"//clnsurf(nsrf),
    337      $         "Fraction "//clnsurf(nsrf), "W/m2", 
    338      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    339      $         "ave(X)", zsto,zout)
    340           ENDIF !nsrf.GT.1
     350     $         "% "//clnsurf(nsrf), "%", 
     351     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     352     $         "ave(X)", zstophy,zout)
     353c
     354           call histdef(nid_mth, "fract_"//clnsurf(nsrf),
     355     $         "Fraction "//clnsurf(nsrf), "1", 
     356     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     357     $         "ave(X)", zstophy,zout)
     358          ENDIF !nsrf.GT.2
    341359C
    342360           call histdef(nid_mth, "tsol_"//clnsurf(nsrf),
    343      $         "Fraction "//clnsurf(nsrf), "W/m2", 
    344      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    345      $         "ave(X)", zsto,zout)
     361     $         "Temperature "//clnsurf(nsrf), "K", 
     362     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     363     $         "ave(X)", zstophy,zout)
    346364C
    347365           call histdef(nid_mth, "sens_"//clnsurf(nsrf),
    348366     $         "Sensible heat flux "//clnsurf(nsrf), "W/m2", 
    349367     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    350      $         "ave(X)", zsto,zout)
     368     $         "ave(X)", zstophy,zout)
    351369c
    352370           call histdef(nid_mth, "lat_"//clnsurf(nsrf),
    353371     $         "Latent heat flux "//clnsurf(nsrf), "W/m2", 
    354372     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    355      $         "ave(X)", zsto,zout)
     373     $         "ave(X)", zstophy,zout)
    356374C
    357375           call histdef(nid_mth, "flw_"//clnsurf(nsrf),
    358376     $         "LW "//clnsurf(nsrf), "W/m2",
    359377     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    360      $         "ave(X)", zsto2,zout)
     378     $         "ave(X)", zstophy,zout)
    361379c
    362380           call histdef(nid_mth, "fsw_"//clnsurf(nsrf),
    363381     $         "SW "//clnsurf(nsrf), "W/m2",
    364382     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    365      $         "ave(X)", zsto2,zout)
     383     $         "ave(X)", zstophy,zout)
    366384C
    367385           call histdef(nid_mth, "wbils_"//clnsurf(nsrf),
    368386     $         "Bilan sol "//clnsurf(nsrf), "W/m2",
    369387     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    370      $         "ave(X)", zsto,zout)
     388     $         "ave(X)", zstophy,zout)
     389C
     390cIM 250105 BEG
     391          IF(1.EQ.0) THEN
     392C
     393           call histdef(nid_mth, "evapour_"//clnsurf(nsrf),
     394     $         "Evap*pourc "//clnsurf(nsrf), "kg/(s*m2)",
     395     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     396     $         "ave(X)", zstophy,zout)
     397C
     398           call histdef(nid_mth, "prepour_"//clnsurf(nsrf),
     399     $         "Precip*pourc "//clnsurf(nsrf), "kg/(s*m2)",
     400     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     401     $         "ave(X)", zstophy,zout)
     402C
     403          ENDIF !(1.EQ.0) THEN
     404cIM 250105 END
    371405C
    372406         END DO
     
    374408         CALL histdef(nid_mth, "cdrm", "Momentum drag coef.", "-",
    375409     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    376      .                "ave(X)", zsto,zout)
     410     .                "ave(X)", zstophy,zout)
    377411c
    378412         CALL histdef(nid_mth, "cdrh", "Heat drag coef.", "-",
    379413     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    380      .                "ave(X)", zsto,zout)
     414     .                "ave(X)", zstophy,zout)
    381415c
    382416         CALL histdef(nid_mth, "cldl", "Low-level cloudiness", "-",
    383417     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    384      .                "ave(X)", zsto,zout)
     418     .                "ave(X)", zstophy,zout)
    385419c
    386420         CALL histdef(nid_mth, "cldm", "Mid-level cloudiness", "-",
    387421     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    388      .                "ave(X)", zsto,zout)
     422     .                "ave(X)", zstophy,zout)
    389423c
    390424         CALL histdef(nid_mth, "cldh", "High-level cloudiness", "-",
    391425     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    392      .                "ave(X)", zsto,zout)
     426     .                "ave(X)", zstophy,zout)
    393427c
    394428         CALL histdef(nid_mth, "cldt", "Total cloudiness", "-",
    395429     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    396      .                "ave(X)", zsto,zout)
     430     .                "ave(X)", zstophy,zout)
    397431c
    398432         CALL histdef(nid_mth,"cldq","Cloud liquid water path","kg/m2",
    399433     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    400      .                "ave(X)", zsto,zout)
    401 cIM: 071003
     434     .                "ave(X)", zstophy,zout)
     435c
    402436         CALL histdef(nid_mth,"lwp","Cloud water path","kg/m2",
    403437     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    404      .                "ave(X)", zsto,zout)
     438     .                "ave(X)", zstophy,zout)
    405439c
    406440         CALL histdef(nid_mth,"iwp","Cloud ice water path","kg/m2",
    407441     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    408      .                "ave(X)", zsto,zout)
    409 cIM: 071003
     442     .                "ave(X)", zstophy,zout)
    410443c
    411444         CALL histdef(nid_mth, "ue", "Zonal energy transport", "-",
    412445     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    413      .                "ave(X)", zsto,zout)
     446     .                "ave(X)", zstophy,zout)
    414447c
    415448         CALL histdef(nid_mth, "ve", "Merid energy transport", "-",
    416449     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    417      .                "ave(X)", zsto,zout)
     450     .                "ave(X)", zstophy,zout)
    418451c
    419452         CALL histdef(nid_mth, "uq", "Zonal humidity transport", "-",
    420453     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    421      .                "ave(X)", zsto,zout)
     454     .                "ave(X)", zstophy,zout)
    422455c
    423456         CALL histdef(nid_mth, "vq", "Merid humidity transport", "-",
    424457     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    425      .                "ave(X)", zsto,zout)
     458     .                "ave(X)", zstophy,zout)
    426459cKE43
    427460      IF(iflag_con.GE.3) THEN ! sb
     
    429462         CALL histdef(nid_mth, "cape", "Conv avlbl pot ener", "J/kg",
    430463     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    431      .                "ave(X)", zsto,zout)
    432 c
    433          CALL histdef(nid_mth, "pbase", "Cld base pressure", "hPa",
    434      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    435      .                "ave(X)", zsto,zout)
    436 c
    437          CALL histdef(nid_mth, "ptop", "Cld top pressure", "hPa",
    438      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    439      .                "ave(X)", zsto,zout)
     464     .                "ave(X)", zstophy,zout)
     465c
     466         CALL histdef(nid_mth, "pbase", "Cld base pressure", "mb",
     467     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     468     .                "ave(X)", zstophy,zout)
     469c
     470         CALL histdef(nid_mth, "ptop", "Cld top pressure", "mb",
     471     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     472     .                "ave(X)", zstophy,zout)
    440473c
    441474         CALL histdef(nid_mth, "fbase", "Cld base mass flux", "kg/m2/s",
    442475     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    443      .                "ave(X)", zsto,zout)
     476     .                "ave(X)", zstophy,zout)
     477c
     478         CALL histdef(nid_mth, "prw", "Precipitable water", "kg/m2",
     479     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     480     .                "ave(X)", zstophy,zout)
    444481c
    445482      ENDIF !iflag_con .GE. 3
    446 c
    447          CALL histdef(nid_mth, "prw", "Precipitable water", "kg/m2",
    448      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    449      .                "ave(X)", zsto,zout)
    450 c
    451483c34EK
     484cIM cf. AM 081204 BEG
     485c34EK
     486c HBTM2
     487         CALL histdef(nid_mth, "s_pblh", "Boundary Layer Height", "m",
     488     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     489     .                "ave(X)", zstophy,zout)
     490         CALL histdef(nid_mth, "s_pblt", "t at Boundary Layer Height",
     491     .                "K",
     492     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     493     .                "ave(X)", zstophy,zout)
     494         CALL histdef(nid_mth, "s_lcl", "Condensation level", "m",
     495     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     496     .                "ave(X)", zstophy,zout)
     497         CALL histdef(nid_mth, "s_capCL", "Conv avlbl pot ener
     498     .                for ABL", "J/m2",
     499     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     500     .                "ave(X)", zstophy,zout)
     501         CALL histdef(nid_mth, "s_oliqCL", "Liq Water in BL", "kg/m2",
     502     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     503     .                "ave(X)", zstophy,zout)
     504         CALL histdef(nid_mth, "s_cteiCL", "Instability criteria
     505     .                (ABL)", "K",
     506     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     507     .                "ave(X)", zstophy,zout)
     508         CALL histdef(nid_mth, "s_therm", "Exces du thermique", "K",
     509     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     510     .                "ave(X)", zstophy,zout)
     511         CALL histdef(nid_mth, "s_trmb1", "deep_cape(HBTM2)", "J/m2",
     512     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     513     .                "ave(X)", zstophy,zout)
     514         CALL histdef(nid_mth, "s_trmb2", "inhibition (HBTM2)", "J/m2",
     515     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     516     .                "ave(X)", zstophy,zout)
     517         CALL histdef(nid_mth, "s_trmb3", "Point Omega (HBTM2)", "m",
     518     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     519     .                "ave(X)", zstophy,zout)
     520c
     521cIM cf. AM 081204 END
    452522c
    453523c Champs interpolles sur des niveaux de pression
    454          DO k=1, nlevENS
    455           CALL histdef(nid_mth, "u"//clev(k),
    456      .                 "Zonal wind"//clev(k)//"mb","m/s",
    457      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    458      .                "ave(X)", zsto,zout)
    459 c
    460           CALL histdef(nid_mth, "v"//clev(k),
    461      .                 "Meridional wind"//clev(k)//"mb","m/s",
    462      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    463      .                "ave(X)", zsto,zout)
    464 c
    465           CALL histdef(nid_mth, "w"//clev(k),
    466      .                 "Vertical wind"//clev(k)//"mb","Pa/s",
    467      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    468      .                "ave(X)", zsto,zout)
    469 c
    470           CALL histdef(nid_mth, "phi"//clev(k),
    471      .                 "Geopotential"//clev(k)//"mb","m2/s2",
    472      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    473      .                "ave(X)", zsto,zout)
    474 c
    475          ENDDO
     524         DO k=1, nlevSTD
     525c
     526c        bb=clevSTD(k)
     527c
     528c        IF(k.GE.2) THEN
     529         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
     530         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
     531c         aa=clevSTD(k)
     532c         bb=aa(1:lnblnk1(aa))
     533c        ENDIF
     534c
     535      IF(bb2.EQ."850".OR.bb2.EQ."700".OR.
     536     $   bb2.EQ."500".OR.bb2.EQ."200") THEN
     537c
     538          CALL histdef(nid_mth, "u"//bb2,
     539     .                 "Zonal wind "//bb2//"mb","m/s",
     540     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     541     .                "inst(X)", zout,zout)
     542c
     543          CALL histdef(nid_mth, "v"//bb2,
     544     .                 "Meridional wind "//bb2//"mb","m/s",
     545     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     546     .                "inst(X)", zout,zout)
     547c
     548          CALL histdef(nid_mth, "w"//bb2,
     549     .                 "Vertical wind "//bb2//"mb","m/s",
     550     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     551     .                "inst(X)", zout,zout)
     552c
     553          CALL histdef(nid_mth, "phi"//bb2,
     554     .                 "Geopotential "//bb2//"mb","m",
     555     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     556     .                "inst(X)", zout,zout)
     557c
     558        ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
     559       ENDDO
     560c
     561cIM diagnostiques flux ocean-atm ou ocean-glace de mer
     562cIM pour utilisation dans un modele de "slab" ocean
     563c
     564       CALL histdef(nid_mth, "fluxo",
     565     .              "Flux turbulents ocean-atmosphere", "W/m2",
     566     .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     567     .              "ave(X)", zstophy,zout)
     568c
     569       CALL histdef(nid_mth, "fluxg",
     570     .              "Flux turbulents ocean-glace de mer","W/m2",
     571     .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     572     .              "ave(X)", zstophy,zout)
     573c
     574       IF (OCEAN.EQ.'force ') THEN
     575c
     576        CALL histdef(nid_mth, "lmt_bils",
     577     .       "Bilan au sol atmosphere forcee", "W/m2",
     578     .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     579     .              "ave(X)", zstophy,zout)
     580c
     581       ELSE IF (OCEAN.EQ.'slab  ') THEN
     582c
     583        CALL histdef(nid_mth, "slab_bils",
     584     .       "Bilan au sol Slab", "W/m2",
     585     .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     586     .              "ave(X)", zstophy,zout)
     587c
     588        CALL histdef(nid_mth, "tslab", "Slab SST ", "K",
     589     .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     590     .              "ave(X)", zstophy,zout)
     591c
     592        CALL histdef(nid_mth, "seaice", "Slab seaice", "kg/m2",
     593     .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     594     .              "ave(X)", zstophy,zout)
     595c
     596        CALL histdef(nid_mth, "siceh", "Slab seaice height", "m",
     597     .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     598     .              "ave(X)", zstophy,zout)
     599c
     600       ENDIF
     601c
    476602      ENDIF !lev_histmth.GE.1
    477603c
     
    481607c
    482608c
    483          CALL histdef(nid_mth,"lwcon","Cloud water content","kg/kg",
     609         CALL histdef(nid_mth,"lwcon","Cloud liquid water content",
     610     .                "kg/kg",
    484611     .                iim,jjmp1,nhori, klev,1,klev, nvert, 32,
    485      .                "ave(X)", zsto,zout)
     612     .                "ave(X)", zstophy,zout)
    486613c
    487614         CALL histdef(nid_mth,"iwcon","Cloud ice water content","kg/kg",
    488615     .                iim,jjmp1,nhori, klev,1,klev, nvert, 32,
    489      .                "ave(X)", zsto,zout)
     616     .                "ave(X)", zstophy,zout)
    490617c
    491618         CALL histdef(nid_mth, "temp", "Air temperature", "K",
    492619     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    493      .                "ave(X)", zsto,zout)
     620     .                "ave(X)", zstophy,zout)
    494621c
    495622         CALL histdef(nid_mth, "ovap", "Specific humidity", "kg/kg",
    496623     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    497      .                "ave(X)", zsto,zout)
     624     .                "ave(X)", zstophy,zout)
    498625c
    499626c        CALL histdef(nid_mth,"wvap","Water vapor mixing ratio","kg/kg",
    500627c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    501 c    .                "ave(X)", zsto,zout)
    502 c
    503          CALL histdef(nid_mth, "geop", "Geopotential height", "m",
    504      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    505      .                "ave(X)", zsto,zout)
     628c    .                "ave(X)", zstophy,zout)
     629c
     630         CALL histdef(nid_mth, "geop", "Geopotential height", "m2/s2",
     631     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     632     .                "ave(X)", zstophy,zout)
    506633c
    507634         CALL histdef(nid_mth, "vitu", "Zonal wind", "m/s",
    508635     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    509      .                "ave(X)", zsto,zout)
     636     .                "ave(X)", zstophy,zout)
    510637c
    511638         CALL histdef(nid_mth, "vitv", "Meridional wind", "m/s",
    512639     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    513      .                "ave(X)", zsto,zout)
    514 c
    515          CALL histdef(nid_mth, "vitw", "Vertical wind", "Pa/s",
    516      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    517      .                "ave(X)", zsto,zout)
     640     .                "ave(X)", zstophy,zout)
     641c
     642         CALL histdef(nid_mth, "vitw", "Vertical wind", "m/s",
     643     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     644     .                "ave(X)", zstophy,zout)
    518645c
    519646         CALL histdef(nid_mth, "pres", "Air pressure", "Pa",
    520647     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    521      .                "ave(X)", zsto,zout)
     648     .                "ave(X)", zstophy,zout)
    522649c
    523650        CALL histdef(nid_mth, "rneb", "Cloud fraction", "-",
    524651     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    525      .                "ave(X)", zsto,zout)
     652     .                "ave(X)", zstophy,zout)
    526653c
    527654         CALL histdef(nid_mth, "rnebcon", "Convective Cloud Fraction"
    528655     .                , "-",
    529656     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    530      .                "ave(X)", zsto,zout)
     657     .                "ave(X)", zstophy,zout)
    531658c
    532659         CALL histdef(nid_mth, "rhum", "Relative humidity", "-",
    533660     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    534      .                "ave(X)", zsto,zout)
    535 c
    536          CALL histdef(nid_mth, "ozone", "Ozone concentration", "-",
    537      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    538      .                "ave(X)", zsto,zout)
     661     .                "ave(X)", zstophy,zout)
     662c
     663         CALL histdef(nid_mth, "ozone", "Ozone concentration", "ppmv",
     664     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     665     .                "ave(X)", zstophy,zout)
     666c
     667         CALL histdef(nid_mth, "upwd", "saturated updraft", "kg/m2/s",
     668     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     669     .                "ave(X)", zstophy,zout)
    539670c
    540671         CALL histdef(nid_mth, "dtphy", "Physics dT", "K/s",
    541672     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    542      .                "ave(X)", zsto,zout)
    543 c
    544          CALL histdef(nid_mth, "dqphy", "Physics dQ", "kg/kg/s",
    545      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    546      .                "ave(X)", zsto,zout)
    547 c
    548 c#define histmthNMC
    549 c#ifdef histmthNMC
    550 c#include "ini_histmthNMC.h"
    551 c#endif
     673     .                "ave(X)", zstophy,zout)
     674c
     675         CALL histdef(nid_mth, "dqphy", "Physics dQ", "(kg/kg)/s",
     676     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     677     .                "ave(X)", zstophy,zout)
    552678c
    553679      ENDIF !lev_histmth.GE.2
     
    560686     $         "Albedo surf. "//clnsurf(nsrf), "-", 
    561687     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    562      $         "ave(X)", zsto,zout)
     688     $         "ave(X)", zstophy,zout)
    563689c
    564690           call histdef(nid_mth, "rugs_"//clnsurf(nsrf),
    565691     $         "Latent heat flux "//clnsurf(nsrf), "W/m2", 
    566692     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
    567      $         "ave(X)", zsto,zout)
     693     $         "ave(X)", zstophy,zout)
    568694c
    569695         CALL histdef(nid_mth, "ages_"//clnsurf(nsrf), "Snow age","day",
    570696     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    571      .                "ave(X)", zsto,zout)
     697     .                "ave(X)", zstophy,zout)
    572698c
    573699         ENDDO !nsrf=1, nbsrf
     
    575701         CALL histdef(nid_mth, "albs", "Surface albedo", "-",
    576702     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    577      .                "ave(X)", zsto,zout)
     703     .                "ave(X)", zstophy,zout)
    578704         CALL histdef(nid_mth, "albslw", "Surface albedo LW", "-",
    579705     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    580      .                "ave(X)", zsto,zout)
     706     .                "ave(X)", zstophy,zout)
    581707c
    582708      ENDIF !lev_histmth.GE.3
     
    588714     .                , "kg/kg",
    589715     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    590      .                "ave(X)", zsto,zout)
    591 c
    592       IF (iflag_con.GE.3) THEN
     716     .                "ave(X)", zstophy,zout)
    593717c
    594718         CALL histdef(nid_mth,"Ma","undilute adiab updraft","kg/m2/s",
    595719     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    596      .                "ave(X)", zsto,zout)
    597 c
    598          CALL histdef(nid_mth, "upwd", "saturated updraft", "kg/m2/s",
    599      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    600      .                "ave(X)", zsto,zout)
     720     .                "ave(X)", zstophy,zout)
    601721c
    602722         CALL histdef(nid_mth, "dnwd", "saturated downdraft","kg/m2/s",
    603723     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    604      .                "ave(X)", zsto,zout)
     724     .                "ave(X)", zstophy,zout)
    605725c
    606726         CALL histdef(nid_mth, "dnwd0", "unsat. downdraft", "kg/m2/s",
    607727     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    608      .                "ave(X)", zsto,zout)
    609       ENDIF !iflag_con.GE.3
    610 c
     728     .                "ave(X)", zstophy,zout)
    611729c
    612730         CALL histdef(nid_mth, "dtdyn", "Dynamics dT", "K/s",
    613731     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    614      .                "ave(X)", zsto,zout)
    615 c
    616          CALL histdef(nid_mth, "dqdyn", "Dynamics dQ", "kg/kg/s",
    617      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    618      .                "ave(X)", zsto,zout)
     732     .                "ave(X)", zstophy,zout)
     733c
     734         CALL histdef(nid_mth, "dqdyn", "Dynamics dQ", "(kg/kg)/s",
     735     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     736     .                "ave(X)", zstophy,zout)
    619737c
    620738         CALL histdef(nid_mth, "dtcon", "Convection dT", "K/s",
    621739     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    622      .                "ave(X)", zsto,zout)
     740     .                "ave(X)", zstophy,zout)
    623741c
    624742c        CALL histdef(nid_mth, "ducon", "Convection du", "m/s2",
    625743c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    626 c    .                "ave(X)", zsto,zout)
    627 c
    628          CALL histdef(nid_mth, "dqcon", "Convection dQ", "kg/kg/s",
    629      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    630      .                "ave(X)", zsto,zout)
     744c    .                "ave(X)", zstophy,zout)
     745c
     746         CALL histdef(nid_mth, "dqcon", "Convection dQ", "(kg/kg)/s",
     747     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     748     .                "ave(X)", zstophy,zout)
    631749c
    632750         CALL histdef(nid_mth, "dtlsc", "Condensation dT", "K/s",
    633751     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    634      .                "ave(X)", zsto,zout)
    635 cIM: 071003
     752     .                "ave(X)", zstophy,zout)
     753c
    636754         CALL histdef(nid_mth, "dtlschr",
    637755     $       "Large-scale condensational heating rate", "K/s",iim,jjmp1
    638      $       ,nhori, klev,1,klev,nvert, 32,"ave(X)", zsto,zout)
    639 c
    640          CALL histdef(nid_mth, "dqlsc", "Condensation dQ", "kg/kg/s",
    641      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    642      .                "ave(X)", zsto,zout)
     756     $       ,nhori, klev,1,klev,nvert, 32,"ave(X)", zstophy,zout)
     757c
     758         CALL histdef(nid_mth, "dqlsc", "Condensation dQ", "(kg/kg)/s",
     759     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     760     .                "ave(X)", zstophy,zout)
    643761c
    644762         CALL histdef(nid_mth, "dtvdf", "Boundary-layer dT", "K/s",
    645763     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    646      .                "ave(X)", zsto,zout)
    647 c
    648          CALL histdef(nid_mth, "dqvdf", "Boundary-layer dQ", "kg/kg/s",
    649      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    650      .                "ave(X)", zsto,zout)
     764     .                "ave(X)", zstophy,zout)
     765c
     766         CALL histdef(nid_mth, "dqvdf","Boundary-layer dQ","(kg/kg)/s",
     767     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     768     .                "ave(X)", zstophy,zout)
    651769c
    652770         CALL histdef(nid_mth, "dteva", "Reevaporation dT", "K/s",
    653771     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    654      .                "ave(X)", zsto,zout)
    655 c
    656          CALL histdef(nid_mth, "dqeva", "Reevaporation dQ", "kg/kg/s",
    657      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    658      .                "ave(X)", zsto,zout)
     772     .                "ave(X)", zstophy,zout)
     773c
     774         CALL histdef(nid_mth, "dqeva","Reevaporation dQ","(kg/kg)/s",
     775     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     776     .                "ave(X)", zstophy,zout)
    659777
    660778         CALL histdef(nid_mth, "ptconv", "POINTS CONVECTIFS"," ",
    661779     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    662      .                "ave(X)", zsto,zout)
     780     .                "ave(X)", zstophy,zout)
    663781
    664782         CALL histdef(nid_mth, "ratqs", "RATQS"," ",
    665783     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    666      .                "ave(X)", zsto,zout)
     784     .                "ave(X)", zstophy,zout)
    667785
    668786c
    669787         CALL histdef(nid_mth, "dtajs", "Dry adjust. dT", "K/s",
    670788     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    671      .                "ave(X)", zsto,zout)
     789     .                "ave(X)", zstophy,zout)
    672790
    673          CALL histdef(nid_mth, "dqajs", "Dry adjust. dQ", "kg/kg/s",
    674      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    675      .                "ave(X)", zsto,zout)
     791         CALL histdef(nid_mth,"dqajs","Dry adjust. dQ","(kg/kg)/s",
     792     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     793     .                "ave(X)", zstophy,zout)
    676794c
    677795         CALL histdef(nid_mth, "dtswr", "SW radiation dT", "K/s",
    678796     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    679      .                "ave(X)", zsto,zout)
     797     .                "ave(X)", zstophy,zout)
    680798c
    681799         CALL histdef(nid_mth, "dtsw0", "CS SW radiation dT", "K/s",
    682800     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    683      .                "ave(X)", zsto,zout)
     801     .                "ave(X)", zstophy,zout)
    684802c
    685803         CALL histdef(nid_mth, "dtlwr", "LW radiation dT", "K/s",
    686804     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    687      .                "ave(X)", zsto,zout)
     805     .                "ave(X)", zstophy,zout)
    688806c
    689807         CALL histdef(nid_mth,"dtlw0","CS LW radiation dT","K/s",
    690808     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    691      .                "ave(X)", zsto,zout)
     809     .                "ave(X)", zstophy,zout)
    692810c
    693811         CALL histdef(nid_mth, "dtec", "Cinetic dissip dT", "K/s",
    694812     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    695      .                "ave(X)", zsto,zout)
     813     .                "ave(X)", zstophy,zout)
    696814c
    697815         CALL histdef(nid_mth, "duvdf", "Boundary-layer dU", "m/s2",
    698816     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    699      .                "ave(X)", zsto,zout)
     817     .                "ave(X)", zstophy,zout)
    700818c
    701819         CALL histdef(nid_mth, "dvvdf", "Boundary-layer dV", "m/s2",
    702820     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    703      .                "ave(X)", zsto,zout)
     821     .                "ave(X)", zstophy,zout)
    704822c
    705823         IF (ok_orodr) THEN
    706824         CALL histdef(nid_mth, "duoro", "Orography dU", "m/s2",
    707825     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    708      .                "ave(X)", zsto,zout)
     826     .                "ave(X)", zstophy,zout)
    709827c
    710828         CALL histdef(nid_mth, "dvoro", "Orography dV", "m/s2",
    711829     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    712      .                "ave(X)", zsto,zout)
     830     .                "ave(X)", zstophy,zout)
    713831c
    714832         ENDIF
     
    717835         CALL histdef(nid_mth, "dulif", "Orography dU", "m/s2",
    718836     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    719      .                "ave(X)", zsto,zout)
     837     .                "ave(X)", zstophy,zout)
    720838c
    721839         CALL histdef(nid_mth, "dvlif", "Orography dV", "m/s2",
    722840     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    723      .                "ave(X)", zsto,zout)
     841     .                "ave(X)", zstophy,zout)
    724842         ENDIF
    725 c
    726 c Effets des aerosols
    727 c
    728 c     IF (ok_ade.OR.ok_aie) THEN
    729          CALL histdef(nid_mth, "re", "CDR", "um",
    730      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    731      .                "ave(X)", zsto,zout)
    732 c
    733          CALL histdef(nid_mth, "redenom", "CDR denominator", "-",
    734      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    735      .                "ave(X)", zsto,zout)
    736 c
    737          CALL histdef(nid_mth, "tau", "cloud opt thickness", "-",
    738      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    739      .                "ave(X)", zsto,zout)
    740 c
    741          CALL histdef(nid_mth, "taupi", "cloud opt thickn. (pi)", "-",
    742      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    743      .                "ave(X)", zsto,zout)
    744 c     endif
    745 c
     843C
    746844         if (nqmax.GE.3) THEN
    747          DO iq=3,nqmax
    748          iiq=niadv(iq)
    749          CALL histdef(nid_mth, tnom(iq), ttext(iiq), "-",
    750      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    751      .                "ave(X)", zsto,zout)
     845         DO iq=1,nqmax-2
     846         IF (iq.LE.99) THEN
     847         WRITE(str2,'(i2.2)') iq
     848         CALL histdef(nid_mth, "trac"//str2, "Tracer No."//str2, "-",
     849     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     850     .                "ave(X)", zstophy,zout)
     851         ELSE
     852         PRINT*, "Trop de traceurs"
     853         CALL abort
     854         ENDIF
    752855         ENDDO
    753856         ENDIF
     
    755858      ENDIF !lev_histmth.GE.4
    756859c
     860      ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN
     861c
     862      IF(lev_histmth.GE.1) THEN
     863c
     864         CALL histdef(nid_mth, "phis", "Surface geop. height", "m",
     865     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     866     .                "once",  zstophy,zout)
     867c
     868         CALL histdef(nid_mth, "aire", "Grid area", "-",
     869     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     870     .                "once",  zstophy,zout)
     871c
     872         CALL histdef(nid_mth, "pourc_"//clnsurf(is_ter),
     873     .         "% "//clnsurf(is_ter), "%", 
     874     .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     875     .         "once", zstophy,zout)
     876c
     877         CALL histdef(nid_mth, "fract_"//clnsurf(is_ter),
     878     .         "Fraction "//clnsurf(is_ter), "1", 
     879     .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     880     .         "once", zstophy,zout)
     881c
     882         CALL histdef(nid_mth, "pourc_"//clnsurf(is_lic),
     883     .         "% "//clnsurf(is_lic), "%", 
     884     .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     885     .         "once", zstophy,zout)
     886c
     887         CALL histdef(nid_mth, "fract_"//clnsurf(is_lic),
     888     .         "Fraction "//clnsurf(is_lic), "1", 
     889     .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     890     .         "once", zstophy,zout)
     891c
     892         CALL histdef(nid_mth, "pourc_"//clnsurf(is_sic),
     893     .         "% "//clnsurf(is_sic), "%",
     894     .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     895     .                "ave(X)", zstophy,zout)
     896c
     897         CALL histdef(nid_mth, "fract_"//clnsurf(is_sic),
     898     .         "Fraction "//clnsurf(is_sic), "1",
     899     .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     900     .                "ave(X)", zstophy,zout)
     901c
     902         CALL histdef(nid_mth, "flat", "Latent heat flux", "W/m2",
     903     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     904     .                "ave(X)", zstophy,zout)
     905c
     906         CALL histdef(nid_mth, "bilTOA",
     907     .                "Net radiation at TOA", "W/m2",
     908     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     909     .                "ave(X)", zstophy,zout)
     910c
     911c
     912c        CALL histdef(nid_mth, "tops01",
     913c    .                "TOA reflected clear-sky shortwave
     914c    .                radiation (method 1)", "W/m2",
     915c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     916c    .                "ave(X)", zstophy,zout)
     917c
     918          CALL histdef(nid_mth, "dtdia","dtdia","K/s",
     919     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     920     .                "ave(X)", zstophy,zout)
     921c
     922          CALL histdef(nid_mth, "dtsw","dtsw","K/s",
     923     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     924     .                "ave(X)", zstophy,zout)
     925c
     926          CALL histdef(nid_mth, "dtlw","dtlw","K/s",
     927     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     928     .                "ave(X)", zstophy,zout)
     929c
     930          CALL histdef(nid_mth, "dtcon","dtcon","K/s",
     931     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     932     .                "ave(X)", zstophy,zout)
     933c
     934          CALL histdef(nid_mth, "dtajs","dtajs","K/s",
     935     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     936     .                "ave(X)", zstophy,zout)
     937c
     938          CALL histdef(nid_mth, "dtlsc","dtlsc","K/s",
     939     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     940     .                "ave(X)", zstophy,zout)
     941c
     942          CALL histdef(nid_mth, "dqdia","dqdia","(kg/kg)/s",
     943     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     944     .                "ave(X)", zstophy,zout)
     945c
     946          CALL histdef(nid_mth, "duoli",
     947     .         "duoli","m/s2",
     948     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     949     .                "ave(X)", zstophy,zout)
     950c
     951          CALL histdef(nid_mth, "dvoli",
     952     .         "dvoli","m/s2",
     953     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     954     .                "ave(X)", zstophy,zout)
     955c
     956          CALL histdef(nid_mth, "ducon",
     957     .         "ducon","m/s2",
     958     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     959     .                "ave(X)", zstophy,zout)
     960c
     961          CALL histdef(nid_mth, "dvcon",
     962     .         "dvcon","m/s2",
     963     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     964     .                "ave(X)", zstophy,zout)
     965c
     966          CALL histdef(nid_mth, "dutot",
     967     .         "dutot","m/s2",
     968     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     969     .                "ave(X)", zstophy,zout)
     970c
     971          CALL histdef(nid_mth, "dvtot",
     972     .         "dvtot","m/s2",
     973     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     974     .                "ave(X)", zstophy,zout)
     975c
     976c         CALL histdef(nid_mth, "cldtrue",
     977c    .         "TRUE Cloud fraction ","%",
     978c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     979c    .         "inst(X)", zout,zout)
     980c
     981c         CALL histdef(nid_mth, "cldTOA",
     982c    .         "Cloud amount (satellite view)","%",
     983c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     984c    .         "ave(X)", zstophy,zout)
     985c
     986c         CALL histdef(nid_mth, "cldSFC",
     987c    .         "Cloud amount (surface view)","%",
     988c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     989c    .         "ave(X)", zstophy,zout)
     990c
     991          CALL histdef(nid_mth, "GWDtaux",
     992     .         "GWD induced Ewd wind stress","Pa",
     993     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     994     .         "ave(X)", zstophy,zout)
     995c
     996          CALL histdef(nid_mth, "GWDtauy",
     997     .         "GWD induced Nwd wind stress","Pa",
     998     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     999     .         "ave(X)", zstophy,zout)
     1000c
     1001c Champs 2D:
     1002c
     1003         CALL histdef(nid_mth, "slp", "Sea Level Pressure", "Pa",
     1004     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1005     .                "ave(X)", zstorad,zout)
     1006c
     1007         CALL histdef(nid_mth, "tsol", "Surface Temperature", "K",
     1008     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1009     .                "ave(X)", zstophy,zout)
     1010c
     1011         CALL histdef(nid_mth, "t2m", "Temperature 2m", "K",
     1012     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1013     .                "ave(X)", zstorad,zout)
     1014c
     1015         CALL histdef(nid_mth, "t2m_min", "Temp. 2m min.",
     1016     .                "K",
     1017     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1018     .                t2mincels, zstophy,zout)
     1019c
     1020         CALL histdef(nid_mth, "t2m_max", "Temp. 2m max.",
     1021     .                "K",
     1022     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1023     .                t2maxcels, zstophy,zout)
     1024c
     1025c        CALL histdef(nid_mth, "tsoil", "Sfce soil Temperature",
     1026c    .                "K",
     1027c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1028c    .                "ave(X)", zstophy,zout)
     1029c
     1030         CALL histdef(nid_mth, "wind10m","10-m wind speed","m/s",
     1031     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1032     .                "ave(X)", zstorad,zout)
     1033c
     1034         CALL histdef(nid_mth, "sicf", "Sea-ice fraction", "-",
     1035     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1036     .                "ave(X)", zstophy,zout)
     1037
     1038c
     1039         CALL histdef(nid_mth, "q2m","Specific humidity 2m","kg/kg",
     1040     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1041     .                "ave(X)", zstorad,zout)
     1042c
     1043         CALL histdef(nid_mth, "u10m", "Vent zonal 10m", "m/s",
     1044     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1045     .                "ave(X)", zstorad,zout)
     1046c
     1047         CALL histdef(nid_mth, "v10m", "Vent meridien 10m", "m/s",
     1048     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1049     .                "ave(X)", zstorad,zout)
     1050c
     1051         CALL histdef(nid_mth, "psol", "Surface Pressure", "Pa",
     1052     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1053     .                "ave(X)", zstorad,zout)
     1054c
     1055         CALL histdef(nid_mth, "qsurf","Surface Air humidity","kg/kg",
     1056     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1057     .                "ave(X)", zstophy,zout)
     1058c
     1059      if (.not. ok_veget) then
     1060         CALL histdef(nid_mth, "qsol", "Soil watter content", "mm",
     1061     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1062     .                "ave(X)", zstophy,zout)
     1063      endif
     1064c
     1065         CALL histdef(nid_mth, "ndayrain",
     1066     .                "Number of day with rain (liq+sol)", "-",
     1067     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1068     .                "inst(X)", zstomth,zout)
     1069c
     1070         CALL histdef(nid_mth, "precip", "Precipitation Totale liq+sol",
     1071     .                "kg/(s*m2)",
     1072     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1073     .                "ave(X)", zstophy,zout)
     1074c
     1075         CALL histdef(nid_mth, "plul", "Large-scale Precip.",
     1076     .   "kg/(s*m2)",
     1077     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1078     .                "ave(X)", zstophy,zout)
     1079c
     1080         CALL histdef(nid_mth, "pluc", "Convective Precip.",
     1081     .   "kg/(s*m2)",
     1082     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1083     .                "ave(X)", zstophy,zout)
     1084c
     1085         CALL histdef(nid_mth, "snowf", "Snow fall", "kg/(s*m2)",
     1086     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1087     .                "ave(X)", zstophy,zout)
     1088c
     1089c        CALL histdef(nid_mth, "snow_mass", "Snow Mass", "kg/m2",
     1090c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1091c    .                "ave(X)", zstophy,zout)
     1092c
     1093         CALL histdef(nid_mth, "evap",
     1094     .                "Evaporation plus sublimation rate", "kg/(s*m2)",
     1095     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1096     .                "ave(X)", zstophy,zout)
     1097c
     1098         CALL histdef(nid_mth, "tops", "Solar rad. at TOA", "W/m2",
     1099     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1100     .                "ave(X)", zstophy,zout)
     1101c
     1102         CALL histdef(nid_mth, "tops0", "CS Solar rad. at TOA", "W/m2",
     1103     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1104     .                "ave(X)", zstophy,zout)
     1105c
     1106         CALL histdef(nid_mth, "topl", "IR rad. at TOA", "W/m2",
     1107     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1108     .                "ave(X)", zstophy,zout)
     1109c
     1110         CALL histdef(nid_mth, "topl0", "IR rad. at TOA", "W/m2",
     1111     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1112     .                "ave(X)", zstophy,zout)
     1113c
     1114         CALL histdef(nid_mth, "SWupTOA", "SWup at TOA","W/m2",
     1115     .                iim,jjmp1,nhori, 1,1,1,-99,
     1116     .                32, "ave(X)", zstophy,zout)
     1117c
     1118         CALL histdef(nid_mth, "SWupTOAclr",
     1119     .                "SWup clear sky at TOA","W/m2",
     1120     .                iim,jjmp1,nhori, 1,1,1,-99,
     1121     .                32, "ave(X)", zstophy,zout)
     1122c
     1123         CALL histdef(nid_mth, "SWdnTOA", "SWdn at TOA","W/m2",
     1124     .                iim,jjmp1,nhori, 1,1,1,-99,
     1125     .                32, "ave(X)", zstophy,zout)
     1126c
     1127         CALL histdef(nid_mth, "SWdnTOAclr",
     1128     .                "SWdn clear sky at TOA","W/m2",
     1129     .                iim,jjmp1,nhori, 1,1,1,-99,
     1130     .                32, "ave(X)", zstophy,zout)
     1131c
     1132         CALL histdef(nid_mth, "SWup200", "SWup at 200mb","W/m2",
     1133     .                iim,jjmp1,nhori, 1,1,1,-99,
     1134     .                32, "ave(X)", zstophy,zout)
     1135c
     1136         CALL histdef(nid_mth, "SWup200clr",
     1137     .                "SWup clear sky at 200mb","W/m2",
     1138     .                iim,jjmp1,nhori, 1,1,1,-99,
     1139     .                32, "ave(X)", zstophy,zout)
     1140c
     1141         CALL histdef(nid_mth, "SWdn200", "SWdn at 200mb","W/m2",
     1142     .                iim,jjmp1,nhori, 1,1,1,-99,
     1143     .                32, "ave(X)", zstophy,zout)
     1144c
     1145         CALL histdef(nid_mth, "SWdn200clr",
     1146     .                "SWdn clear sky at 200mb","W/m2",
     1147     .                iim,jjmp1,nhori, 1,1,1,-99,
     1148     .                32, "ave(X)", zstophy,zout)
     1149c
     1150         CALL histdef(nid_mth, "LWup200", "LWup at 200mb","W/m2",
     1151     .                iim,jjmp1,nhori, 1,1,1,-99,
     1152     .                32, "ave(X)", zstophy,zout)
     1153c
     1154         CALL histdef(nid_mth, "LWup200clr",
     1155     .                "LWup clear sky at 200mb","W/m2",
     1156     .                iim,jjmp1,nhori, 1,1,1,-99,
     1157     .                32, "ave(X)", zstophy,zout)
     1158c
     1159         CALL histdef(nid_mth, "LWdn200", "LWdn at 200mb","W/m2",
     1160     .                iim,jjmp1,nhori, 1,1,1,-99,
     1161     .                32, "ave(X)", zstophy,zout)
     1162c
     1163         CALL histdef(nid_mth, "LWdn200clr",
     1164     .                "LWdn clear sky at 200mb","W/m2",
     1165     .                iim,jjmp1,nhori, 1,1,1,-99,
     1166     .                32, "ave(X)", zstophy,zout)
     1167c
     1168         CALL histdef(nid_mth, "sols", "Solar rad. at surf.", "W/m2",
     1169     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1170     .                "ave(X)", zstophy,zout)
     1171c
     1172         CALL histdef(nid_mth, "sols0", "Solar rad. at surf.", "W/m2",
     1173     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1174     .                "ave(X)", zstophy,zout)
     1175c
     1176         CALL histdef(nid_mth, "soll", "IR rad. at surface", "W/m2",
     1177     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1178     .                "ave(X)", zstophy,zout)
     1179c
     1180         CALL histdef(nid_mth, "soll0", "IR rad. at surface", "W/m2",
     1181     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1182     .                "ave(X)", zstophy,zout)
     1183c
     1184         CALL histdef(nid_mth, "SWupSFC", "SWup at surface","W/m2",
     1185     .                iim,jjmp1,nhori, 1,1,1,-99,
     1186     .                32, "ave(X)", zstophy,zout)
     1187c
     1188         CALL histdef(nid_mth, "SWupSFCclr",
     1189     .                "SWup clear sky at surface","W/m2",
     1190     .                iim,jjmp1,nhori, 1,1,1,-99,
     1191     .                32, "ave(X)", zstophy,zout)
     1192c
     1193         CALL histdef(nid_mth, "SWdnSFC", "SWdn at surface","W/m2",
     1194     .                iim,jjmp1,nhori, 1,1,1,-99,
     1195     .                32, "ave(X)", zstophy,zout)
     1196c
     1197         CALL histdef(nid_mth, "SWdnSFCclr",
     1198     .                "SWdn clear sky at surface","W/m2",
     1199     .                iim,jjmp1,nhori, 1,1,1,-99,
     1200     .                32, "ave(X)", zstophy,zout)
     1201c
     1202         CALL histdef(nid_mth,"LWupSFC","Upwd. IR rad. at surface",
     1203     .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
     1204     .                "ave(X)", zstophy,zout)
     1205c
     1206         CALL histdef(nid_mth,"LWdnSFC","Down. IR rad. at surface",
     1207     .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
     1208     .                "ave(X)", zstophy,zout)
     1209c
     1210         CALL histdef(nid_mth,"LWupSFCclr",
     1211     .                "CS Upwd. IR rad. at surface",
     1212     .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
     1213     .                "ave(X)", zstophy,zout)
     1214c
     1215         CALL histdef(nid_mth,"LWdnSFCclr",
     1216     .                "Down. CS IR rad. at surface",
     1217     .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
     1218     .                "ave(X)", zstophy,zout)
     1219c
     1220         CALL histdef(nid_mth, "bils", "Surf. total heat flux", "W/m2",
     1221     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1222     .                "ave(X)", zstophy,zout)
     1223c
     1224         CALL histdef(nid_mth, "sens", "Sensible heat flux", "W/m2",
     1225     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1226     .                "ave(X)", zstophy,zout)
     1227c
     1228         CALL histdef(nid_mth, "fder", "Heat flux derivation", "W/m2",
     1229     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1230     .                "ave(X)", zstophy,zout)
     1231c
     1232c          CALL histdef(nid_mth, "frtu", "Zonal wind stress", "Pa",
     1233c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1234c    .                "ave(X)", zstophy,zout)
     1235c
     1236c        CALL histdef(nid_mth, "frtv", "Meridional wind stress", "Pa",
     1237c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1238c    .                "ave(X)", zstophy,zout)
     1239c
     1240         CALL histdef(nid_mth, "ffonte","Thermal flux for snow melting",
     1241     .                "W/m2",iim,jjmp1,nhori, 1,1,1, -99, 32,
     1242     .                "ave(X)", zstophy,zout)
     1243c
     1244         CALL histdef(nid_mth, "fqcalving","Ice Calving",
     1245     .                "kg/m2/s",iim,jjmp1,nhori, 1,1,1, -99, 32,
     1246     .                "ave(X)", zstophy,zout)
     1247c
     1248         DO nsrf = 1, nbsrf
     1249           call histdef(nid_mth, "taux_"//clnsurf(nsrf),
     1250     $         "Zonal wind stress"//clnsurf(nsrf), "Pa", 
     1251     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1252     $         "ave(X)", zstophy,zout)
     1253
     1254           call histdef(nid_mth, "tauy_"//clnsurf(nsrf),
     1255     $         "Meridional wind stress "//clnsurf(nsrf), "Pa", 
     1256     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1257     $         "ave(X)", zstophy,zout)
     1258         ENDDO
     1259c
     1260           call histdef(nid_mth, "pourc_"//clnsurf(is_oce),
     1261     $         "% "//clnsurf(is_oce), "%", 
     1262     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1263     $         "ave(X)", zstophy,zout)
     1264c
     1265           call histdef(nid_mth, "fract_"//clnsurf(is_oce),
     1266     $         "Fraction "//clnsurf(is_oce), "1", 
     1267     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1268     $         "ave(X)", zstophy,zout)
     1269C
     1270         DO nsrf = 1, nbsrf
     1271C
     1272           call histdef(nid_mth, "tsol_"//clnsurf(nsrf),
     1273     $         "Temperature "//clnsurf(nsrf), "K", 
     1274     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1275     $         "ave(X)", zstophy,zout)
     1276C
     1277           call histdef(nid_mth, "sens_"//clnsurf(nsrf),
     1278     $         "Sensible heat flux "//clnsurf(nsrf), "W/m2", 
     1279     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1280     $         "ave(X)", zstophy,zout)
     1281c
     1282           call histdef(nid_mth, "lat_"//clnsurf(nsrf),
     1283     $         "Latent heat flux "//clnsurf(nsrf), "W/m2", 
     1284     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1285     $         "ave(X)", zstophy,zout)
     1286C
     1287           call histdef(nid_mth, "flw_"//clnsurf(nsrf),
     1288     $         "LW "//clnsurf(nsrf), "W/m2",
     1289     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1290     $         "ave(X)", zstophy,zout)
     1291c
     1292           call histdef(nid_mth, "fsw_"//clnsurf(nsrf),
     1293     $         "SW "//clnsurf(nsrf), "W/m2",
     1294     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1295     $         "ave(X)", zstophy,zout)
     1296C
     1297           call histdef(nid_mth, "wbils_"//clnsurf(nsrf),
     1298     $         "Bilan sol "//clnsurf(nsrf), "W/m2",
     1299     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1300     $         "ave(X)", zstophy,zout)
     1301C
     1302cIM 250105 BEG
     1303          IF(1.EQ.0) THEN
     1304C
     1305           call histdef(nid_mth, "evapour_"//clnsurf(nsrf),
     1306     $         "Evap*pourc "//clnsurf(nsrf), "kg/(s*m2)",
     1307     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1308     $         "ave(X)", zstophy,zout)
     1309C
     1310           call histdef(nid_mth, "prepour_"//clnsurf(nsrf),
     1311     $         "Precip*pourc "//clnsurf(nsrf), "kg/(s*m2)",
     1312     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1313     $         "ave(X)", zstophy,zout)
     1314C
     1315          ENDIF !(1.EQ.0) THEN
     1316cIM 250105 END
     1317C
     1318         END DO
     1319c
     1320         CALL histdef(nid_mth, "cdrm", "Momentum drag coef.", "-",
     1321     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1322     .                "ave(X)", zstophy,zout)
     1323c
     1324         CALL histdef(nid_mth, "cdrh", "Heat drag coef.", "-",
     1325     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1326     .                "ave(X)", zstophy,zout)
     1327c
     1328         CALL histdef(nid_mth, "cldl", "Low-level cloudiness", "-",
     1329     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1330     .                "ave(X)", zstophy,zout)
     1331c
     1332         CALL histdef(nid_mth, "cldm", "Mid-level cloudiness", "-",
     1333     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1334     .                "ave(X)", zstophy,zout)
     1335c
     1336         CALL histdef(nid_mth, "cldh", "High-level cloudiness", "-",
     1337     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1338     .                "ave(X)", zstophy,zout)
     1339c
     1340         CALL histdef(nid_mth, "cldt", "Total cloudiness", "%",
     1341     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1342     .                "ave(X)", zstophy,zout)
     1343c
     1344         CALL histdef(nid_mth,"cldq","Cloud liquid water path","kg/m2",
     1345     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1346     .                "ave(X)", zstophy,zout)
     1347c
     1348         CALL histdef(nid_mth,"lwp","Cloud water path","kg/m2",
     1349     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1350     .                "ave(X)", zstophy,zout)
     1351c
     1352         CALL histdef(nid_mth,"iwp","Cloud ice water path","kg/m2",
     1353     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1354     .                "ave(X)", zstophy,zout)
     1355c
     1356         CALL histdef(nid_mth, "ue", "Zonal energy transport", "-",
     1357     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1358     .                "ave(X)", zstophy,zout)
     1359c
     1360         CALL histdef(nid_mth, "ve", "Merid energy transport", "-",
     1361     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1362     .                "ave(X)", zstophy,zout)
     1363c
     1364         CALL histdef(nid_mth, "uq", "Zonal humidity transport", "-",
     1365     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1366     .                "ave(X)", zstophy,zout)
     1367c
     1368         CALL histdef(nid_mth, "vq", "Merid humidity transport", "-",
     1369     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1370     .                "ave(X)", zstophy,zout)
     1371cKE43
     1372      IF(iflag_con.GE.3) THEN ! sb
     1373c
     1374         CALL histdef(nid_mth, "cape", "Conv avlbl pot ener", "J/kg",
     1375     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1376     .                "ave(X)", zstophy,zout)
     1377c
     1378         CALL histdef(nid_mth, "pbase", "Cld base pressure", "mb",
     1379     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1380     .                "ave(X)", zstophy,zout)
     1381c
     1382         CALL histdef(nid_mth, "ptop", "Cld top pressure", "mb",
     1383     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1384     .                "ave(X)", zstophy,zout)
     1385c
     1386         CALL histdef(nid_mth, "fbase", "Cld base mass flux", "kg/m2/s",
     1387     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1388     .                "ave(X)", zstophy,zout)
     1389c
     1390         CALL histdef(nid_mth, "prw", "Precipitable water", "kg/m2",
     1391     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1392     .                "ave(X)", zstophy,zout)
     1393c
     1394      ENDIF !iflag_con .GE. 3
     1395c34EK
     1396cIM cf. AM 081204 BEG
     1397c34EK
     1398c HBTM2
     1399         CALL histdef(nid_mth, "s_pblh", "Boundary Layer Height", "m",
     1400     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1401     .                "ave(X)", zstophy,zout)
     1402         CALL histdef(nid_mth, "s_pblt", "T at Boundary Layer Height",
     1403     .                "K",
     1404     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1405     .                "ave(X)", zstophy,zout)
     1406         CALL histdef(nid_mth, "s_lcl", "Condensation level", "m",
     1407     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1408     .                "ave(X)", zstophy,zout)
     1409         CALL histdef(nid_mth,"s_capCL","Conv avlbl pot ener for ABL",
     1410     .                "J/m2",
     1411     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1412     .                "ave(X)", zstophy,zout)
     1413         CALL histdef(nid_mth, "s_oliqCL", "Liq Water in BL", "kg/m2",
     1414     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1415     .                "ave(X)", zstophy,zout)
     1416         CALL histdef(nid_mth,"s_cteiCL","Instability criteria (ABL)",
     1417     .                "K",
     1418     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1419     .                "ave(X)", zstophy,zout)
     1420         CALL histdef(nid_mth, "s_therm", "Exces du thermique", "K",
     1421     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1422     .                "ave(X)", zstophy,zout)
     1423         CALL histdef(nid_mth, "s_trmb1", "deep_cape(HBTM2)", "J/m2",
     1424     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1425     .                "ave(X)", zstophy,zout)
     1426         CALL histdef(nid_mth, "s_trmb2", "inhibition (HBTM2)", "J/m2",
     1427     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1428     .                "ave(X)", zstophy,zout)
     1429         CALL histdef(nid_mth, "s_trmb3", "Point Omega (HBTM2)", "m",
     1430     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1431     .                "ave(X)", zstophy,zout)
     1432c
     1433cIM cf. AM 081204 END
     1434c
     1435c Champs interpolles sur des niveaux de pression
     1436         DO k=1, nlevSTD
     1437c
     1438c        bb=clevSTD(k)
     1439c
     1440c        IF(k.GE.2) THEN
     1441         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
     1442         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
     1443c         aa=clevSTD(k)
     1444c         bb=aa(1:lnblnk1(aa))
     1445c        ENDIF
     1446c
     1447       IF(bb2.EQ."850".OR.bb2.EQ."700"
     1448     $   .OR.bb2.EQ."500".OR.bb2.EQ."200") THEN
     1449c
     1450          CALL histdef(nid_mth, "u"//bb2,
     1451     .                 "Zonal wind "//bb2//"mb","m/s",
     1452     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1453     .                "inst(X)", zout,zout)
     1454c
     1455          CALL histdef(nid_mth, "v"//bb2,
     1456     .                 "Meridional wind "//bb2//"mb","m/s",
     1457     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1458     .                "inst(X)", zout,zout)
     1459c
     1460          CALL histdef(nid_mth, "w"//bb2,
     1461     .                 "Vertical wind "//bb2//"mb","m/s",
     1462     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1463     .                "inst(X)", zout,zout)
     1464c
     1465          CALL histdef(nid_mth, "phi"//bb2,
     1466     .                 "Geopotential "//bb2//"mb","m",
     1467     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1468     .                "inst(X)", zout,zout)
     1469c
     1470         ENDIF !(bb2.EQ."850".OR.bb2.EQ."700"
     1471c
     1472       ENDDO !nlevSTD
     1473c
     1474cIM diagnostiques flux ocean-atm ou ocean-glace de mer
     1475cIM pour utilisation dans un modele de "slab" ocean
     1476c
     1477       CALL histdef(nid_mth, "fluxo",
     1478     .              "Flux turbulents ocean-atmosphere", "W/m2",
     1479     .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     1480     .              "ave(X)", zstophy,zout)
     1481c
     1482       CALL histdef(nid_mth, "fluxg",
     1483     .              "Flux turbulents ocean-glace de mer","W/m2",
     1484     .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     1485     .              "ave(X)", zstophy,zout)
     1486c
     1487       IF (OCEAN.EQ.'force ') THEN
     1488c
     1489        CALL histdef(nid_mth, "lmt_bils",
     1490     .       "Bilan au sol atmosphere forcee", "W/m2",
     1491     .       iim,jjmp1,nhori, 1,1,1, -99, 32,
     1492     .       "ave(X)", zstophy,zout)
     1493c
     1494       ELSE IF (OCEAN.EQ.'slab  ') THEN
     1495c
     1496        CALL histdef(nid_mth, "slab_bils",
     1497     .              "Bilan au sol Slab", "W/m2",
     1498     .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     1499     .              "ave(X)", zstophy,zout)
     1500c
     1501        CALL histdef(nid_mth, "tslab", "Slab SST ", "K",
     1502     .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     1503     .              "ave(X)", zstophy,zout)
     1504c
     1505        CALL histdef(nid_mth, "seaice", "Slab seaice", "kg/m2",
     1506     .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     1507     .              "ave(X)", zstophy,zout)
     1508c
     1509        CALL histdef(nid_mth, "siceh", "Slab seaice height", "m",
     1510     .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     1511     .              "ave(X)", zstophy,zout)
     1512c
     1513       ENDIF !OCEAN.EQ.slab/force
     1514c
     1515      ENDIF !lev_histmth.GE.1
     1516c
     1517      IF(lev_histmth.GE.2) THEN
     1518c
     1519c Champs 3D:
     1520c
     1521c
     1522         CALL histdef(nid_mth,"lwcon","Cloud liquid water content",
     1523     .                "kg/kg",
     1524     .                iim,jjmp1,nhori, klev,1,klev, nvert, 32,
     1525     .                "ave(X)", zstophy,zout)
     1526c
     1527         CALL histdef(nid_mth,"iwcon","Cloud ice water content","kg/kg",
     1528     .                iim,jjmp1,nhori, klev,1,klev, nvert, 32,
     1529     .                "ave(X)", zstophy,zout)
     1530c
     1531         CALL histdef(nid_mth, "temp", "Air temperature", "K",
     1532     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1533     .                "ave(X)", zstophy,zout)
     1534c
     1535         CALL histdef(nid_mth, "ovap", "Specific humidity", "kg/kg",
     1536     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1537     .                "ave(X)", zstophy,zout)
     1538c
     1539c        CALL histdef(nid_mth,"wvap","Water vapor mixing ratio","kg/kg",
     1540c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1541c    .                "ave(X)", zstophy,zout)
     1542c
     1543         CALL histdef(nid_mth, "geop", "Geopotential height", "m2/s2",
     1544     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1545     .                "ave(X)", zstophy,zout)
     1546c
     1547         CALL histdef(nid_mth, "vitu", "Zonal wind", "m/s",
     1548     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1549     .                "ave(X)", zstophy,zout)
     1550c
     1551         CALL histdef(nid_mth, "vitv", "Meridional wind", "m/s",
     1552     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1553     .                "ave(X)", zstophy,zout)
     1554c
     1555         CALL histdef(nid_mth, "vitw", "Vertical wind", "m/s",
     1556     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1557     .                "ave(X)", zstophy,zout)
     1558c
     1559         CALL histdef(nid_mth, "pres", "Air pressure", "Pa",
     1560     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1561     .                "ave(X)", zstophy,zout)
     1562c
     1563        CALL histdef(nid_mth, "rneb", "Cloud fraction", "%",
     1564     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1565     .                "ave(X)", zstophy,zout)
     1566c
     1567         CALL histdef(nid_mth, "rnebcon", "Convective Cloud Fraction"
     1568     .                , "-",
     1569     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1570     .                "ave(X)", zstophy,zout)
     1571c
     1572         CALL histdef(nid_mth, "rhum", "Relative humidity", "-",
     1573     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1574     .                "ave(X)", zstophy,zout)
     1575c
     1576         CALL histdef(nid_mth, "ozone", "Ozone concentration", "ppmv",
     1577     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1578     .                "ave(X)", zstophy,zout)
     1579c
     1580         CALL histdef(nid_mth, "upwd", "saturated updraft", "kg/m2/s",
     1581     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1582     .                "ave(X)", zstophy,zout)
     1583c
     1584         CALL histdef(nid_mth, "dtphy", "Physics dT", "K/s",
     1585     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1586     .                "ave(X)", zstophy,zout)
     1587c
     1588         CALL histdef(nid_mth, "dqphy","Physics dQ","(kg/kg)/s",
     1589     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1590     .                "ave(X)", zstophy,zout)
     1591c
     1592      ENDIF !lev_histmth.GE.2
     1593c
     1594      IF(lev_histmth.GE.3) THEN
     1595c
     1596        DO nsrf=1, nbsrf
     1597c
     1598           call histdef(nid_mth, "albe_"//clnsurf(nsrf),
     1599     $         "Albedo surf. "//clnsurf(nsrf), "-", 
     1600     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1601     $         "ave(X)", zstophy,zout)
     1602c
     1603           call histdef(nid_mth, "rugs_"//clnsurf(nsrf),
     1604     $         "Rugosite "//clnsurf(nsrf), "m", 
     1605     $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1606     $         "ave(X)", zstophy,zout)
     1607c
     1608         CALL histdef(nid_mth, "ages_"//clnsurf(nsrf), "Snow age","day",
     1609     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1610     .                "ave(X)", zstophy,zout)
     1611c
     1612         ENDDO !nsrf=1, nbsrf
     1613c
     1614         CALL histdef(nid_mth, "albs", "Surface albedo", "-",
     1615     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1616     .                "ave(X)", zstophy,zout)
     1617         CALL histdef(nid_mth, "albslw", "Surface albedo LW", "-",
     1618     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1619     .                "ave(X)", zstophy,zout)
     1620c
     1621      ENDIF !lev_histmth.GE.3
     1622c
     1623      IF(lev_histmth.GE.4) THEN
     1624c
     1625         CALL histdef(nid_mth, "clwcon",
     1626     .                "Convective Cloud Liquid water content"
     1627     .                , "kg/kg",
     1628     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1629     .                "ave(X)", zstophy,zout)
     1630c
     1631         CALL histdef(nid_mth,"Ma","undilute adiab updraft","kg/m2/s",
     1632     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1633     .                "ave(X)", zstophy,zout)
     1634c
     1635         CALL histdef(nid_mth, "dnwd", "saturated downdraft","kg/m2/s",
     1636     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1637     .                "ave(X)", zstophy,zout)
     1638c
     1639         CALL histdef(nid_mth, "dnwd0", "unsat. downdraft", "kg/m2/s",
     1640     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1641     .                "ave(X)", zstophy,zout)
     1642c
     1643         CALL histdef(nid_mth, "dtdyn", "Dynamics dT", "K/s",
     1644     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1645     .                "ave(X)", zstophy,zout)
     1646c
     1647         CALL histdef(nid_mth, "dqdyn","Dynamics dQ","(kg/kg)/s",
     1648     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1649     .                "ave(X)", zstophy,zout)
     1650c
     1651         CALL histdef(nid_mth, "dqcon","Convection dQ","(kg/kg)/s",
     1652     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1653     .                "ave(X)", zstophy,zout)
     1654c
     1655         CALL histdef(nid_mth, "dtlschr",
     1656     $       "Large-scale condensational heating rate", "K/s",iim,jjmp1
     1657     $       ,nhori, klev,1,klev,nvert, 32,"ave(X)", zstophy,zout)
     1658c
     1659         CALL histdef(nid_mth, "dqlsc","Condensation dQ","(kg/kg)/s",
     1660     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1661     .                "ave(X)", zstophy,zout)
     1662c
     1663         CALL histdef(nid_mth, "dtvdf", "Boundary-layer dT", "K/s",
     1664     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1665     .                "ave(X)", zstophy,zout)
     1666c
     1667         CALL histdef(nid_mth, "dqvdf","Boundary-layer dQ","(kg/kg)/s",
     1668     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1669     .                "ave(X)", zstophy,zout)
     1670c
     1671         CALL histdef(nid_mth, "dteva", "Reevaporation dT", "K/s",
     1672     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1673     .                "ave(X)", zstophy,zout)
     1674c
     1675         CALL histdef(nid_mth,"dqeva","Reevaporation dQ","(kg/kg)/s",
     1676     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1677     .                "ave(X)", zstophy,zout)
     1678
     1679         CALL histdef(nid_mth, "ptconv", "POINTS CONVECTIFS"," ",
     1680     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1681     .                "ave(X)", zstophy,zout)
     1682
     1683         CALL histdef(nid_mth, "ratqs", "RATQS"," ",
     1684     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1685     .                "ave(X)", zstophy,zout)
     1686
     1687c
     1688         CALL histdef(nid_mth, "dqajs","Dry adjust. dQ","(kg/kg)/s",
     1689     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1690     .                "ave(X)", zstophy,zout)
     1691c
     1692         CALL histdef(nid_mth, "dtswr", "SW radiation dT", "K/s",
     1693     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1694     .                "ave(X)", zstophy,zout)
     1695c
     1696         CALL histdef(nid_mth, "dtsw0", "CS SW radiation dT", "K/s",
     1697     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1698     .                "ave(X)", zstophy,zout)
     1699c
     1700         CALL histdef(nid_mth, "dtlwr", "LW radiation dT", "K/s",
     1701     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1702     .                "ave(X)", zstophy,zout)
     1703c
     1704         CALL histdef(nid_mth,"dtlw0","CS LW radiation dT","K/s",
     1705     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1706     .                "ave(X)", zstophy,zout)
     1707c
     1708         CALL histdef(nid_mth, "dtec", "Cinetic dissip dT", "K/s",
     1709     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1710     .                "ave(X)", zstophy,zout)
     1711c
     1712         CALL histdef(nid_mth, "duvdf", "Boundary-layer dU", "m/s2",
     1713     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1714     .                "ave(X)", zstophy,zout)
     1715c
     1716         CALL histdef(nid_mth, "dvvdf", "Boundary-layer dV", "m/s2",
     1717     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1718     .                "ave(X)", zstophy,zout)
     1719c
     1720         IF (ok_orodr) THEN
     1721         CALL histdef(nid_mth, "duoro", "Orography dU", "m/s2",
     1722     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1723     .                "ave(X)", zstophy,zout)
     1724c
     1725         CALL histdef(nid_mth, "dvoro", "Orography dV", "m/s2",
     1726     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1727     .                "ave(X)", zstophy,zout)
     1728c
     1729         ENDIF
     1730C
     1731         IF (ok_orolf) THEN
     1732         CALL histdef(nid_mth, "dulif", "Orography dU", "m/s2",
     1733     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1734     .                "ave(X)", zstophy,zout)
     1735c
     1736         CALL histdef(nid_mth, "dvlif", "Orography dV", "m/s2",
     1737     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1738     .                "ave(X)", zstophy,zout)
     1739         ENDIF
     1740C
     1741         if (nqmax.GE.3) THEN
     1742         DO iq=1,nqmax-2
     1743         IF (iq.LE.99) THEN
     1744         WRITE(str2,'(i2.2)') iq
     1745         CALL histdef(nid_mth, "trac"//str2, "Tracer No."//str2, "-",
     1746     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1747     .                "ave(X)", zstophy,zout)
     1748         ELSE
     1749         PRINT*, "Trop de traceurs"
     1750         CALL abort
     1751         ENDIF
     1752         ENDDO
     1753         ENDIF
     1754c
     1755      ENDIF !lev_histmth.GE.4
     1756c
     1757      ENDIF !type_run.EQ."CLIM".OR.type_run.EQ."ENSP")
     1758c
    7571759         CALL histend(nid_mth)
    7581760c
  • LMDZ4/trunk/libf/phylmd/ini_histmthNMC.h

    r524 r644  
    44      IF (ok_mensuel) THEN
    55c
    6          zsto = dtime
    7          zout = dtime * ecrit_mth
     6       zstophy = dtime
     7       zstohf = dtime * FLOAT(ecrit_hf)
     8       zstomth = dtime * FLOAT(ecrit_mth)
     9       zout = dtime * FLOAT(ecrit_mth)
    810c
    911         idayref = day_ref
     
    2224     .                 1,iim,1,jjmp1, itau_phy, zjulian, dtime,
    2325     .                 nhori, nid_nmc)
    24          write(*,*)'Mensuel NMC ', itau_phy, zjulian
     26c
    2527         CALL histvert(nid_nmc, "presnivs", "Vertical levels", "mb",
    26      .                 klev, presnivs, nvert)
    27 c        call histvert(nid_nmc, 'sig_s', 'Niveaux sigma','-',
    28 c    .              klev, znivsig, nvert)
     28     .                 nlevSTD, rlevSTD/100., nvert)
     29ccc
     30ccc Champs 3D interpolles sur des niveaux de pression du NMC
     31ccc
     32      IF(type_run.EQ."ENSP".OR.type_run.EQ."CLIM") THEN
    2933c
    30 c Champs 2D:
    31 
    32 c Champs interpolles sur des niveaux de pression du NMC
    33 c IMIMIM 110304 BEG
     34          CALL histdef(nid_nmc, "temp",
     35     .                 "Temperature","K",
     36     .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     37     .                "inst(X)", zout,zout)
    3438c
    35          DO k=1, nlevSTD
     39         CALL histdef(nid_nmc, "phi",
     40     .                "Geopotential", "m",
     41     .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     42     .                "inst(X)", zout,zout)
    3643c
    37          bb=clevSTD(k)
     44          CALL histdef(nid_nmc, "q",
     45     .                 "Specific humidity","kg/kg",
     46     .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     47     .                "inst(X)", zout,zout)
    3848c
    39          IF(k.GE.2) THEN
    40           aa=clevSTD(k)
    41           bb=aa(1:lnblnk1(aa))
    42          ENDIF
     49         CALL histdef(nid_nmc, "rh",
     50     .                 "Relative humidity", "%",
     51     .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     52     .                "inst(X)", zout,zout)
    4353c
    44           CALL histdef(nid_nmc, "t"//bb,
    45      .                 "Temperature"//bb//"mb","K",
    46      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    47      .                "ave(X)", zsto,zout)
     54          CALL histdef(nid_nmc, "u",
     55     .                 "Zonal wind","m/s",
     56     .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     57     .                "inst(X)", zout,zout)
    4858c
    49          CALL histdef(nid_nmc, "phi"//bb,
    50      .                "Geopotential"//bb//"mb", "m2/s2",
    51      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    52      .                "ave(X)", zsto,zout)
     59          CALL histdef(nid_nmc, "v",
     60     .                 "Meridional wind","m/s",
     61     .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     62     .                "inst(X)", zout,zout)
    5363c
    54           CALL histdef(nid_nmc, "q"//bb,
    55      .                 "Specific humidity"//bb//"mb","kg/kg",
    56      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    57      .                "ave(X)", zsto,zout)
     64      ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN
    5865c
    59          CALL histdef(nid_nmc, "rh"//bb,
    60      .                 "Relative humidity"//bb//"mb", "%",
    61      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    62      .                "ave(X)", zsto,zout)
     66c ATTENTION : pour AMIP2 on interpole t,u,v,wphi,q,rh
     67c             sur les niveaux du NMC et on somme & moyenne
     68c             toutes les 6 heures par des routines undefSTD et
     69c             moy_undefSTD pour eliminer les valeurs "undef"
     70c             de la moyenne mensuelle
     71c ======> le "inst(X)" ci-dessous est par consequence factice !
    6372c
    64           CALL histdef(nid_nmc, "u"//bb,
    65      .                 "Zonal wind"//bb//"mb","K",
    66      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    67      .                "ave(X)", zsto,zout)
     73          CALL histdef(nid_nmc, "temp",
     74     .                 "Temperature","K",
     75     .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     76     .                "inst(X)", zout,zout)
    6877c
    69           CALL histdef(nid_nmc, "v"//bb,
    70      .                 "Meridional wind"//bb//"mb","K",
    71      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    72      .                "ave(X)", zsto,zout)
     78         CALL histdef(nid_nmc, "phi",
     79     .                "Geopotential ", "m",
     80     .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     81     .                "inst(X)", zout,zout)
    7382c
    74          ENDDO !nlevSTD
    75 c IMIMIM 110304 END
     83          CALL histdef(nid_nmc, "q",
     84     .                 "Specific humidity","kg/kg",
     85     .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     86     .                "inst(X)", zout,zout)
     87c
     88         CALL histdef(nid_nmc, "rh",
     89     .                 "Relative humidity", "%",
     90     .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     91     .                "inst(X)", zout,zout)
     92c
     93          CALL histdef(nid_nmc, "u",
     94     .                 "Zonal wind","m/s",
     95     .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     96     .                "inst(X)", zout,zout)
     97c
     98          CALL histdef(nid_nmc, "v",
     99     .                 "Meridional wind","m/s",
     100     .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     101     .                "inst(X)", zout,zout)
     102c
     103          CALL histdef(nid_nmc, "w",
     104     .                 "Vertical motion","Pa/s",
     105     .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     106     .                "inst(X)", zout,zout)
     107c
     108c ATTENTION : pour AMIP2 on interpole t,u,v,wphi,q,rh
     109c             sur les niveaux du NMC et on somme & moyenne
     110c             toutes les 6 heures par des routines undefSTD et
     111c             moy_undefSTD pour eliminer les valeurs "undef"
     112c             de la moyenne mensuelle
     113c ======> le "inst(X)" ci-dessus est par consequence factice !
     114c
     115c
     116          CALL histdef(nid_nmc, "psbg",
     117     .         "Pressure sfce below ground","%",
     118     .         iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     119     .         "inst(X)", zout,zout)
     120c
     121          CALL histdef(nid_nmc, "uv",
     122     .         "uv ",
     123     .         "m2/s2",iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     124     .         "inst(X)", zout,zout)
     125c
     126          CALL histdef(nid_nmc, "vq",
     127     .         "vq ",
     128     .         "m/s * (kg/kg)",iim,jjmp1,nhori,
     129     .          nlevSTD,1,nlevSTD, nvert, 32,
     130     .         "inst(X)", zout,zout)
     131c
     132          CALL histdef(nid_nmc, "vT",
     133     .         "vT ",
     134     .         "mK/s",iim,jjmp1,nhori,
     135     .          nlevSTD,1,nlevSTD, nvert, 32,
     136     .         "inst(X)", zout,zout)
     137c
     138          CALL histdef(nid_nmc, "wq",
     139     .         "wq ",
     140     .         "(Pa/s)*(kg/kg)",iim,jjmp1,nhori,
     141     .          nlevSTD,1,nlevSTD, nvert, 32,
     142     .         "inst(X)", zout,zout)
     143c
     144          CALL histdef(nid_nmc, "vphi",
     145     .         "vphi ",
     146     .         "m2/s",iim,jjmp1,nhori,
     147     .          nlevSTD,1,nlevSTD, nvert, 32,
     148     .         "inst(X)", zout,zout)
     149c
     150          CALL histdef(nid_nmc, "wT",
     151     .         "wT ",
     152     .         "K*Pa/s",iim,jjmp1,nhori,
     153     .          nlevSTD,1,nlevSTD, nvert, 32,
     154     .         "inst(X)", zout,zout)
     155c
     156          CALL histdef(nid_nmc, "uxu",
     157     .         "u2 ",
     158     .         "m2/s2",iim,jjmp1,nhori,
     159     .          nlevSTD,1,nlevSTD, nvert, 32,
     160     .         "inst(X)", zout,zout)
     161c
     162          CALL histdef(nid_nmc, "vxv",
     163     .         "v2 ",
     164     .         "m2/s2",iim,jjmp1,nhori,
     165     .          nlevSTD,1,nlevSTD, nvert, 32,
     166     .         "inst(X)", zout,zout)
     167c
     168          CALL histdef(nid_nmc, "TxT",
     169     .         "T2 ",
     170     .         "K2",iim,jjmp1,nhori,
     171     .          nlevSTD,1,nlevSTD, nvert, 32,
     172     .         "inst(X)", zout,zout)
     173c
     174      ENDIF !(type_run.EQ."AMIP")
    76175
    77176         CALL histend(nid_nmc)
    78177c
    79 c        ndex2d = 0
    80 c
    81178      ENDIF ! fin de test sur ok_mensuel
    82 
  • LMDZ4/trunk/libf/phylmd/interface_surf.F90

    r623 r644  
    7474      & evap, fluxsens, fluxlat, dflux_l, dflux_s, &             
    7575      & tsol_rad, tsurf_new, alb_new, alblw, emis_new, &
    76       & z0_new, pctsrf_new, agesno,fqcalving,ffonte, run_off_lic_0)
     76      & z0_new, pctsrf_new, agesno,fqcalving,ffonte, run_off_lic_0,&
     77!IM "slab" ocean
     78      & flux_o, flux_g, tslab, seaice)
    7779
    7880
     
    125127!   albedo       albedo de la surface
    126128!   tsurf        temperature de surface
     129!   tslab        temperature slab ocean
     130!   pctsrf_slab  pourcentages (0-1) des sous-surfaces dans le slab
     131!   tmp_pctsrf_slab = pctsrf_slab
    127132!   p1lay        pression 1er niveau (milieu de couche)
    128133!   ps           pression au sol
     
    179184  real, dimension(klon), intent(IN) :: ps, albedo
    180185  real, dimension(klon), intent(IN) :: tsurf, p1lay
     186!IM: "slab" ocean
     187  real, dimension(klon), intent(INOUT) :: tslab
     188  real, allocatable, dimension(:), save :: tmp_tslab
     189  real, dimension(klon), intent(OUT) :: flux_o, flux_g
     190  real, dimension(klon), intent(INOUT)        :: seaice ! glace de mer (kg/m2)
    181191  REAL, DIMENSION(klon), INTENT(INOUT) :: radsol,fder
    182192  real, dimension(klon), intent(IN) :: zmasq
     
    212222!jld a rajouter   real, dimension(klon), intent(INOUT):: fqcalving
    213223  real, dimension(klon), intent(INOUT):: fqcalving
     224!IM: "slab" ocean
     225  real, dimension(klon) :: new_dif_grnd
     226!IM: "slab" ocean - Local
     227  real, parameter :: t_grnd=271.35
     228  real, dimension(klon) :: zx_sl
     229  integer i
     230  real, allocatable, dimension(:), save :: tmp_flux_o, tmp_flux_g
     231  real, allocatable, dimension(:), save :: tmp_radsol
     232  real, allocatable, dimension(:,:), save :: tmp_pctsrf_slab
     233  real, allocatable, dimension(:), save :: tmp_seaice
    214234
    215235! Local
     
    287307  tsurf_new = 999999.
    288308  alblw = 999999.
     309
     310!IM: "slab" ocean; initialisations
     311  flux_o = 0.
     312  flux_g = 0.
     313!
     314    if (.not. allocated(tmp_flux_o)) then
     315      allocate(tmp_flux_o(klon), stat = error)
     316      DO i=1, knon
     317       tmp_flux_o(knindex(i))=flux_o(i)
     318      ENDDO
     319      if (error /= 0) then
     320        abort_message='Pb allocation tmp_flux_o'
     321        call abort_gcm(modname,abort_message,1)
     322      endif
     323    endif
     324    if (.not. allocated(tmp_flux_g)) then 
     325      allocate(tmp_flux_g(klon), stat = error)
     326      DO i=1, knon
     327       tmp_flux_g(knindex(i))=flux_g(i)
     328      ENDDO
     329      if (error /= 0) then
     330        abort_message='Pb allocation tmp_flux_g'
     331        call abort_gcm(modname,abort_message,1)
     332      endif
     333    endif
     334    if (.not. allocated(tmp_radsol)) then 
     335      allocate(tmp_radsol(klon), stat = error)
     336      if (error /= 0) then
     337        abort_message='Pb allocation tmp_radsol'
     338        call abort_gcm(modname,abort_message,1)
     339      endif
     340    endif
     341    DO i=1, knon
     342     tmp_radsol(knindex(i))=radsol(i)
     343    ENDDO
     344    if (.not. allocated(tmp_pctsrf_slab)) then
     345      allocate(tmp_pctsrf_slab(klon,nbsrf), stat = error)
     346      if (error /= 0) then
     347        abort_message='Pb allocation tmp_pctsrf_slab'
     348        call abort_gcm(modname,abort_message,1)
     349      endif
     350    DO i=1, klon
     351     tmp_pctsrf_slab(i,1:nbsrf)=pctsrf(i,1:nbsrf)
     352    ENDDO
     353    endif
     354!
     355    if (.not. allocated(tmp_seaice)) then
     356      allocate(tmp_seaice(klon), stat = error)
     357      if (error /= 0) then
     358        abort_message='Pb allocation tmp_seaice'
     359        call abort_gcm(modname,abort_message,1)
     360      endif
     361    DO i=1, klon
     362     tmp_seaice(i)=seaice(i)
     363    ENDDO
     364    endif
     365!
     366    if (.not. allocated(tmp_tslab)) then
     367      allocate(tmp_tslab(klon), stat = error)
     368      if (error /= 0) then
     369        abort_message='Pb allocation tmp_tslab'
     370        call abort_gcm(modname,abort_message,1)
     371      endif
     372    endif
     373    DO i=1, klon
     374     tmp_tslab(i)=tslab(i)
     375    ENDDO
     376!
    289377! Aiguillage vers les differents schemas de surface
    290378
     
    465553      & pctsrf_new)
    466554
    467 !    else if (ocean == 'slab  ') then
    468 !      call interfoce(nisurf)
     555!IM: "slab" ocean
     556     else if (ocean == 'slab  ') then
     557      tsurf_new = tsurf
     558      pctsrf_new = tmp_pctsrf_slab
     559!
    469560    else                              ! lecture conditions limites
    470561      call interfoce(itime, dtime, jour, &
     
    504595!!$      endwhere
    505596
     597!IM: flux ocean-atmosphere utile pour le "slab" ocean
     598    DO i=1, knon
     599     zx_sl(i) = RLVTT
     600     if (tsurf_new(i) .LT. RTT) zx_sl(i) = RLSTT
     601     flux_o(i) = fluxsens(i)-evap(i)*zx_sl(i)
     602     tmp_flux_o(knindex(i)) = flux_o(i)
     603     tmp_radsol(knindex(i))=radsol(i)
     604    ENDDO
    506605!
    507606! 2eme appel a interfoce pour le cumul des champs (en particulier
     
    524623      & pctsrf_new)
    525624
    526 !    else if (ocean == 'slab  ') then
    527 !      call interfoce(nisurf)
    528 
     625!IM: "slab" ocean
     626    else if (ocean == 'slab  ') then
     627!
     628       seaice=tmp_seaice
     629       cumul = .true.
     630       call interfoce(klon, debut, itime, dtime, jour, &
     631     & tmp_radsol, tmp_flux_o, tmp_flux_g, pctsrf, &
     632     & tslab, seaice, pctsrf_new)
     633!
     634       tmp_pctsrf_slab=pctsrf_new
     635       DO i=1, knon
     636        tsurf_new(i)=tslab(knindex(i))
     637       ENDDO !i
     638!
    529639    endif
    530640
     
    585695      beta = 1.0
    586696
    587 !    else if (ocean == 'slab  ') then
    588 !      call interfoce(nisurf)
     697!IM: "slab" ocean
     698    else if (ocean == 'slab  ') then
     699     pctsrf_new=tmp_pctsrf_slab
     700!
     701     DO ii = 1, knon
     702      tsurf_new(ii) = tsurf(ii)
     703      IF (pctsrf_new(knindex(ii),nisurf) < EPSFRA) then
     704       snow(ii) = 0.0
     705       tsurf_new(ii) = RTT - 1.8
     706       IF (soil_model) tsoil(ii,:) = RTT -1.8
     707      ENDIF
     708     ENDDO
     709
     710     CALL calbeta(dtime, nisurf, knon, snow, qsol, beta, capsol, dif_grnd)
     711     
     712     IF (soil_model) THEN
     713      CALL soil(dtime, nisurf, knon,snow, tsurf_new, tsoil,soilcap, soilflux)
     714      cal(1:knon) = RCPD / soilcap(1:knon)
     715      radsol(1:knon) = radsol(1:knon)  + soilflux(1:knon)
     716     ELSE
     717      dif_grnd = 1.0 / tau_gl
     718      cal = RCPD * calice
     719      WHERE (snow > 0.0) cal = RCPD * calsno
     720     ENDIF
     721     tsurf_temp = tsurf_new
     722     beta = 1.0
     723!
    589724    ELSE
    590725!                              ! lecture conditions limites
     
    596731!IM cf LF
    597732      DO ii = 1, knon
    598        IF (pctsrf_new(ii,nisurf) < EPSFRA) then
     733       tsurf_new(ii) = tsurf(ii)
     734!IMbad IF (pctsrf_new(ii,nisurf) < EPSFRA) then
     735       IF (pctsrf_new(knindex(ii),nisurf) < EPSFRA) then
    599736          snow(ii) = 0.0
    600737!IM cf LF/JLD         tsurf(ii) = RTT - 1.8
     
    617754         WHERE (snow > 0.0) cal = RCPD * calsno
    618755      ENDIF
    619       tsurf_temp = tsurf
     756!IMbadtsurf_temp = tsurf
     757      tsurf_temp = tsurf_new
    620758      beta = 1.0
    621759    ENDIF
     
    627765         &   petAcoef, peqAcoef, petBcoef, peqBcoef, &
    628766         &   tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l)
     767!
     768!IM: flux entre l'ocean et la glace de mer pour le "slab" ocean
     769    DO i = 1, knon
     770     flux_g(i) = 0.0
     771!
     772!IM: faire dependre le coefficient de conduction de la glace de mer
     773!    de l'epaisseur de la glace de mer, dans l'hypothese ou le coeff.
     774!    actuel correspond a 3m de glace de mer, cf. L.Li
     775!
     776!      IF(1.EQ.0) THEN
     777!       IF(siceh(i).GT.0.) THEN
     778!        new_dif_grnd(i) = dif_grnd(i)*3./siceh(i)
     779!       ELSE
     780!        new_dif_grnd(i) = 0.
     781!       ENDIF
     782!      ENDIF !(1.EQ.0) THEN
     783!
     784     IF (cal(i).GT.1.0e-15) flux_g(i)=(tsurf_new(i)-t_grnd) &
     785    &                          * dif_grnd(i) *RCPD/cal(i)
     786!   &                          * new_dif_grnd(i) *RCPD/cal(i)
     787      tmp_flux_g(knindex(i))=flux_g(i)
     788      tmp_radsol(knindex(i))=radsol(i)
     789    ENDDO
    629790
    630791    IF (ocean /= 'couple') THEN
     
    744905     alb_new(1 : knon)  = alb_neig(1 : knon)*zfra(1:knon) + &
    745906    &                     0.6 * (1.0-zfra(1:knon))
    746 !IM cf FH/GK     alb_new(1 : knon)  = 0.6
     907!
     908!IM: plusieurs choix/tests sur l'albedo des "glaciers continentaux"
     909!       alb_new(1 : knon)  = 0.6 !IM cf FH/GK
    747910!       alb_new(1 : knon)  = 0.82
    748 !IM cf JLD/ GK
    749 !IM: 211003 Ksta0.77      alb_new(1 : knon)  = 0.77
    750 !IM: KstaTER0.8 & LMD_ARMIP5    alb_new(1 : knon)  = 0.8
     911!       alb_new(1 : knon)  = 0.77 !211003 Ksta0.77
     912!       alb_new(1 : knon)  = 0.8 !KstaTER0.8 & LMD_ARMIP5
    751913!IM: KstaTER0.77 & LMD_ARMIP6   
    752914        alb_new(1 : knon)  = 0.77
     
    11371299      resolution(igrid,2) = cvfi(ij)
    11381300    enddo 
     1301!IM tester la resolution que recoit Orchidee
     1302    IF((maxval(resolution(:,2)) == 0.).OR. &
     1303   &   (maxval(resolution(:,1)) == 0.)) THEN
     1304     abort_message='STOP interfsol : resolution recue par Orchidee = 0.'
     1305     call abort_gcm(modname,abort_message,1)
     1306    ENDIF
    11391307
    11401308  endif                          ! (fin debut)
     
    11871355
    11881356!IM cf. JP +++
    1189   swdown_vrai(1:knon) = swnet(1:knon)/(1. - albedo_keep(1:knon))
     1357!IM swdown_vrai(1:knon) = swnet(1:knon)/(1. - albedo_keep(1:knon))
     1358!IM modification faite dans clmain
     1359    swdown_vrai(1:knon) = swdown(1:knon)
    11901360!IM cf. JP ---
    11911361
     
    18872057!#########################################################################
    18882058!
    1889 
    1890   SUBROUTINE interfoce_slab(nisurf)
    1891 
    1892 ! Cette routine sert d'interface entre le modele atmospherique et un
    1893 ! modele de 'slab' ocean
    1894 !
    1895 ! L. Fairhead 02/2000
     2059   SUBROUTINE interfoce_slab(klon, debut, itap, dtime, ijour, &
     2060 & radsol, fluxo, fluxg, pctsrf, &
     2061 & tslab, seaice, pctsrf_slab)
     2062!
     2063! Cette routine calcule la temperature d'un slab ocean, la glace de mer
     2064! et les pourcentages de la maille couverte par l'ocean libre et/ou
     2065! la glace de mer pour un "slab" ocean de 50m
     2066!
     2067! I. Musat 04.02.2005
    18962068!
    18972069! input:
    1898 !   nisurf       index de la surface a traiter (1 = sol continental)
    1899 !
    1900 ! output:
    1901 !
    1902 
     2070!   klon         nombre total de points de grille
     2071!   debut        logical: 1er appel a la physique
     2072!   itap         numero du pas de temps
     2073!   dtime        pas de temps de la physique (en s)
     2074!   ijour        jour dans l'annee en cours
     2075!   radsol       rayonnement net au sol (LW + SW)
     2076!   fluxo        flux turbulent (sensible + latent) sur les mailles oceaniques
     2077!   fluxg        flux de conduction entre la surface de la glace de mer et l'ocean
     2078!   pctsrf       tableau des pourcentages de surface de chaque maille
     2079! output:
     2080!   tslab        temperature de l'ocean libre
     2081!   seaice       glace de mer (kg/m2)
     2082!   pctsrf_slab  "pourcentages" (valeurs entre 0. et 1.) surfaces issus du slab
     2083!
     2084#include "indicesol.inc"
     2085#include "clesphys.inc"
    19032086! Parametres d'entree
    1904   integer, intent(IN) :: nisurf
    1905 
     2087  integer, intent(IN) :: klon
     2088  logical, intent(IN) :: debut
     2089  INTEGER, intent(IN) :: itap
     2090  REAL, intent(IN) :: dtime
     2091  INTEGER, intent(IN) :: ijour
     2092  REAL, dimension(klon), intent(IN) :: radsol
     2093  REAL, dimension(klon), intent(IN) :: fluxo
     2094  REAL, dimension(klon), intent(IN) :: fluxg
     2095  real, dimension(klon, nbsrf), intent(IN) :: pctsrf
     2096! Parametres de sortie
     2097  real, dimension(klon), intent(INOUT) :: tslab
     2098  real, dimension(klon), intent(INOUT)        :: seaice ! glace de mer (kg/m2)
     2099  real, dimension(klon, nbsrf), intent(OUT) :: pctsrf_slab
     2100!
     2101! Variables locales :
     2102  INTEGER, save :: lmt_pas, julien, idayvrai
     2103  REAL, parameter :: unjour=86400.
     2104  real, allocatable, dimension(:), save :: tmp_tslab, tmp_seaice
     2105  REAL, allocatable, dimension(:), save :: slab_bils
     2106  REAL, allocatable, dimension(:), save :: lmt_bils
     2107  logical,save              :: check = .false.
     2108!
     2109  REAL, parameter :: cyang=50.0 * 4.228e+06 ! capacite calorifique volumetrique de l'eau J/(m2 K)
     2110  REAL, parameter :: cbing=0.334e+05        ! J/kg
     2111  real, dimension(klon)                 :: siceh !hauteur de la glace de mer (m)
     2112  INTEGER :: i
     2113  integer :: sum_error, error
     2114  REAL :: zz, za, zb
     2115!
     2116  character (len = 80) :: abort_message
     2117  character (len = 20) :: modname = 'interfoce_slab'
     2118!
     2119  julien = MOD(ijour,360)
     2120  sum_error = 0
     2121  IF (debut) THEN
     2122   allocate(slab_bils(klon), stat = error); sum_error = sum_error + error
     2123   allocate(lmt_bils(klon), stat = error); sum_error = sum_error + error
     2124   allocate(tmp_tslab(klon), stat = error); sum_error = sum_error + error
     2125   allocate(tmp_seaice(klon), stat = error); sum_error = sum_error + error
     2126   if (sum_error /= 0) then
     2127    abort_message='Pb allocation var. slab_bils,lmt_bils,tmp_tslab,tmp_seaice'
     2128    call abort_gcm(modname,abort_message,1)
     2129   endif
     2130   tmp_tslab=tslab
     2131   tmp_seaice=seaice
     2132   lmt_pas = nint(86400./dtime * 1.0) ! pour une lecture une fois par jour
     2133!
     2134   IF (check) THEN
     2135    PRINT*,'interfoce_slab klon, debut, itap, dtime, ijour, &
     2136 &          lmt_pas ', klon, debut, itap, dtime, ijour, &
     2137 &          lmt_pas
     2138   ENDIF !check
     2139!
     2140   PRINT*, '************************'
     2141   PRINT*, 'SLAB OCEAN est actif, prenez precautions !'
     2142   PRINT*, '************************'
     2143!
     2144! a mettre un slab_bils aussi en force !!!
     2145!
     2146    DO i = 1, klon
     2147     slab_bils(i) = 0.0
     2148    ENDDO
     2149!
     2150   ENDIF !debut
     2151   pctsrf_slab(1:klon,1:nbsrf) = pctsrf(1:klon,1:nbsrf)
     2152!
     2153! lecture du bilan au sol lmt_bils issu d'une simulation forcee en debut de journee
     2154!
     2155   IF (MOD(itap,lmt_pas) .EQ. 1) THEN !1er pas de temps de la journee
     2156    idayvrai = ijour
     2157    CALL condsurf(julien,idayvrai, lmt_bils)
     2158   ENDIF !(MOD(itap-1,lmt_pas) .EQ. 0) THEN
     2159
     2160   DO i = 1, klon
     2161     IF((pctsrf_slab(i,is_oce).GT.epsfra).OR. &
     2162     &  (pctsrf_slab(i,is_sic).GT.epsfra)) THEN
     2163!
     2164! fabriquer de la glace si congelation atteinte:
     2165!
     2166      IF (tmp_tslab(i).LT.(RTT-1.8)) THEN
     2167       zz =  (RTT-1.8)-tmp_tslab(i)
     2168       tmp_seaice(i) = tmp_seaice(i) + cyang/cbing * zz
     2169       seaice(i) = tmp_seaice(i)
     2170       tmp_tslab(i) = RTT-1.8
     2171      ENDIF
     2172!
     2173! faire fondre de la glace si temperature est superieure a 0:
     2174!
     2175      IF ((tmp_tslab(i).GT.RTT) .AND. (tmp_seaice(i).GT.0.0)) THEN
     2176       zz = cyang/cbing * (tmp_tslab(i)-RTT)
     2177       zz = MIN(zz,tmp_seaice(i))
     2178       tmp_seaice(i) = tmp_seaice(i) - zz
     2179       seaice(i) = tmp_seaice(i)
     2180       tmp_tslab(i) = tmp_tslab(i) - zz*cbing/cyang
     2181      ENDIF
     2182!
     2183! limiter la glace de mer a 10 metres (10000 kg/m2)
     2184!
     2185      IF(tmp_seaice(i).GT.45.) THEN
     2186       tmp_seaice(i) = MIN(tmp_seaice(i),10000.0)
     2187      ELSE
     2188       tmp_seaice(i) = 0.
     2189      ENDIF
     2190      seaice(i) = tmp_seaice(i)
     2191      siceh(i)=tmp_seaice(i)/1000. !en metres
     2192!
     2193! determiner la nature du sol (glace de mer ou ocean libre):
     2194!
     2195! on fait dependre la fraction de seaice "pctsrf(i,is_sic)"
     2196! de l'epaisseur de seaice :
     2197! pctsrf(i,is_sic)=1. si l'epaisseur de la glace de mer est >= a 20cm
     2198! et pctsrf(i,is_sic) croit lineairement avec seaice de 0. a 20cm d'epaisseur
     2199!
     2200      pctsrf_slab(i,is_sic)=MIN(siceh(i)/0.20, &
     2201     &                      1.-(pctsrf_slab(i,is_ter)+pctsrf_slab(i,is_lic)))
     2202      pctsrf_slab(i,is_oce)=1.0 - &
     2203     &      (pctsrf_slab(i,is_ter)+pctsrf_slab(i,is_lic)+pctsrf_slab(i,is_sic))
     2204     ENDIF !pctsrf
     2205   ENDDO
     2206!
     2207! Calculer le bilan du flux de chaleur au sol :
     2208!
     2209   DO i = 1, klon
     2210    za = radsol(i) + fluxo(i)
     2211    zb = fluxg(i)
     2212    IF((pctsrf_slab(i,is_oce).GT.epsfra).OR. &
     2213   &   (pctsrf_slab(i,is_sic).GT.epsfra)) THEN
     2214     slab_bils(i)=slab_bils(i)+(za*pctsrf_slab(i,is_oce) &
     2215   &             +zb*pctsrf_slab(i,is_sic))/ FLOAT(lmt_pas)
     2216    ENDIF
     2217   ENDDO !klon
     2218!
     2219! calcul tslab
     2220!
     2221   IF (MOD(itap,lmt_pas).EQ.0) THEN !fin de journee
     2222    DO i = 1, klon
     2223      IF ((pctsrf_slab(i,is_oce).GT.epsfra).OR. &
     2224     &    (pctsrf_slab(i,is_sic).GT.epsfra)) THEN
     2225       tmp_tslab(i) = tmp_tslab(i) + &
     2226     & (slab_bils(i)-lmt_bils(i)) &
     2227     &                         /cyang*unjour
     2228! on remet l'accumulation a 0
     2229       slab_bils(i) = 0.
     2230      ENDIF !pctsrf
     2231    ENDDO !klon
     2232   ENDIF !(MOD(itap,lmt_pas).EQ.0) THEN
     2233!
     2234   tslab = tmp_tslab
     2235   seaice = tmp_seaice
    19062236  END SUBROUTINE interfoce_slab
    19072237!
  • LMDZ4/trunk/libf/phylmd/orografi.F

    r622 r644  
    113113         d_t(i,klev+1-k) = dtime*pdtdt(i,k)
    114114         pustr(i)        = pustr(i)
    115      .                    +rg*pdudt(i,k)*(papmh(i,k+1)-papmh(i,k))
     115cIM BUG  .                +rg*pdudt(i,k)*(papmh(i,k+1)-papmh(i,k))
     116     .                    +pdudt(i,k)*(papmh(i,k+1)-papmh(i,k))/RG
    116117         pvstr(i)        = pvstr(i)
    117      .                    +rg*pdvdt(i,k)*(papmh(i,k+1)-papmh(i,k))
     118cIM BUG  .                +rg*pdvdt(i,k)*(papmh(i,k+1)-papmh(i,k))
     119     .                    +pdvdt(i,k)*(papmh(i,k+1)-papmh(i,k))/RG
    118120      ENDDO
    119121      ENDDO
     
    14021404         d_t(i,klev+1-k) = dtime*pdtdt(i,k)
    14031405         pustr(i)        = pustr(i)
    1404      .                    +RG*pdudt(i,k)*(papmh(i,k+1)-papmh(i,k))
     1406cIM BUG .                 +RG*pdudt(i,k)*(papmh(i,k+1)-papmh(i,k))
     1407     .                    +pdudt(i,k)*(papmh(i,k+1)-papmh(i,k))/RG
    14051408         pvstr(i)        = pvstr(i)
    1406      .                    +RG*pdvdt(i,k)*(papmh(i,k+1)-papmh(i,k))
     1409cIM BUG .                 +RG*pdvdt(i,k)*(papmh(i,k+1)-papmh(i,k))
     1410     .                    +pdvdt(i,k)*(papmh(i,k+1)-papmh(i,k))/RG
    14071411      ENDDO
    14081412      ENDDO
  • LMDZ4/trunk/libf/phylmd/phyetat0.F

    r541 r644  
    55c
    66      SUBROUTINE phyetat0 (fichnom,dtime,co2_ppm_etat0,solaire_etat0,
    7      .            rlat,rlon, pctsrf, tsol,tsoil,deltat,qsurf,qsol,snow,
     7     .            rlat,rlon, pctsrf, tsol,tsoil,
     8cIM "slab" ocean
     9     .           tslab,seaice,
     10     .           qsurf,qsol,snow,
    811     .           albe, alblw, evap, rain_fall, snow_fall, solsw, sollw,
    912     .           fder,radsol,frugs,agesno,clesphy0,
     
    3235      REAL tsol(klon,nbsrf)
    3336      REAL tsoil(klon,nsoilmx,nbsrf)
    34       REAL deltat(klon)
     37cIM "slab" ocean
     38      REAL tslab(klon), seaice(klon)
    3539      REAL qsurf(klon,nbsrf)
    3640      REAL qsol(klon)
    3741      REAL snow(klon,nbsrf)
    3842      REAL albe(klon,nbsrf)
    39 cIM BEG alblw
    4043      REAL alblw(klon,nbsrf)
    41 cIM END alblw
    4244      REAL evap(klon,nbsrf)
    4345      REAL radsol(klon)
     
    420422      ENDDO
    421423c
    422 c Lecture de deltat (pour slab ocean seulement):
    423 c
    424       ierr = NF_INQ_VARID (nid, "DELTAT", nvarid)
    425       IF (ierr.NE.NF_NOERR) THEN
    426          PRINT*, "phyetat0: Le champ <DELTAT> est absent"
    427          CALL abort
    428       ENDIF
    429 #ifdef NC_DOUBLE
    430       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, deltat)
    431 #else
    432       ierr = NF_GET_VAR_REAL(nid, nvarid, deltat)
    433 #endif
    434       IF (ierr.NE.NF_NOERR) THEN
    435          PRINT*, "phyetat0: Lecture echouee pour <DELTAT>"
    436          CALL abort
    437       ENDIF
    438       xmin = 1.0E+20
    439       xmax = -1.0E+20
    440       DO i = 1, klon
    441          xmin = MIN(deltat(i),xmin)
    442          xmax = MAX(deltat(i),xmax)
    443       ENDDO
    444       PRINT*,'Ecart de la SST deltat:', xmin, xmax
     424cIM "slab" ocean
     425c
     426c Lecture de tslab (pour slab ocean seulement):     
     427c
     428      ierr = NF_INQ_VARID (nid, "TSLAB", nvarid)
     429      IF (ierr.NE.NF_NOERR) THEN
     430         PRINT*, "phyetat0: Le champ <TSLAB> est absent"
     431         CALL abort
     432      ENDIF
     433#ifdef NC_DOUBLE
     434      ierr = NF_GET_VAR_DOUBLE(nid, nvarid, tslab)
     435#else
     436      ierr = NF_GET_VAR_REAL(nid, nvarid, tslab)
     437#endif
     438      IF (ierr.NE.NF_NOERR) THEN
     439         PRINT*, "phyetat0: Lecture echouee pour <TSLAB>"
     440         CALL abort
     441      ENDIF
     442      xmin = 1.0E+20
     443      xmax = -1.0E+20
     444      DO i = 1, klon
     445         xmin = MIN(tslab(i),xmin)
     446         xmax = MAX(tslab(i),xmax)
     447      ENDDO
     448      PRINT*,'Ecart de la SST tslab:', xmin, xmax
     449c
     450c Lecture de seaice (pour slab ocean seulement):
     451c
     452      ierr = NF_INQ_VARID (nid, "SEAICE", nvarid)
     453      IF (ierr.NE.NF_NOERR) THEN
     454         PRINT*, "phyetat0: Le champ <SEAICE> est absent"
     455         CALL abort
     456      ENDIF
     457#ifdef NC_DOUBLE
     458      ierr = NF_GET_VAR_DOUBLE(nid, nvarid, seaice)
     459#else
     460      ierr = NF_GET_VAR_REAL(nid, nvarid, seaice)
     461#endif
     462      IF (ierr.NE.NF_NOERR) THEN
     463         PRINT*, "phyetat0: Lecture echouee pour <SEAICE>"
     464         CALL abort
     465      ENDIF
     466      xmin = 1.0E+20
     467      xmax = -1.0E+20
     468      DO i = 1, klon
     469         xmin = MIN(seaice(i),xmin)
     470         xmax = MAX(seaice(i),xmax)
     471      ENDDO
     472      PRINT*,'Masse de la glace de mer seaice:', xmin, xmax
    445473c
    446474c Lecture de l'humidite de l'air juste au dessus du sol:
     
    652680
    653681c
    654 cIM BEG alblw
    655682c Lecture de albedo au sol LW:
    656683c
     
    690717         ENDDO
    691718      ENDIF
    692 
    693 cIM END alblw
    694 
    695719c
    696720c Lecture de evaporation: 
  • LMDZ4/trunk/libf/phylmd/phyredem.F

    r541 r644  
    44c
    55      SUBROUTINE phyredem (fichnom,dtime,radpas,
    6      .           rlat,rlon, pctsrf,tsol,tsoil,deltat,qsurf,qsol,snow,
     6     .           rlat,rlon, pctsrf,tsol,tsoil,
     7cIM "slab" ocean
     8     .           tslab,seaice,
     9     .           qsurf,qsol,snow,
    710     .           albedo, alblw, evap, rain_fall, snow_fall,
    811     .           solsw, sollw,fder,
     
    3134      REAL tsol(klon,nbsrf)
    3235      REAL tsoil(klon,nsoilmx,nbsrf)
    33       REAL deltat(klon)
     36cIM "slab" ocean
     37      REAL tslab(klon), seaice(klon)
    3438      REAL qsurf(klon,nbsrf)
    3539      REAL qsol(klon)
     
    288292      ENDDO
    289293c
    290 c
    291       ierr = NF_REDEF (nid)
    292 #ifdef NC_DOUBLE
    293       ierr = NF_DEF_VAR (nid, "DELTAT", NF_DOUBLE, 1, idim2,nvarid)
    294 #else
    295       ierr = NF_DEF_VAR (nid, "DELTAT", NF_FLOAT, 1, idim2,nvarid)
     294cIM "slab" ocean
     295      ierr = NF_REDEF (nid)
     296#ifdef NC_DOUBLE
     297      ierr = NF_DEF_VAR (nid, "TSLAB", NF_DOUBLE, 1, idim2,nvarid)
     298#else
     299      ierr = NF_DEF_VAR (nid, "TSLAB", NF_FLOAT, 1, idim2,nvarid)
    296300#endif
    297301      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 33,
     
    299303      ierr = NF_ENDDEF(nid)
    300304#ifdef NC_DOUBLE
    301       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,deltat)
    302 #else
    303       ierr = NF_PUT_VAR_REAL (nid,nvarid,deltat)
     305      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tslab)
     306#else
     307      ierr = NF_PUT_VAR_REAL (nid,nvarid,tslab)
     308#endif
     309c
     310      ierr = NF_REDEF (nid)
     311#ifdef NC_DOUBLE
     312      ierr = NF_DEF_VAR (nid, "SEAICE", NF_DOUBLE, 1, idim2,nvarid)
     313#else
     314      ierr = NF_DEF_VAR (nid, "SEAICE", NF_FLOAT, 1, idim2,nvarid)
     315#endif
     316      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 33,
     317     .                        "Glace de mer kg/m2 (pour slab-ocean)")
     318      ierr = NF_ENDDEF(nid)
     319#ifdef NC_DOUBLE
     320      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,seaice)
     321#else
     322      ierr = NF_PUT_VAR_REAL (nid,nvarid,seaice)
    304323#endif
    305324c
  • LMDZ4/trunk/libf/phylmd/physiq.F

    r625 r644  
    1111     .            flxmass_w,
    1212#endif
    13      .            d_u, d_v, d_t, d_qx, d_ps)
     13     .            d_u, d_v, d_t, d_qx, d_ps
     14cIM Amip2
     15     .            , dudyn
     16     .            , PVteta)
    1417
    1518      USE ioipsl
     
    4043#define histins
    4144c#define histISCCP
    42 #define histREGDYN
    43 #define histmthNMC
     45c#define histREGDYN
     46c#define histmthNMC
    4447c======================================================================
    4548c    modif   ( P. Le Van ,  12/10/98 )
     
    7376c d_qx----output-R-tendance physique de "qx" (kg/kg/s)
    7477c d_ps----output-R-tendance physique de la pression au sol
     78cIM
     79c PVteta--output-R-vorticite potentielle a des thetas constantes
    7580c======================================================================
    7681#include "dimensions.h"
     
    116121c     parameter (ocean = 'couple')
    117122      logical ok_ocean
     123      SAVE ok_ocean
     124c
     125cIM "slab" ocean
     126      REAL tslab(klon)    !Temperature du slab-ocean
     127      REAL seaice(klon)   !glace de mer (kg/m2)
     128      REAL fluxo(klon)    !flux turbulents ocean-glace de mer
     129      REAL fluxg(klon)    !flux turbulents ocean-atmosphere
     130c
    118131c======================================================================
    119132c Clef controlant l'activation du cycle diurne:
     
    188201      REAL znivsig(klev)
    189202      REAL zsurf(nbsrf)
    190 
     203cIM
     204      INTEGER kinv
     205      real pir
     206cMI
    191207      REAL u(klon,klev)
    192208      REAL v(klon,klev)
     
    213229      REAL d_ps(klon)
    214230      real da(klon,klev),phi(klon,klev,klev),mp(klon,klev)
     231c
     232cIM Amip2 PV a theta constante
     233c
     234      INTEGER nbteta
     235      PARAMETER(nbteta=3)
     236      CHARACTER*3 ctetaSTD(nbteta)
     237      DATA ctetaSTD/'350','380','405'/
     238      REAL rtetaSTD(nbteta)
     239      DATA rtetaSTD/350., 380., 405./
     240c
     241      REAL PVteta(klon,nbteta)
     242      REAL zx_tmp_3dte(iim,jjmp1,nbteta)
     243c
     244cMI Amip2 PV a theta constante
    215245
    216246      INTEGER klevp1, klevm1
     
    238268      SAVE LWdnTOA, LWdnTOAclr
    239269c
    240 c vents meridien et zonal a un niveau de pression
     270cIM Amip2
     271c variables a une pression donnee
    241272c
    242273      integer nlevSTD
     
    246277     .60000., 50000., 40000., 30000., 25000., 20000.,
    247278     .15000., 10000., 7000., 5000., 3000., 2000., 1000./
    248       CHARACTER*5 clevSTD(nlevSTD), aa, bb
     279      CHARACTER*4 clevSTD(nlevSTD)
    249280      DATA clevSTD/'1000','925 ','850 ','700 ','600 ',
    250281     .'500 ','400 ','300 ','250 ','200 ','150 ','100 ',
    251282     .'70  ','50  ','30  ','20  ','10  '/
    252283c
     284      CHARACTER*3 bb2
     285      CHARACTER*2 bb3
     286c
    253287      real tlevSTD(klon,nlevSTD), qlevSTD(klon,nlevSTD)
    254288      real rhlevSTD(klon,nlevSTD), philevSTD(klon,nlevSTD)
    255289      real ulevSTD(klon,nlevSTD), vlevSTD(klon,nlevSTD)
    256 c
    257 cIM ENSEMBLES BEG
    258 c
    259       integer nlevENS
    260       PARAMETER(nlevENS=4)
    261       integer indENS(nlevENS)
    262       save indENS
    263       real rlevENS(nlevENS)
    264       DATA rlevENS/85000., 70000., 50000., 20000./
    265       CHARACTER*3 clev(nlevENS)
    266       DATA clev/'850','700','500','200'/
    267  
    268       real tlev(klon,nlevENS), qlev(klon,nlevENS), rhlev(klon,nlevENS)
    269       real ulev(klon,nlevENS), vlev(klon,nlevENS), philev(klon,nlevENS)
    270       real wlev(klon,nlevENS)
    271 cIM ENSEMBLES END
     290      real wlevSTD(klon,nlevSTD)
     291c
     292c nout : niveau de output des variables a une pression donnee
     293      INTEGER nout
     294      PARAMETER(nout=3) !nout=1 : day; =2 : mth; =3 : NMC
     295c
     296      REAL tsumSTD(klon,nlevSTD,nout)
     297      REAL usumSTD(klon,nlevSTD,nout), vsumSTD(klon,nlevSTD,nout)
     298      REAL wsumSTD(klon,nlevSTD,nout), phisumSTD(klon,nlevSTD,nout)
     299      REAL qsumSTD(klon,nlevSTD,nout), rhsumSTD(klon,nlevSTD,nout)
     300c
     301      SAVE tsumSTD, usumSTD, vsumSTD, wsumSTD, phisumSTD,
     302     .     qsumSTD, rhsumSTD
     303c
     304      logical oknondef(klon,nlevSTD,nout)
     305      real tnondef(klon,nlevSTD,nout)
     306      save tnondef
     307c
     308c les produits uvSTD, vqSTD, .., T2STD sont calcules
     309c a partir des valeurs instantannees toutes les 6 h
     310c qui sont moyennees sur le mois
     311c
     312      real uvSTD(klon,nlevSTD)
     313      real vqSTD(klon,nlevSTD)
     314      real vTSTD(klon,nlevSTD)
     315      real wqSTD(klon,nlevSTD)
     316c
     317      real uvsumSTD(klon,nlevSTD,nout)
     318      real vqsumSTD(klon,nlevSTD,nout)
     319      real vTsumSTD(klon,nlevSTD,nout)
     320      real wqsumSTD(klon,nlevSTD,nout)
     321c
     322      real vphiSTD(klon,nlevSTD)
     323      real wTSTD(klon,nlevSTD)
     324      real u2STD(klon,nlevSTD)
     325      real v2STD(klon,nlevSTD)
     326      real T2STD(klon,nlevSTD)
     327c
     328      real vphisumSTD(klon,nlevSTD,nout)
     329      real wTsumSTD(klon,nlevSTD,nout)
     330      real u2sumSTD(klon,nlevSTD,nout)
     331      real v2sumSTD(klon,nlevSTD,nout)
     332      real T2sumSTD(klon,nlevSTD,nout)
     333c
     334      SAVE uvsumSTD, vqsumSTD, vTsumSTD, wqsumSTD
     335      SAVE vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, T2sumSTD
     336cMI Amip2
     337c
     338#include "radepsi.h"
     339#include "radopt.h"
     340c
    272341c
    273342c prw: precipitable water
     
    282351      REAL cldt_s(klon),cldq_s(klon) !nuage total, eau liquide integree
    283352
    284       INTEGER linv, kp1
     353      INTEGER kp1
    285354c flwp, fiwp = Liquid Water Path & Ice Water Path (kg/m2)
    286355c flwc, fiwc = Liquid Water Content & Ice Water Content (kg/kg)
     
    292361      REAL flwc_s(klon,klev), fiwc_s(klon,klev)
    293362
    294 c ISCCP simulator v3.4
     363cIM ISCCP simulator v3.4
    295364c dans clesphys.h top_height, overlap
    296365cv3.4
     
    322391      REAL emsfc_lw
    323392      PARAMETER(emsfc_lw=0.99)
    324       REAL    ran0                      ! type for random number fuction
     393c     REAL    ran0                      ! type for random number fuction
    325394c
    326395      REAL cldtot(klon,klev)
     
    351420      REAL boxptop(klon,ncol)
    352421c
    353       INTEGER l, ni, nj, kmax, lmax
     422      INTEGER l, kmax, lmax
    354423      PARAMETER(kmax=8, lmax=8)
    355424      INTEGER kmaxm1, lmaxm1
     
    358427      PARAMETER(iimx7=iim*kmaxm1, jjmx7=jjm*lmaxm1,
    359428     .jjmp1x7=jjmp1*lmaxm1)
    360       REAL fq4d(iim,jjmp1,kmaxm1,lmaxm1)
    361       REAL fq3d(iimx7, jjmp1x7)
    362429c
    363430      INTEGER iw, iwmax
     
    376443      SAVE nhistoWt
    377444
     445      INTEGER linv
    378446      INTEGER pct_ocean(klon,nbregdyn)
    379       REAL rlonPOS(klon)
    380447 
    381448c sorties ISCCP
    382449
    383       logical ok_isccp
    384       real ecrit_isccp
     450c     logical ok_isccp
     451c     real ecrit_isccp
    385452      integer nid_isccp
    386       save ok_isccp, ecrit_isccp, nid_isccp       
    387 
    388 #ifdef histISCCP
    389       data ok_isccp/.true./     
    390 #else
    391       data ok_isccp/.false./
    392 #endif
     453c     save ok_isccp, ecrit_isccp, nid_isccp       
     454      save nid_isccp       
     455cIM 090704 BEG
     456      INTEGER nbapp_isccp,isccppas
     457
     458#undef histISCCP
     459#define histISCCP
     460c     data ok_isccp,ecrit_isccp/.true.,0.125/     
     461c     data ok_isccp,ecrit_isccp/.true.,1./     
     462cIM 190504     data ok_isccp/.true./     
     463cIM 190504 #else
     464cIM 190504     data ok_isccp/.false./
     465cIM 190504 #endif
    393466
    394467c sorties statistiques regime dynamique
    395       logical ok_regdyn
    396       real ecrit_regdyn
     468c     logical ok_regdyn
     469c     real ecrit_regdyn
    397470      integer nid_regdyn
    398       save ok_regdyn, ecrit_regdyn, nid_regdyn
    399 
    400 #ifdef histREGDYN
     471c     save ok_regdyn, ecrit_regdyn, nid_regdyn
     472      save nid_regdyn
     473
     474#undef histREGDYN
     475#define histREGDYN
     476cIM 190504 #ifdef histREGDYN
    401477c     data ok_regdyn,ecrit_regdyn/.true.,0.125/
    402478c     data ok_regdyn,ecrit_regdyn/.true.,1./
    403        data ok_regdyn/.true./
    404 #else
    405       data ok_regdyn/.false./
    406 #endif
     479cIM 190504    data ok_regdyn/.true./
     480cIM 190504 #else
     481cIM 190504   data ok_regdyn/.false./
     482cIM 190504 #endif
    407483
    408484      REAL zx_tau(kmaxm1), zx_pc(lmaxm1), zx_o500(iwmax)
     
    418494c taulev: numero du niveau de tau dans les sorties ISCCP
    419495      CHARACTER *4 taulev(kmaxm1)
    420       DATA taulev/'tau1','tau2','tau3','tau4','tau5','tau6','tau7'/
    421 
    422       REAL zx_lonx7(iimx7), zx_latx7(jjmp1x7)
    423       INTEGER nhorix7
     496c     DATA taulev/'tau1','tau2','tau3','tau4','tau5','tau6','tau7'/
     497      DATA taulev/'tau0','tau1','tau2','tau3','tau4','tau5','tau6'/
     498      CHARACTER *3 pclev(lmaxm1)
     499      DATA pclev/'pc1','pc2','pc3','pc4','pc5','pc6','pc7'/
     500c
     501c cnameisccp
     502      CHARACTER *27 cnameisccp(lmaxm1,kmaxm1)
     503      DATA cnameisccp/'pc< 50hPa, tau< 0.3',
     504     .                'pc= 50-180hPa, tau< 0.3',
     505     .                'pc= 180-310hPa, tau< 0.3',
     506     .                'pc= 310-440hPa, tau< 0.3',
     507     .                'pc= 440-560hPa, tau< 0.3',
     508     .                'pc= 560-680hPa, tau< 0.3',
     509     .                'pc= 680-800hPa, tau< 0.3',
     510     .                'pc< 50hPa, tau= 0.3-1.3',
     511     .                'pc= 50-180hPa, tau= 0.3-1.3',
     512     .                'pc= 180-310hPa, tau= 0.3-1.3',
     513     .                'pc= 310-440hPa, tau= 0.3-1.3',
     514     .                'pc= 440-560hPa, tau= 0.3-1.3',
     515     .                'pc= 560-680hPa, tau= 0.3-1.3',
     516     .                'pc= 680-800hPa, tau= 0.3-1.3',
     517     .                'pc< 50hPa, tau= 1.3-3.6',
     518     .                'pc= 50-180hPa, tau= 1.3-3.6',
     519     .                'pc= 180-310hPa, tau= 1.3-3.6',
     520     .                'pc= 310-440hPa, tau= 1.3-3.6',
     521     .                'pc= 440-560hPa, tau= 1.3-3.6',
     522     .                'pc= 560-680hPa, tau= 1.3-3.6',
     523     .                'pc= 680-800hPa, tau= 1.3-3.6',
     524     .                'pc< 50hPa, tau= 3.6-9.4',
     525     .                'pc= 50-180hPa, tau= 3.6-9.4',
     526     .                'pc= 180-310hPa, tau= 3.6-9.4',
     527     .                'pc= 310-440hPa, tau= 3.6-9.4',
     528     .                'pc= 440-560hPa, tau= 3.6-9.4',
     529     .                'pc= 560-680hPa, tau= 3.6-9.4',
     530     .                'pc= 680-800hPa, tau= 3.6-9.4',
     531     .                'pc< 50hPa, tau= 9.4-23',
     532     .                'pc= 50-180hPa, tau= 9.4-23',
     533     .                'pc= 180-310hPa, tau= 9.4-23',
     534     .                'pc= 310-440hPa, tau= 9.4-23',
     535     .                'pc= 440-560hPa, tau= 9.4-23',
     536     .                'pc= 560-680hPa, tau= 9.4-23',
     537     .                'pc= 680-800hPa, tau= 9.4-23',
     538     .                'pc< 50hPa, tau= 23-60',
     539     .                'pc= 50-180hPa, tau= 23-60',
     540     .                'pc= 180-310hPa, tau= 23-60',
     541     .                'pc= 310-440hPa, tau= 23-60',
     542     .                'pc= 440-560hPa, tau= 23-60',
     543     .                'pc= 560-680hPa, tau= 23-60',
     544     .                'pc= 680-800hPa, tau= 23-60',
     545     .                'pc< 50hPa, tau> 60.',
     546     .                'pc= 50-180hPa, tau> 60.',
     547     .                'pc= 180-310hPa, tau> 60.',
     548     .                'pc= 310-440hPa, tau> 60.',
     549     .                'pc= 440-560hPa, tau> 60.',
     550     .                'pc= 560-680hPa, tau> 60.',
     551     .                'pc= 680-800hPa, tau> 60.'/
     552c
     553c     REAL zx_lonx7(iimx7), zx_latx7(jjmp1x7)
     554c     INTEGER nhorix7
    424555cIM: region='3d' <==> sorties en global
    425556      CHARACTER*3 region
    426557      PARAMETER(region='3d')
    427558c
     559cIM ISCCP simulator v3.4
     560c
    428561      logical ok_hf
    429       real ecrit_hf
     562cIM200505     integer ecrit_hf
     563cIM200505    integer ecrit_hf2mth
     564cIM200505    save ecrit_hf2mth
     565c
    430566      integer nid_hf, nid_hf3d
    431       save ok_hf, ecrit_hf, nid_hf, nid_hf3d
     567cIM200505     save ok_hf, ecrit_hf, nid_hf, nid_hf3d
     568      save ok_hf, nid_hf, nid_hf3d
    432569
    433570c  QUESTION : noms de variables ?
    434571
    435572#ifdef histhf
    436       data ok_hf,ecrit_hf/.true.,0.25/
     573cIM 130904   data ok_hf,ecrit_hf/.true.,0.25/
     574      data ok_hf/.true./
    437575#else
    438576      data ok_hf/.false./
     
    465603      REAL rlon(klon)
    466604      SAVE rlon                   ! longitude pour chaque point
     605c
     606      REAL rlonPOS(klon)
     607      SAVE rlonPOS                ! longitudes > 0. pour chaque point
    467608c
    468609cc      INTEGER iflag_con
     
    534675      SAVE rugoro                 ! longueur de rugosite de l'OESM
    535676c
    536       REAL zulow(klon),zvlow(klon),zustr(klon), zvstr(klon)
     677cIM 141004     REAL zulow(klon),zvlow(klon),zustr(klon), zvstr(klon)
     678      REAL zulow(klon),zvlow(klon)
    537679c
    538680      REAL zuthe(klon),zvthe(klon)
     
    621763      REAL snow_fall(klon) ! neige
    622764      save snow_fall, rain_fall
    623 cIM 050204 BEG
     765cIM cf FH pour Tiedtke 080604
     766      REAL rain_tiedtke(klon),snow_tiedtke(klon)
     767c
    624768      REAL total_rain(klon), nday_rain(klon)
    625       save total_rain, nday_rain
    626 cIM 050204 END
     769      save nday_rain
     770c
    627771      REAL evap(klon), devap(klon) ! evaporation et sa derivee
    628772      REAL sens(klon), dsens(klon) ! chaleur sensible et sa derivee
     
    655799      REAL pctsrf_new(klon,nbsrf) !pourcentage surfaces issus d'ORCHIDEE
    656800      REAL paire_ter(klon)        !surfaces terre
    657 cIM
     801c
    658802      SAVE pctsrf                 ! sous-fraction du sol
    659803      REAL albsol(klon)
     
    699843      EXTERNAL lnblnk1   !enleve les blancs a la fin d'une variable de type
    700844                         !caracter
     845      EXTERNAL ini_undefSTD  !initialise a 0 une variable a 1 niveau de pression
     846      EXTERNAL undefSTD      !somme les valeurs definies d'1 var a 1 niveau de pression
     847c     EXTERNAL moy_undefSTD  !moyenne d'1 var a 1 niveau de pression
     848c     EXTERNAL moyglo_aire   !moyenne globale d'1 var ponderee par l'aire de la maille (moyglo_pondaire)
     849c                            !par la masse/airetot (moyglo_pondaima) et la vraie masse (moyglo_pondmass)
    701850c
    702851c Variables locales
     
    704853      real clwcon(klon,klev),rnebcon(klon,klev)
    705854      real clwcon0(klon,klev),rnebcon0(klon,klev)
     855cIM cf. AM 081204 BEG
     856      real clwcon0th(klon,klev),rnebcon0th(klon,klev)
     857cIM cf. AM 081204 END
    706858      save rnebcon, clwcon
    707859
     
    770922      REAL zx_t, zx_qs, zdelta, zcor, zfra, zlvdcp, zlsdcp
    771923      real zqsat(klon,klev)
    772       INTEGER i, k, iq, ig, j, iiq, nsrf, ll
     924      INTEGER i, k, iq, ig, j, nsrf, ll
    773925      REAL t_coup
    774926      PARAMETER (t_coup=234.0)
    775927c
    776928      REAL zphi(klon,klev)
    777       REAL zx_tmp_x(iim), zx_tmp_yjjmp1
    778929      REAL zx_relief(iim,jjmp1)
    779930      REAL zx_aire(iim,jjmp1)
     931c
     932cIM cf. AM Variables locales pour la CLA (hbtm2)
     933c
     934      REAL pblh(klon, nbsrf)           ! Hauteur de couche limite
     935      REAL plcl(klon, nbsrf)           ! Niveau de condensation de la CLA
     936      REAL capCL(klon, nbsrf)          ! CAPE de couche limite
     937      REAL oliqCL(klon, nbsrf)          ! eau_liqu integree de couche limite
     938      REAL cteiCL(klon, nbsrf)          ! cloud top instab. crit. couche limite
     939      REAL pblt(klon, nbsrf)          ! T a la Hauteur de couche limite
     940      REAL therm(klon, nbsrf)
     941      REAL trmb1(klon, nbsrf)          ! deep_cape
     942      REAL trmb2(klon, nbsrf)          ! inhibition
     943      REAL trmb3(klon, nbsrf)          ! Point Omega
     944c Grdeurs de sorties
     945      REAL s_pblh(klon), s_lcl(klon), s_capCL(klon)
     946      REAL s_oliqCL(klon), s_cteiCL(klon), s_pblt(klon)
     947      REAL s_therm(klon), s_trmb1(klon), s_trmb2(klon)
     948      REAL s_trmb3(klon)
    780949cKE43
    781950c Variables locales pour la convection de K. Emanuel (sb):
     
    796965      INTEGER iflagctrl(klon)          ! flag fonctionnement de convect
    797966c -- convect43:
    798       INTEGER ntra              ! nb traceurs
     967      INTEGER ntra              ! nb traceurs pour convect4.3
    799968      REAL pori_con(klon)    ! pressure at the origin level of lifted parcel
    800969      REAL plcl_con(klon),dtma_con(klon),dtlcl_con(klon)
     
    820989      REAL d_u_ajs(klon,klev), d_v_ajs(klon,klev)
    821990      REAL d_t_eva(klon,klev),d_q_eva(klon,klev)
     991      REAL d_t_oli(klon,klev) !tendances dues a oro et lif
    822992      REAL rneb(klon,klev)
     993c
     994*********************************************************
     995*     declarations
     996      real zqasc(klon,klev)
     997      save zqasc
     998     
     999*********************************************************
     1000cIM 081204 END
    8231001c
    8241002      REAL pmfu(klon,klev), pmfd(klon,klev)
     
    8631041
    8641042      logical ptconv(klon,klev)
    865 
     1043cIM cf. AM 081204 BEG
     1044      logical ptconvth(klon,klev)
     1045cIM cf. AM 081204 END
    8661046c
    8671047c Variables liees a l'ecriture de la bande histoire physique
    8681048c
    869       INTEGER ecrit_mth
    870       SAVE ecrit_mth   ! frequence d'ecriture (fichier mensuel)
    871 c
    872       INTEGER ecrit_day
    873       SAVE ecrit_day   ! frequence d'ecriture (fichier journalier)
    874 c
    875       INTEGER ecrit_ins
    876       SAVE ecrit_ins   ! frequence d'ecriture (fichier instantane)
    877 c
    878       INTEGER ecrit_reg
    879       SAVE ecrit_reg   ! frequence d'ecriture
     1049c======================================================================
     1050cIM200505     INTEGER ecrit_mth
     1051cIM200505     SAVE ecrit_mth   ! frequence d'ecriture (fichier mensuel)
     1052c
     1053cIM cf. AM 081204 BEG
     1054c   declarations pour sortir sur une sous-region
     1055      integer imin_ins,imax_ins,jmin_ins,jmax_ins
     1056      save imin_ins,imax_ins,jmin_ins,jmax_ins
     1057c      real lonmin_ins,lonmax_ins,latmin_ins
     1058c     s  ,latmax_ins
     1059c     data lonmin_ins,lonmax_ins,latmin_ins
     1060c    s  ,latmax_ins/
     1061c valeurs initiales     s   -5.,20.,41.,55./   
     1062c    s   100.,130.,-20.,20./
     1063c    s   -180.,180.,-90.,90./
     1064c======================================================================
     1065cIM cf. AM 081204 END
     1066
     1067c
     1068cIM200505     INTEGER ecrit_day
     1069cIM200505     SAVE ecrit_day   ! frequence d'ecriture (fichier journalier)
     1070c
     1071cIM200505     INTEGER ecrit_ins
     1072cIM200505     SAVE ecrit_ins   ! frequence d'ecriture (fichier instantane)
     1073c
     1074cIM200505     INTEGER ecrit_reg
     1075cIM200505     SAVE ecrit_reg   ! frequence d'ecriture
    8801076c
    8811077      integer itau_w   ! pas de temps ecriture = itap + itau_phy
     
    8981094c
    8991095      INTEGER ndex2d(iim*jjmp1),ndex3d(iim*jjmp1*klev)
     1096c
     1097cIM AMIP2 BEG
     1098      REAL moyglo, mountor
     1099cIM 141004 BEG
     1100      REAL zustrdr(klon), zvstrdr(klon)
     1101      REAL zustrli(klon), zvstrli(klon)
     1102      REAL zustrph(klon), zvstrph(klon)
     1103      REAL aam, torsfc
     1104cIM 141004 END
     1105cIM 190504 BEG
     1106      INTEGER ij, imp1jmp1
     1107      PARAMETER(imp1jmp1=(iim+1)*jjmp1)
     1108      REAL zx_tmp(imp1jmp1), airedyn(iim+1,jjmp1)
     1109      REAL padyn(iim+1,jjmp1,klev+1)
     1110      REAL dudyn(iim+1,jjmp1,klev)
     1111      REAL rlatdyn(iim+1,jjmp1)
     1112cIM 190504 END
     1113      LOGICAL ok_msk
     1114      REAL msk(klon)
     1115cIM
     1116      REAL airetot, pi
     1117      REAL zm_wo(jjmp1, klev)
     1118cIM AMIP2 END
     1119c
    9001120      REAL zx_tmp_fi2d(klon)      ! variable temporaire grille physique
    9011121      REAL zx_tmp_fi3d(klon,klev) ! variable temporaire pour champs 3D
     1122      REAL*8 zx_tmp2_fi3d(klon,klev) ! variable temporaire pour champs 3D
    9021123      REAL zx_tmp_2d(iim,jjmp1), zx_tmp_3d(iim,jjmp1,klev)
    9031124      REAL zx_lon(iim,jjmp1), zx_lat(iim,jjmp1)
    9041125c
    905       INTEGER nid_day, nid_mth, nid_ins, nid_nmc
    906       SAVE nid_day, nid_mth, nid_ins, nid_nmc
    907 c
    908       INTEGER nhori, nvert
     1126      INTEGER nid_day, nid_mth, nid_ins, nid_nmc, nid_day_seri
     1127      SAVE nid_day, nid_mth, nid_ins, nid_nmc, nid_day_seri
     1128c
     1129cIM 280405 BEG
     1130      INTEGER nid_bilKPins, nid_bilKPave
     1131      SAVE nid_bilKPins, nid_bilKPave
     1132c
     1133      REAL ve_lay(klon,klev) ! transport meri. de l'energie a chaque niveau vert.
     1134      REAL vq_lay(klon,klev) ! transport meri. de l'eau a chaque niveau vert.
     1135      REAL ue_lay(klon,klev) ! transport zonal de l'energie a chaque niveau vert.
     1136      REAL uq_lay(klon,klev) ! transport zonal de l'eau a chaque niveau vert.
     1137c
     1138cIM 280405 END
     1139c
     1140      INTEGER nhori, nvert, nvert1
     1141c     REAL zstok
    9091142      REAL zsto, zout, zsto1, zsto2
     1143c     REAL zstoave, zstoin
     1144      REAL zstophy, zstorad, zstohf, zstoday, zstomth
    9101145      real zjulian
    9111146      save zjulian
     
    9541189      REAL zu10m(klon), zv10m(klon)           !vents a 10m moyennes s/1 maille
    9551190      CHARACTER*40 t2mincels, t2maxcels       !t2m min., t2m max
     1191      CHARACTER*40 tinst, tave, typeval
    9561192cjq   Aerosol effects (Johannes Quaas, 27/11/2003)
    9571193      REAL sulfate(klon, klev) ! SO4 aerosol concentration [ug/m3]
     
    10411277      IF (debut) THEN
    10421278         CALL suphec ! initialiser constantes et parametres phys.
    1043 c
    1044 cIM 050204 BEG
    1045          DO i=1, klon
    1046           nday_rain(i)=0.
    1047          ENDDO
    1048 cIM 050204 END
    1049 c
     1279      ENDIF
     1280
     1281
    10501282c======================================================================
    1051 cIM BEG
    1052         DO k=1, nlevENS
    1053           DO l=1, nlevSTD
    1054 c
    1055             bb=clevSTD(l)
    1056 c
    1057             IF(l.GE.2) THEN
    1058              aa=clevSTD(l)
    1059              bb=aa(1:lnblnk1(aa))
    1060             ENDIF
    1061 c
    1062             IF(bb.EQ.clev(k)) THEN
    1063 c             print*,'k=',k,'l=',l,'clev=',clev(k)
    1064               indENS(k)=l
    1065 c             print*,'k=',k,'l=',l,'clev=',clev(k),'indENS=',indENS(k)
    1066             ENDIF
    1067 c
    1068           ENDDO
    1069         ENDDO
    1070 c
    1071       ENDIF !debut
    1072 cIM END
    10731283      xjour = rjourvrai
    10741284c
     
    10981308         itaprad = 0
    10991309         CALL phyetat0 ("startphy.nc",dtime,co2_ppm_etat0,solaire_etat0,
    1100      .       rlat,rlon,pctsrf, ftsol,ftsoil,deltat,fqsurf,qsol,fsnow,
     1310     .       rlat,rlon,pctsrf, ftsol,ftsoil,
     1311cIM "slab" ocean
     1312     .       tslab,seaice,
     1313     .       fqsurf,qsol,fsnow,
    11011314     .       falbe, falblw, fevap, rain_fall,snow_fall,solsw, sollwdown,
    11021315     .       dlw,radsol,frugs,agesno,clesphy0,
     
    11161329         ENDIF
    11171330
     1331cIM cf. AM 081204 BEG
     1332         PRINT*,'cycle_diurne3 =',cycle_diurne
     1333cIM cf. AM 081204 END
     1334c
     1335         IF(ocean.NE.'force ') THEN
     1336          ok_ocean=.TRUE.
     1337         ENDIF
    11181338c
    11191339         CALL printflag( tabcntr0,radpas,ok_ocean,ok_oasis ,ok_journe,
     
    11911411     .                   lmt_pas
    11921412c
    1193          ecrit_mth = NINT(86400./dtime *ecritphy)  ! tous les ecritphy jours
    1194          IF (ok_mensuel) THEN
    1195          WRITE(lunout,*)'La frequence de sortie mensuelle est de ',
    1196      .                   ecrit_mth
    1197          ENDIF
    1198          ecrit_day = NINT(86400./dtime *1.0)  ! tous les jours
    1199          IF (ok_journe) THEN
    1200          WRITE(lunout,*)'La frequence de sortie journaliere est de ',
    1201      .                   ecrit_day
    1202          ENDIF
     1413cIM200505        ecrit_mth = NINT(86400./dtime *ecritphy)  ! tous les ecritphy jours
     1414c        IF (ok_mensuel) THEN
     1415c        WRITE(lunout,*)'La frequence de sortie mensuelle est de ',
     1416c    .                   ecrit_mth
     1417c        ENDIF
     1418c        ecrit_day = NINT(86400./dtime *1.0)  ! tous les jours
     1419c        IF (ok_journe) THEN
     1420c        WRITE(lunout,*)'La frequence de sortie journaliere est de ',
     1421c    .                   ecrit_day
     1422c        ENDIF
     1423cIM 130904 BEG
     1424cIM 080205      ecrit_hf = 86400./dtime *0.25  ! toutes les 6h
     1425cIM 170305     
     1426c        ecrit_hf = 86400./dtime/12.  ! toutes les 2h
     1427cIM 230305     
     1428cIM200505        ecrit_hf = 86400./dtime *0.25  ! toutes les 6h
     1429c
     1430cIM200505        ecrit_hf2mth = ecrit_day/ecrit_hf*30
     1431c
     1432cIM200505        IF (ok_journe) THEN
     1433cIM200505        WRITE(lunout,*)'La frequence de sortie hf est de ',
     1434cIM200505    .                   ecrit_hf
     1435cIM200505        ENDIF
     1436cIM 130904 END
    12031437ccc         ecrit_ins = NINT(86400./dtime *0.5)  ! 2 fois par jour
    12041438ccc         ecrit_ins = NINT(86400./dtime *0.25)  ! 4 fois par jour
    1205          ecrit_ins = NINT(86400./dtime/48.)  ! a chaque pas de temps ==> PB. dans time_counter pour 1mois
    1206          ecrit_ins = NINT(86400./dtime/12.)  ! toutes les deux heures
    1207          IF (ok_instan) THEN
    1208          WRITE(lunout,*)'La frequence de sortie instant. est de ',
    1209      .                   ecrit_ins
    1210          ENDIF
    1211          ecrit_reg = NINT(86400./dtime *0.25)  ! 4 fois par jour
    1212          IF (ok_region) THEN
    1213          WRITE(lunout,*)'La frequence de sortie region est de ',
    1214      .                   ecrit_reg
    1215          ENDIF
    1216 
     1439c        ecrit_ins = NINT(86400./dtime/48.)  ! a chaque pas de temps ==> PB. dans time_counter pour 1mois
     1440c        ecrit_ins = NINT(86400./dtime/12.)  ! toutes les deux heures
     1441cIM200505        ecrit_ins = NINT(86400./dtime/8.)  ! toutes les trois heures
     1442cIM200505        IF (ok_instan) THEN
     1443cIM200505        WRITE(lunout,*)'La frequence de sortie instant. est de ',
     1444cIM200505    .                   ecrit_ins
     1445cIM200505        ENDIF
     1446cIM200505        ecrit_reg = NINT(86400./dtime *0.25)  ! 4 fois par jour
     1447cIM200505        IF (ok_region) THEN
     1448cIM200505        WRITE(lunout,*)'La frequence de sortie region est de ',
     1449cIM200505    .                   ecrit_reg
     1450cIM200505        ENDIF
     1451c
     1452cIM 230505 BEG
     1453         ecrit_ins = NINT(ecrit_ins/dtime)
     1454         ecrit_hf = NINT(ecrit_hf/dtime)
     1455c        ecrit_hf2mth = 4*30
     1456         ecrit_day = NINT(ecrit_day/dtime)
     1457         ecrit_mth = NINT(ecrit_mth/dtime)
     1458         ecrit_tra = NINT(ecrit_tra/dtime)
     1459         ecrit_reg = NINT(ecrit_reg/dtime)
     1460cIM 230505 END
    12171461c
    12181462c Initialiser le couplage si necessaire
     
    12291473      endif       
    12301474c
    1231 c
    1232 cIM
    12331475      capemaxcels = 't_max(X)'
    12341476      t2mincels = 't_min(X)'
    12351477      t2maxcels = 't_max(X)'
    1236 
     1478      tinst = 'inst(X)'
     1479      tave = 'ave(X)'
     1480cIM cf. AM 081204 BEG
     1481      write(lunout,*)'AVANT HIST IFLAG_CON=',iflag_con
     1482cIM cf. AM 081204 END
    12371483c
    12381484c=============================================================
     
    12481494#ifdef histday
    12491495#include "ini_histday.h"
     1496cIM rajout diagnostiques bilan KP pour analyse MJO par Jun-Ichi Yano
     1497c#include "ini_bilKP_ins.h"
     1498c#include "ini_bilKP_ave.h"
     1499#include "ini_histday_seri.h"
    12501500#endif
    12511501
     
    12731523#include "ini_histISCCP.h"
    12741524#endif
     1525
     1526c#undef histmthNMC
     1527c#define histmthNMC
     1528#ifdef histmthNMC
     1529#include "ini_histmthNMC.h"
     1530#endif
     1531
    12751532#endif
    12761533
     
    15041761        rmu0 = -999.999
    15051762      ENDIF
    1506 cIM BEG
    1507       DO i=1, klon
    1508        sunlit(i)=1
    1509        IF(rmu0(i).EQ.0.) sunlit(i)=0
    1510        nbsunlit(1,i)=FLOAT(sunlit(i))
    1511       ENDDO
    1512 cIM END
     1763c
    15131764C     Calcul de l'abedo moyen par maille
    15141765      albsol(:)=0.
     
    15451796     $            soil_model,cdmmax, cdhmax,
    15461797     $            ksta, ksta_ter, ok_kzmin, ftsoil, qsol,
    1547      $            paprs,pplay,radsol, fsnow,fqsurf,fevap,falbe,falblw,
     1798cIM BAD    $            paprs,pplay,radsol, fsnow,fqsurf,fevap,falbe,falblw,
     1799     $            paprs,pplay, fsnow,fqsurf,fevap,falbe,falblw,
    15481800     $            fluxlat,
    1549 cIM cf. JLD  e            rain_fall, snow_fall, solsw, sollw, sollwdown, fder,
    1550      e            rain_fall, snow_fall, fsolsw, fsollw, sollwdown, fder,
     1801     e            rain_fall, snow_fall,
     1802     e            fsolsw, fsollw, sollwdown, fder,
    15511803     e            rlon, rlat, cuphy, cvphy, frugs,
    15521804     e            debut, lafin, agesno,rugoro ,
     
    15561808     s            dsens, devap,
    15571809     s            ycoefh,yu1,yv1, t2m, q2m, u10m, v10m,
    1558      s            fqcalving, ffonte, run_off_lic_0)
     1810cIM cf. AM 081204 BEG
     1811     s            pblh,capCL,oliqCL,cteiCL,pblT,
     1812     s            therm,trmb1,trmb2,trmb3,plcl,
     1813cIM cf. AM 081204 END
     1814     s            fqcalving, ffonte, run_off_lic_0,
     1815cIM "slab" ocean
     1816     s            fluxo, fluxg, tslab, seaice)
    15591817c
    15601818CXXX PB
     
    16231881         zxffonte(i) = 0.0
    16241882         zxfqcalving(i) = 0.0
     1883cIM cf. AM 081204 BEG
     1884c
     1885         s_pblh(i) = 0.0
     1886         s_lcl(i) = 0.0
     1887         s_capCL(i) = 0.0
     1888         s_oliqCL(i) = 0.0
     1889         s_cteiCL(i) = 0.0
     1890         s_pblT(i) = 0.0
     1891         s_therm(i) = 0.0
     1892         s_trmb1(i) = 0.0
     1893         s_trmb2(i) = 0.0
     1894         s_trmb3(i) = 0.0
    16251895c
    16261896         IF ( abs( pctsrf(i, is_ter) + pctsrf(i, is_lic) +
     
    16491919            zxfqcalving(i) = zxfqcalving(i) +
    16501920     .                      fqcalving(i,nsrf)*pctsrf(i,nsrf)
     1921cIM cf. AM 081204 BEG
     1922            s_pblh(i) = s_pblh(i) + pblh(i,nsrf)*pctsrf(i,nsrf)
     1923            s_lcl(i) = s_lcl(i) + plcl(i,nsrf)*pctsrf(i,nsrf)
     1924            s_capCL(i) = s_capCL(i) + capCL(i,nsrf) *pctsrf(i,nsrf)
     1925            s_oliqCL(i) = s_oliqCL(i) + oliqCL(i,nsrf) *pctsrf(i,nsrf)
     1926            s_cteiCL(i) = s_cteiCL(i) + cteiCL(i,nsrf) *pctsrf(i,nsrf)
     1927            s_pblT(i) = s_pblT(i) + pblT(i,nsrf) *pctsrf(i,nsrf)
     1928            s_therm(i) = s_therm(i) + therm(i,nsrf) *pctsrf(i,nsrf)
     1929            s_trmb1(i) = s_trmb1(i) + trmb1(i,nsrf) *pctsrf(i,nsrf)
     1930            s_trmb2(i) = s_trmb2(i) + trmb2(i,nsrf) *pctsrf(i,nsrf)
     1931            s_trmb3(i) = s_trmb3(i) + trmb3(i,nsrf) *pctsrf(i,nsrf)
    16511932c        ENDIF
    16521933        ENDDO
     
    16681949          IF (pctsrf(i,nsrf) .LT. epsfra)
    16691950     .    fqcalving(i,nsrf) = zxfqcalving(i)
     1951cIM cf. AM 081204 BEG
     1952          IF (pctsrf(i,nsrf) .LT. epsfra) pblh(i,nsrf)=s_pblh(i)
     1953          IF (pctsrf(i,nsrf) .LT. epsfra) plcl(i,nsrf)=s_lcl(i)
     1954          IF (pctsrf(i,nsrf) .LT. epsfra) capCL(i,nsrf)=s_capCL(i)
     1955          IF (pctsrf(i,nsrf) .LT. epsfra) oliqCL(i,nsrf)=s_oliqCL(i)
     1956          IF (pctsrf(i,nsrf) .LT. epsfra) cteiCL(i,nsrf)=s_cteiCL(i)
     1957          IF (pctsrf(i,nsrf) .LT. epsfra) pblT(i,nsrf)=s_pblT(i)
     1958          IF (pctsrf(i,nsrf) .LT. epsfra) therm(i,nsrf)=s_therm(i)
     1959          IF (pctsrf(i,nsrf) .LT. epsfra) trmb1(i,nsrf)=s_trmb1(i)
     1960          IF (pctsrf(i,nsrf) .LT. epsfra) trmb2(i,nsrf)=s_trmb2(i)
     1961          IF (pctsrf(i,nsrf) .LT. epsfra) trmb3(i,nsrf)=s_trmb3(i)
    16701962        ENDDO
    16711963      ENDDO
     
    20402332c 1. NUAGES CONVECTIFS
    20412333c
    2042       IF (iflag_cldcon.eq.-1) THEN ! seulement pour Tiedtke
     2334cIM cf FH
     2335c     IF (iflag_cldcon.eq.-1) THEN ! seulement pour Tiedtke
     2336       IF (iflag_cldcon.le.-1) THEN ! seulement pour Tiedtke
     2337       snow_tiedtke=0.
     2338c     print*,'avant calcul de la pseudo precip '
     2339c     print*,'iflag_cldcon',iflag_cldcon
     2340       if (iflag_cldcon.eq.-1) then
     2341          rain_tiedtke=rain_con
     2342       else
     2343c       print*,'calcul de la pseudo precip '
     2344          rain_tiedtke=0.
     2345c         print*,'calcul de la pseudo precip 0'
     2346          do k=1,klev
     2347          do i=1,klon
     2348             if (d_q_con(i,k).lt.0.) then
     2349                rain_tiedtke(i)=rain_tiedtke(i)-d_q_con(i,k)/pdtphys
     2350     s         *(paprs(i,k)-paprs(i,k+1))/rg
     2351             endif
     2352          enddo
     2353          enddo
     2354       endif
     2355c
     2356c     call dump2d(iim,jjm,rain_tiedtke(2:klon-1),'PSEUDO PRECIP ')
     2357c
    20432358
    20442359c Nuages diagnostiques pour Tiedtke
    20452360      CALL diagcld1(paprs,pplay,
    2046      .             rain_con,snow_con,ibas_con,itop_con,
     2361cIM cf FH  .             rain_con,snow_con,ibas_con,itop_con,
     2362     .             rain_tiedtke,snow_tiedtke,ibas_con,itop_con,
    20472363     .             diafra,dialiq)
    20482364      DO k = 1, klev
     
    20722388      enddo
    20732389
     2390c
    20742391cIM calcul nuages par le simulateur ISCCP
     2392c
    20752393      IF (ok_isccp) THEN
    2076 cIM calcul tau. emi nuages convectifs
    2077       convfra(:,:)=rnebcon(:,:)
    2078       convliq(:,:)=rnebcon(:,:)*clwcon(:,:)
    2079       CALL newmicro (paprs, pplay,ok_newmicro,
    2080      .            t_seri, convliq, convfra, dtau_c, dem_c,
    2081      .            cldh_c, cldl_c, cldm_c, cldt_c, cldq_c,
    2082      .            flwp_c, fiwp_c, flwc_c, fiwc_c,
    2083      e            ok_aie,
    2084      e            sulfate, sulfate_pi,
    2085      e            bl95_b0, bl95_b1,
    2086      s            cldtaupi, re, fl)
    2087 c
    2088 cIM calcul tau. emi nuages startiformes
    2089       CALL newmicro (paprs, pplay,ok_newmicro,
    2090      .            t_seri, cldliq, cldfra, dtau_s, dem_s,
    2091      .            cldh_s, cldl_s, cldm_s, cldt_s, cldq_s,
    2092      .            flwp_s, fiwp_s, flwc_s, fiwc_s,
    2093      e            ok_aie,
    2094      e            sulfate, sulfate_pi,
    2095      e            bl95_b0, bl95_b1,
    2096      s            cldtaupi, re, fl)
    2097 c
    2098       cldtot(:,:)=min(max(cldfra(:,:),rnebcon(:,:)),1.)
    2099 
    2100 cIM inversion des niveaux de pression ==> de haut en bas
    2101       CALL haut2bas(klon, klev, pplay, pfull)
    2102       CALL haut2bas(klon, klev, q_seri, qv)
    2103       CALL haut2bas(klon, klev, cldtot, cc)
    2104       CALL haut2bas(klon, klev, rnebcon, conv)
    2105       CALL haut2bas(klon, klev, dtau_s, dtau_sH2B)
    2106       CALL haut2bas(klon, klev, dtau_c, dtau_cH2B)
    2107       CALL haut2bas(klon, klev, t_seri, at)
    2108       CALL haut2bas(klon, klev, dem_s, dem_sH2B)
    2109       CALL haut2bas(klon, klev, dem_c, dem_cH2B)
    2110       CALL haut2bas(klon, klevp1, paprs, phalf)
    2111 
    2112 c     open(99,file='tautab.bin',access='sequential',
    2113 c    $     form='unformatted',status='old')
    2114 c     read(99) tautab
    2115 
    2116 cIM210503
    2117       IF (debut) THEN
    2118       open(99,file='tautab.formatted', FORM='FORMATTED')
    2119       read(99,'(f30.20)') tautab
    2120       close(99)
    2121 c
    2122       open(99,file='invtau.formatted',form='FORMATTED')
    2123       read(99,'(i10)') invtau
    2124       close(99)
    2125 c
    2126 cIM: calcul coordonnees regions pour statistiques distribution
    2127 cIM: nuages en ftion du regime dynamique pour regions oceaniques
    2128        IF (ok_regdyn) THEN !histREGDYN
    2129        nsrf=3
    2130        DO nreg=1, nbregdyn
    2131        DO i=1, klon
    2132 
    2133 c       IF (debut) THEN
    2134          IF(rlon(i).LT.0.) THEN
    2135            rlonPOS(i)=rlon(i)+360.
    2136          ELSE
    2137            rlonPOS(i)=rlon(i) 
    2138          ENDIF
    2139 c       ENDIF
    2140 
    2141         pct_ocean(i,nreg)=0
    2142 
    2143 c test si c'est 1 point d'ocean
    2144         IF(pctsrf(i,nsrf).EQ.1.) THEN
    2145 
    2146          IF(nreg.EQ.1) THEN
    2147 
    2148 c TROP
    2149           IF(rlat(i).GE.-30.AND.rlat(i).LE.30.) THEN
    2150            pct_ocean(i,nreg)=1
    2151           ENDIF
    2152 
    2153 c PACIFIQUE NORD
    2154           ELSEIF(nreg.EQ.2) THEN
    2155            IF(rlat(i).GE.40.AND.rlat(i).LE.60.) THEN
    2156             IF(rlonPOS(i).GE.160..AND.rlonPOS(i).LE.235.) THEN
    2157              pct_ocean(i,nreg)=1
    2158             ENDIF
    2159            ENDIF
    2160 c CALIFORNIE ST-CU
    2161          ELSEIF(nreg.EQ.3) THEN
    2162           IF(rlonPOS(i).GE.220..AND.rlonPOS(i).LE.250.) THEN
    2163            IF(rlat(i).GE.15.AND.rlat(i).LE.35.) THEN
    2164             pct_ocean(i,nreg)=1
    2165            ENDIF
    2166           ENDIF
    2167 c HAWAI
    2168         ELSEIF(nreg.EQ.4) THEN
    2169          IF(rlonPOS(i).GE.180..AND.rlonPOS(i).LE.220.) THEN
    2170           IF(rlat(i).GE.15.AND.rlat(i).LE.35.) THEN
    2171            pct_ocean(i,nreg)=1
    2172           ENDIF
    2173          ENDIF
    2174 c WARM POOL
    2175         ELSEIF(nreg.EQ.5) THEN
    2176          IF(rlonPOS(i).GE.70..AND.rlonPOS(i).LE.150.) THEN
    2177           IF(rlat(i).GE.-5.AND.rlat(i).LE.20.) THEN
    2178            pct_ocean(i,nreg)=1
    2179           ENDIF
    2180          ENDIF
    2181         ENDIF !nbregdyn
    2182 c TROP
    2183 c        IF(rlat(i).GE.-30.AND.rlat(i).LE.30.) THEN
    2184 c         pct_ocean(i)=.TRUE.
    2185 c         WRITE(*,*) 'pct_ocean =',i, rlon(i), rlat(i)
    2186 c          ENDIF !lon
    2187 c         ENDIF !lat
    2188 
    2189         ENDIF !pctsrf
    2190        ENDDO !klon
    2191        ENDDO !nbregdyn
    2192        ENDIF !ok_regdyn
    2193  
    2194 cIM somme de toutes les nhistoW BEG
    2195       DO nreg = 1, nbregdyn
    2196        DO k = 1, kmaxm1
    2197         DO l = 1, lmaxm1
    2198          DO iw = 1, iwmax
    2199           nhistoWt(k,l,iw,nreg)=0.
    2200          ENDDO !iw
    2201         ENDDO !l
    2202        ENDDO !k
    2203       ENDDO !nreg
    2204 cIM somme de toutes les nhistoW END
    2205       ENDIF
    2206 cIM: initialisation de seed
    2207         DO i=1, klon
    2208           seed(i)=i+100
    2209         ENDDO
    2210      
    2211 cIM: pas de debug, debugcol
    2212       debug=0
    2213       debugcol=0
    2214 cIM260503
    2215 c o500 ==> distribution nuage ftion du regime dynamique a 500 hPa
    2216         DO k=1, klevm1
    2217         kp1=k+1
    2218 c       PRINT*,'k, presnivs',k,presnivs(k), presnivs(kp1)
    2219         if(presnivs(k).GT.50000.AND.presnivs(kp1).LT.50000.) THEN
    2220          DO i=1, klon
    2221           o500(i)=omega(i,k)*RDAY/100.
    2222 c         if(i.EQ.1) print*,' 500hPa lev',k,presnivs(k),presnivs(kp1)
    2223          ENDDO
    2224          GOTO 1000
    2225         endif
    2226 1000  continue
    2227       ENDDO
    2228 
    2229       CALL ISCCP_CLOUD_TYPES(
    2230      &     debug,
    2231      &     debugcol,
    2232      &     klon,
    2233      &     sunlit,
    2234      &     klev,
    2235      &     ncol,
    2236      &     seed,
    2237      &     pfull,
    2238      &     phalf,
    2239      &     qv, cc, conv, dtau_sH2B, dtau_cH2B,
    2240      &     top_height,
    2241      &     overlap,
    2242      &     tautab,
    2243      &     invtau,
    2244      &     ztsol,
    2245      &     emsfc_lw,
    2246      &     at, dem_sH2B, dem_cH2B,
    2247      &     fq_isccp,
    2248      &     totalcldarea,
    2249      &     meanptop,
    2250      &     meantaucld,
    2251      &     boxtau,
    2252      &     boxptop)
    2253 
    2254 
    2255 c passage de la grille (klon,7,7) a (iim,jjmp1,7,7)
    2256       DO l=1, lmaxm1
    2257        DO k=1, kmaxm1
    2258         DO i=1, iim
    2259          fq4d(i,1,k,l)=fq_isccp(1,k,l)
    2260         ENDDO
    2261         DO j=2, jjm
    2262          DO i=1, iim
    2263           ig=i+1+(j-2)*iim
    2264           fq4d(i,j,k,l)=fq_isccp(ig,k,l)             
    2265          ENDDO
    2266         ENDDO
    2267         DO i=1, iim
    2268          fq4d(i,jjmp1,k,l)=fq_isccp(klon,k,l)
    2269         ENDDO
    2270        ENDDO
    2271       ENDDO
    2272 c
    2273       DO l=1, lmaxm1
    2274        DO k=1, kmaxm1 
    2275         DO j=1, jjmp1
    2276          DO i=1, iim
    2277            ni=(i-1)*lmaxm1+l
    2278            nj=(j-1)*kmaxm1+k
    2279            fq3d(ni,nj)=fq4d(i,j,k,l)
    2280          ENDDO
    2281         ENDDO
    2282        ENDDO
    2283       ENDDO
    2284 
    2285 c
    2286 c calculs statistiques distribution nuage ftion du regime dynamique
    2287 c
    2288 c Ce calcul doit etre fait a partir de valeurs mensuelles ??
    2289       CALL histo_o500_pctau(nbregdyn,pct_ocean,o500,fq_isccp,
    2290      &histoW,nhistoW)
    2291 c
    2292 c nhistoWt = somme de toutes les nhistoW
    2293       DO nreg=1, nbregdyn
    2294        DO k = 1, kmaxm1
    2295         DO l = 1, lmaxm1
    2296          DO iw = 1, iwmax
    2297           nhistoWt(k,l,iw,nreg)=nhistoWt(k,l,iw,nreg)+
    2298      &    nhistoW(k,l,iw,nreg)
    2299          ENDDO
    2300         ENDDO
    2301        ENDDO
    2302       ENDDO
    2303 c
     2394#include "calcul_simulISCCP.h"
    23042395      ENDIF !ok_isccp
    23052396
     
    25712662     e                   igwd,idx,itest,
    25722663     e                   t_seri, u_seri, v_seri,
    2573      s                   zulow, zvlow, zustr, zvstr,
     2664cIM 141004    s                   zulow, zvlow, zustr, zvstr,
     2665     s                   zulow, zvlow, zustrdr, zvstrdr,
    25742666     s                   d_t_oro, d_u_oro, d_v_oro)
    25752667c
     
    26032695     e                   itest,
    26042696     e                   t_seri, u_seri, v_seri,
    2605      s                   zulow, zvlow, zustr, zvstr,
     2697     s                   zulow, zvlow, zustrli, zvstrli,
    26062698     s                   d_t_lif, d_u_lif, d_v_lif)
    26072699c
     
    26162708c
    26172709      ENDIF ! fin de test sur ok_orolf
     2710c
     2711cIM cf. FLott BEG
     2712C STRESS NECESSAIRES: TOUTE LA PHYSIQUE
     2713
     2714      DO i = 1, klon
     2715        zustrph(i)=0.
     2716        zvstrph(i)=0.
     2717      ENDDO
     2718      DO k = 1, klev
     2719      DO i = 1, klon
     2720       zustrph(i)=zustrph(i)+(u_seri(i,k)-u(i,k))/dtime*
     2721     c            (paprs(i,k)-paprs(i,k+1))/rg
     2722       zvstrph(i)=zvstrph(i)+(v_seri(i,k)-v(i,k))/dtime*
     2723     c            (paprs(i,k)-paprs(i,k+1))/rg
     2724      ENDDO
     2725      ENDDO
     2726c
     2727cIM calcul composantes axiales du moment angulaire et couple des montagnes
     2728c
     2729      CALL aaam_bud (27,klon,klev,rjourvrai,gmtime,
     2730     C               ra,rg,romega,
     2731     C               rlat,rlon,pphis,
     2732     C               zustrdr,zustrli,zustrph,
     2733     C               zvstrdr,zvstrli,zvstrph,
     2734     C               paprs,u,v,
     2735     C               aam, torsfc)
     2736cIM cf. FLott END
    26182737c
    26192738      IF (if_ebil.ge.2) THEN
     
    27122831     s                   ve, vq, ue, uq)
    27132832c
     2833cIM diag. bilKP
     2834c
     2835      CALL transp_lay (paprs,zxtsol,
     2836     e                   t_seri, q_seri, u_seri, v_seri, zphi,
     2837     s                   ve_lay, vq_lay, ue_lay, uq_lay)
     2838c
    27142839c Accumuler les variables a stocker dans les fichiers histoire:
    2715 c
    2716 c
    27172840c
    27182841c+jld ec_conser
     
    27502873c=======================================================================
    27512874
    2752 c   Interpollation sur quelques niveaux de pression
    2753 c   -----------------------------------------------
    2754 c
    2755 c on moyenne mensuellement les champs 3D et on les interpole sur les niveaux STD
    2756 c     if(itap.EQ.1.OR.itap.EQ.13.OR.itap.EQ.25.OR.itap.EQ.37) THEN
    2757 c     if(MOD(itap,12).EQ.1) THEN
    2758 cIM 120304 END
    2759       DO k=1, nlevSTD
    2760        call plevel(klon,klev,.true.,pplay,rlevSTD(k),
    2761      .             t_seri,tlevSTD(:,k))
    2762        call plevel(klon,klev,.false.,pplay,rlevSTD(k),
    2763      .             u_seri,ulevSTD(:,k))
    2764        call plevel(klon,klev,.false.,pplay,rlevSTD(k),
    2765      .             v_seri,vlevSTD(:,k))
    2766        call plevel(klon,klev,.false.,pplay,rlevSTD(k),
    2767      .             zphi,philevSTD(:,k))
    2768        call plevel(klon,klev,.false.,pplay,rlevSTD(k),
    2769      .             qx(:,:,ivap),qlevSTD(:,k))
    2770        call plevel(klon,klev,.false.,pplay,rlevSTD(k),
    2771      .             zx_rh,rhlevSTD(:,k))
    2772       ENDDO !nlevSTD
    2773 c ENSEMBLES BEG
    2774       DO k=1, nlevENS
    2775 cIM 170304
    2776        tlev(:,k)=tlevSTD(:,indENS(k))
    2777        ulev(:,k)=ulevSTD(:,indENS(k))
    2778        vlev(:,k)=vlevSTD(:,indENS(k))
    2779        philev(:,k)=philevSTD(:,indENS(k))
    2780        qlev(:,k)=qlevSTD(:,indENS(k))
    2781        rhlev(:,k)=rhlevSTD(:,indENS(k))
    2782 c
    2783        call plevel(klon,klevp1,.true.,paprs,rlevENS(k),
    2784      .             omega,wlev(:,k))
    2785 c
    2786        ENDDO !k=1, nlevENS
    2787 cIM 100304 BEG
    2788 cIM interpolation a chaque pas de temps du SWup(clr) et SWdn(clr) a 200 hPa
    2789       call plevel(klon,klevp1,.true.,paprs,20000.,
    2790      $     swdn0,SWdn200clr)
    2791       call plevel(klon,klevp1,.false.,paprs,20000.,
    2792      $     swdn,SWdn200)
    2793       call plevel(klon,klevp1,.false.,paprs,20000.,
    2794      $     swup0,SWup200clr)
    2795       call plevel(klon,klevp1,.false.,paprs,20000.,
    2796      $     swup,SWup200)
    2797 c
    2798       call plevel(klon,klevp1,.false.,paprs,20000.,
    2799      $     lwdn0,LWdn200clr)
    2800       call plevel(klon,klevp1,.false.,paprs,20000.,
    2801      $     lwdn,LWdn200)
    2802       call plevel(klon,klevp1,.false.,paprs,20000.,
    2803      $     lwup0,LWup200clr)
    2804       call plevel(klon,klevp1,.false.,paprs,20000.,
    2805      $     lwup,LWup200)
    2806 c
    2807 cIM 100304 END
    2808 c     
    2809 c ENSEMBLES END
     2875cIM Interpolation sur les niveaux de pression du NMC
     2876c   -------------------------------------------------
     2877c
     2878#include "calcul_STDlev.h"
    28102879c
    28112880c slp sea level pressure
     
    28212890      ENDDO
    28222891c
    2823 cIM sorties bilans energie cinetique et potentielle MJO
    2824       DO k = 1, klev
    2825       DO i = 1, klon
    2826         d_u_oli(i,k) = d_u_oro(i,k) + d_u_lif(i,k)
    2827         d_v_oli(i,k) = d_v_oro(i,k) + d_v_lif(i,k)
    2828       ENDDO
    2829       ENDDO
    2830 c
    2831       IF (MOD(itap-1,lmt_pas) .EQ. 0) THEN
    2832 cIM      PRINT *,' PHYS cond  julien ',julien
    2833 c        CALL ozonecm( FLOAT(julien), rlat, paprs, wo)
    2834         DO i = 1, klon
    2835          total_rain(i)=rain_fall(i)+snow_fall(i) 
    2836          IF(total_rain(i).GT.0.) nday_rain(i)=nday_rain(i)+1.
    2837         ENDDO
    2838 c
    2839       ENDIF
    2840 c surface terre
    2841       IF (debut) THEN
    2842        DO i=1, klon
    2843          IF(pctsrf_new(i,is_ter).GT.0.) THEN
    2844             paire_ter(i)=airephy(i)*pctsrf_new(i,is_ter)
    2845          ENDIF
    2846        ENDDO
    2847       ENDIF
    2848 cIM 050204 END
    2849 
     2892cIM initialisation + calculs divers diag AMIP2
     2893c
     2894#include "calcul_divers.h"
     2895c
    28502896c=============================================================
    28512897c
     
    28722918      ENDIF
    28732919c
     2920cIM rajout diagnostiques bilan KP pour analyse MJO par Jun-Ichi Yano
     2921c#include "write_bilKP_ins.h"
     2922c#include "write_bilKP_ave.h"
     2923c
    28742924c Sauvegarder les valeurs de t et q a la fin de la physique:
    28752925c
     
    28932943#ifdef histday
    28942944#include "write_histday.h"
     2945#include "write_histday_seri.h"
    28952946#endif
    28962947
     
    29102961#include "write_histISCCP.h"
    29112962#endif
     2963
    29122964
    29132965#ifdef histmthNMC
     
    29573009ccc         IF (ok_oasis) CALL quitcpl
    29583010         CALL phyredem ("restartphy.nc",dtime,radpas,
    2959      .      rlat, rlon, pctsrf, ftsol, ftsoil, deltat, fqsurf, qsol,
     3011     .      rlat, rlon, pctsrf, ftsol, ftsoil,
     3012cIM "slab" ocean
     3013     .      tslab, seaice,
     3014     .      fqsurf, qsol,
    29603015     .      fsnow, falbe,falblw, fevap, rain_fall, snow_fall,
    29613016     .      solsw, sollwdown,dlw,
  • LMDZ4/trunk/libf/phylmd/phytrac.F

    r625 r644  
    628628
    629629      if (thermiques) then
    630         print*,'calcul de leffet des thermiques'
     630c        print*,'calcul de leffet des thermiques'
    631631        nsplit=10
    632632        DO it=1, nqmax
     
    652652            enddo
    653653          enddo ! nsplit
    654           print*,'apres thermiques'
     654c          print*,'apres thermiques'
    655655c             call dump2d(iim,jjm-1,d_tr_th(1,1,1),'d_tr_th      ')
    656656c            do k=1,klev
     
    868868         close(99)
    869869      else
    870          print*, 'physique pas fini'
     870c         print*, 'physique pas fini'
    871871      endif
    872872
  • LMDZ4/trunk/libf/phylmd/raddim.h

    r621 r644  
    11!
    2 ! $Header $
     2! $Header$
    33!
    44      INTEGER kdlon, kflev
    5       PARAMETER (kdlon=klon,kflev=klev)
     5      PARAMETER (kdlon=149,kflev=klev)
  • LMDZ4/trunk/libf/phylmd/radiornpb.F

    r524 r644  
    2121      REAL tautr(nbtr)
    2222C
    23       WRITE(*,'(''PASSAGE radiornpb ... '',$)')
     23c      WRITE(*,'(''PASSAGE radiornpb ... '',$)')
    2424C Attention, pour un pas de temps beaucoup plus petit que la decroissance!!!
    2525
     
    4848      ENDDO
    4949c
    50       WRITE(*,*) ' radiornpb OK'
     50c      WRITE(*,*) ' radiornpb OK'
    5151c
    5252      RETURN
  • LMDZ4/trunk/libf/phylmd/radlwsw.F

    r557 r644  
    8989      real topsw0(klon), toplw0(klon), solsw0(klon), sollw0(klon)
    9090      real sollwdown(klon)
    91 cccIM
     91cIM output 3D
    9292      REAL*8 ZFSUP(KDLON,KFLEV+1)
    9393      REAL*8 ZFSDN(KDLON,KFLEV+1)
    9494      REAL*8 ZFSUP0(KDLON,KFLEV+1)
    9595      REAL*8 ZFSDN0(KDLON,KFLEV+1)
    96 cIM
    97 cIM
    98 cIM   real sollwdownclr(klon) !LWdnSFCclr
    99 cIM   real toplwdown(klon) !LWdnTOA
    100 cIM   real toplwdownclr(klon) !LWdnTOAclr
     96c
    10197      REAL*8 ZFLUP(KDLON,KFLEV+1)
    10298      REAL*8 ZFLDN(KDLON,KFLEV+1)
     
    134130      REAL*8 ztopsw(kdlon), ztoplw(kdlon)
    135131      REAL*8 zsolsw(kdlon), zsollw(kdlon), zalbpla(kdlon)
    136 cIM BEG
     132cIM
    137133      REAL*8 zsollwdown(kdlon)
    138 cIM   REAL*8 zsollwdown(kdlon), zsollwdownclr(kdlon)
    139 cIM   REAL*8 ztoplwdown(kdlon), ztoplwdownclr(kdlon)
    140 cIM END
     134c
    141135      REAL*8 ztopsw0(kdlon), ztoplw0(kdlon)
    142136      REAL*8 zsolsw0(kdlon), zsollw0(kdlon)
    143137      REAL*8 zznormcp
    144 cIM 080304   REAL swdn(klon,2),swdn0(klon,2),swup(klon,2),swup0(klon,2)
     138cIM output 3D : SWup, SWdn, LWup, LWdn
    145139      REAL swdn(klon,kflev+1),swdn0(klon,kflev+1)
    146140      REAL swup(klon,kflev+1),swup0(klon,kflev+1)
    147 cIM BEG
    148141      REAL lwdn(klon,kflev+1),lwdn0(klon,kflev+1)
    149142      REAL lwup(klon,kflev+1),lwup0(klon,kflev+1)
    150 cIM END
    151143c-OB
    152144cjq the following quantities are needed for the aerosol radiative forcings
     
    308300     .        ztoplw,zsollw,ztoplw0,zsollw0,
    309301     .        zsollwdown,
    310 cIM  .        zsollwdown,zsollwdownclr,
    311 cIM  .        ztoplwdown,ztoplwdownclr)
    312302     .        ZFLUP, ZFLDN, ZFLUP0,ZFLDN0)
    313303cIM ctes ds clesphys.h   CALL SW(PSCT, RCO2, zrmu0, zfract,
     
    334324         sollwdown(iof+i) = zsollwdown(i)
    335325cIM
    336 cIM      sollwdownclr(iof+i) = zsollwdownclr(i)
    337 cIM BEG
    338 cIM      toplwdown(iof+i) = ztoplwdown(i)
    339 cIM      toplwdownclr(iof+i) = ztoplwdownclr(i)
    340 cIM END
    341 cIM 110304 BEG
    342326         DO k = 1, kflev+1
    343327         lwdn0 ( iof+i,k)   = ZFLDN0 ( i,k)
     
    346330         lwup  ( iof+i,k)   = ZFLUP  ( i,k)
    347331         ENDDO
    348 cIM 110304 END
     332c
    349333         topsw0(iof+i) = ztopsw0(i)
    350334         toplw0(iof+i) = ztoplw0(i)
     
    352336         sollw0(iof+i) = zsollw0(i)
    353337         albpla(iof+i) = zalbpla(i)
    354 cIM 080304 BEG
     338cIM
    355339         DO k = 1, kflev+1
    356340         swdn0 ( iof+i,k)   = ZFSDN0 ( i,k)
     
    359343         swup  ( iof+i,k)   = ZFSUP  ( i,k)
    360344         ENDDO !k=1, kflev+1
    361 cIM 080304 END
    362 c        swdn0 ( iof+i,1)   = ZFSDN0 ( i,1 )
    363 c        swdn0 ( iof+i,2)   = ZFSDN0 ( i,kflev + 1 )
    364 c        swdn  ( iof+i,1)   = ZFSDN  ( i,1 )
    365 c        swdn  ( iof+i,2)   = ZFSDN  ( i,kflev + 1 )
    366 c        swup0 ( iof+i,1)   = ZFSUP0 ( i,1 )
    367 c        swup0 ( iof+i,2)   = ZFSUP0 ( i,kflev + 1 )
    368 c        swup  ( iof+i,1)   = ZFSUP  ( i,1 )
    369 c        swup  ( iof+i,2)   = ZFSUP  ( i,kflev + 1 )
    370345      ENDDO
    371346cjq-transform the aerosol forcings, if they have
     
    28032778     .              PTOPLW,PSOLLW,PTOPLW0,PSOLLW0,
    28042779     .              psollwdown,
    2805 cIM  .              psollwdown,psollwdownclr,
    2806 cIM  .              ptoplwdown,ptoplwdownclr)
    28072780     .              plwup, plwdn, plwup0, plwdn0)
    28082781      IMPLICIT none
     
    28712844c Rajout LF
    28722845      real*8 psollwdown(kdlon)    ! LONGWAVE downwards flux at surface
    2873 c Rajout IM
    2874 cIM   real*8 psollwdownclr(kdlon) ! LONGWAVE CS downwards flux at surface
    2875 cIM   real*8 ptoplwdown(kdlon)    ! LONGWAVE downwards flux at T.O.A.
    2876 cIM   real*8 ptoplwdownclr(kdlon) ! LONGWAVE CS downwards flux at T.O.A.
    28772846cIM
    28782847      REAL*8 plwup(KDLON,KFLEV+1)  ! LW up total sky
     
    29532922         PTOPLW0(i) = ZFLUC(i,1,KFLEV+1) + ZFLUC(i,2,KFLEV+1)
    29542923         psollwdown(i) = -ZFLUX(i,2,1)
    2955 cIM
    2956 cIM      psollwdownclr(i) = -ZFLUC(i,2,1)
    2957 cIM      ptoplwdown(i) = ZFLUX(i,2,KFLEV+1)
    2958 cIM      ptoplwdownclr(i) = ZFLUC(i,2,KFLEV+1)
    2959 cIM
     2924c
    29602925cIM attention aux signes !; LWtop >0, LWdn < 0
    29612926         DO k = 1, KFLEV+1
  • LMDZ4/trunk/libf/phylmd/stdlevvar.F90

    r539 r644  
    33!
    44      SUBROUTINE stdlevvar(klon, knon, nsrf, zxli, &
    5  &                         u1, v1, t1, q1, z1, &
    6  &                         ts1, qsurf, rugos, psol, pat1, &
    7  &                         t_2m, q_2m, u_10m)
     5                           u1, v1, t1, q1, z1, &
     6                           ts1, qsurf, rugos, psol, pat1, &
     7                           t_2m, q_2m, t_10m, q_10m, u_10m, ustar)
    88      IMPLICIT NONE
    99!-------------------------------------------------------------------------
     
    1616!
    1717! I. Musat, 01.07.2002
     18!
     19!AM On rajoute en sortie t et q a 10m pr le calcule d'hbtm2 dans clmain
     20!
    1821!-------------------------------------------------------------------------
    1922!
     
    3639! q_2m---output-R- humidite relative a 2m
    3740! u_10m--output-R- vitesse du vent a 10m
     41!AM
     42! t_10m--output-R- temperature de l'air a 10m
     43! q_10m--output-R- humidite specifique a 10m
     44! ustar--output-R- u*
    3845!
    3946      INTEGER, intent(in) :: klon, knon, nsrf
     
    4350      REAL, dimension(klon), intent(in) :: psol, pat1
    4451!
    45       REAL, dimension(klon), intent(out) :: t_2m, q_2m, u_10m
     52      REAL, dimension(klon), intent(out) :: t_2m, q_2m, ustar
     53      REAL, dimension(klon), intent(out) :: u_10m, t_10m, q_10m
    4654!-------------------------------------------------------------------------
    4755#include "YOMCST.inc"
     
    6775! ri1 : nb. de Richardson entre la surface --> la 1ere couche
    6876      REAL, dimension(klon) :: ri1
    69       REAL, dimension(klon) :: ustar, testar, qstar
     77      REAL, dimension(klon) :: testar, qstar
    7078      REAL, dimension(klon) :: zdte, zdq   
    7179! lmon : longueur de Monin-Obukhov selon Hess, Colman and McAvaney
     
    101109        ustar(i) = sqrt(cdram(i) * speed(i) * speed(i))
    102110        zdte(i) = tpot(i) - ts1(i)
    103 !       PRINT*,'AVANT i,zdte',i,zdte(i)
    104 !IM cf FH : on prend le max : pour eviter le plantage sur SUN
     111        zdq(i) = max(q1(i),0.0) - max(qsurf(i),0.0)
     112!
     113!
    105114!IM BUG BUG BUG       zdte(i) = max(zdte(i),1.e-10)
    106115        zdte(i) = sign(max(abs(zdte(i)),1.e-10),zdte(i))
    107 !       PRINT*,'APRES i,zdte',i,zdte(i)
    108 !
    109         zdq(i) = max(q1(i),0.0) - max(qsurf(i),0.0)
    110116!
    111117        testar(i) = (cdrah(i) * zdte(i) * speed(i))/ustar(i)
     
    260266!
    261267        u_10m(i) = u_zref_p(i) * ok_pred(i) + u_zref_c(i) * ok_corr(i)
     268!
     269!AM
     270        q_zref_c(i) = q_zref(i)
     271        temp_c(i) = temp(i)
     272        t_10m(i) = temp_p(i) * ok_pred(i) + temp_c(i) * ok_corr(i)
     273        q_10m(i) = q_zref_p(i) * ok_pred(i) + q_zref_c(i) * ok_corr(i)
     274!MA
    262275      ENDDO
    263276!
  • LMDZ4/trunk/libf/phylmd/write_histISCCP.h

    r524 r644  
    88c
    99       itau_w = itau_phy + itap
     10c
     11       IF(type_run.EQ."ENSP".OR.type_run.EQ."CLIM") THEN
    1012c
    1113        DO k=1,kmaxm1
     
    2426     .                 zx_tmp_2d,iim*jjmp1,ndex2d)
    2527c
     28        ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN
     29c
     30         DO k=1, kmaxm1
     31          DO l=1, lmaxm1
     32c
     33         zx_tmp_fi2d(1:klon)=fq_isccp(1:klon,k,l)*100.
     34         CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,
     35     .                    zx_tmp_2d)
     36c
     37cIM: champ 2d : (lon,lat) pour un tau et une pc fixes
     38c
     39         CALL histwrite(nid_isccp,pclev(l)//taulev(k),itau_w,
     40     .                  zx_tmp_2d,iim*jjmp1,ndex2d)
     41         ENDDO !l
     42        ENDDO !k
     43c
     44        CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:),zx_tmp_2d)
     45        CALL histwrite(nid_isccp,"nsunlit",itau_w,
     46     .                 zx_tmp_2d,iim*jjmp1,ndex2d)
     47c
     48       ENDIF
     49c
    2650       if (ok_sync) then
    2751        call histsync(nid_isccp)
  • LMDZ4/trunk/libf/phylmd/write_histREGDYN.h

    r524 r644  
    33!
    44      if (ok_regdyn) then
    5 
    6 c   Comprendre comment marche el i=nint(zout/zsto)
    75c
    8       ndex2d = 0
    96      ndex3d = 0
     7      itau_w = itau_phy + itap
    108c
    11 c        itap = 0
    12 c        zsto = dtime * REAL(NINT(86400./dtime*ecrit_regdyn))
    13 c        zout = dtime * ecrit_mth
    14 
    15 c        zsto = dtime
    16 c        zout = dtime * ecrit_mth
    17 c        zsto = dtime * REAL(NINT(86400./dtime*ecrit_regdyn))
    18          itau_w = itau_phy + itap
    19 
    209       CALL histwrite(nid_regdyn,"hw1",itau_w,histoW(:,:,:,1),
    2110     &               kmaxm1*lmaxm1*iwmax,ndex3d)
  • LMDZ4/trunk/libf/phylmd/write_histday.h

    r532 r644  
    1 !
    2 ! $Header$
    3 !
    4       IF (ok_journe) THEN
     1c
     2c $Header$
     3c
     4      if (ok_journe) THEN
    55c
    66      ndex2d = 0
     
    99c Champs 2D:
    1010c
    11          zsto = dtime
    12          zout = dtime * FLOAT(ecrit_day)
    1311         itau_w = itau_phy + itap
    1412
    15          i = NINT(zout/zsto)
    16          CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)
    1713c
    1814      IF(lev_histday.GE.1) THEN
    1915c
     16       CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)
    2017       CALL histwrite(nid_day,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    21          varname = 'phis'
    22          vartitle= 'Surface geop. height'
    23          varunits= '-'
    24 c
    25          i = NINT(zout/zsto)
     18c
     19cIM 310804      CALL gr_fi_ecrit(1,klon,iim,jjmp1,paire,zx_tmp_2d)
    2620         CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)
    2721       CALL histwrite(nid_day,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    28          varname = 'aire'
    29          vartitle= 'Grid area'
    30          varunits= '-'
    3122c
    3223      DO i=1, klon
     
    125116      CALL histwrite(nid_day,"snowf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    126117c
    127       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxsnow,zx_tmp_2d)
    128       CALL histwrite(nid_day,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1,
    129      .               ndex2d)
     118cIM: 140404   CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxsnow,zx_tmp_2d)
     119c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d)
     120c     CALL histwrite(nid_day,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1,
     121c    .               ndex2d)
    130122c
    131123      CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d)
     
    164156
    165157c   Ecriture de champs dynamiques sur des niveaux de pression
    166       DO k=1, nlevENS
    167 c
    168         CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulev(:,k),zx_tmp_2d)
    169         CALL histwrite(nid_day,"u"//clev(k),itau_w,zx_tmp_2d,
     158c     DO k=1, nlevENS
     159      DO k=1, nlevSTD
     160c
     161c        bb=clevSTD(k)
     162c
     163         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
     164         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
     165c         aa=clevSTD(k)
     166c         bb=aa(1:lnblnk1(aa))
     167c        ENDIF
     168c
     169      IF(bb2.EQ."850".OR.bb2.EQ."700"
     170     $   .OR.bb2.EQ."500".OR.bb2.EQ."200") THEN
     171c
     172        CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,1),zx_tmp_2d)
     173        CALL histwrite(nid_day,"u"//bb2,itau_w,zx_tmp_2d,
    170174     $       iim*jjmp1,ndex2d)
    171175c
    172         CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlev(:,k),zx_tmp_2d)
    173         CALL histwrite(nid_day,"v"//clev(k),itau_w,zx_tmp_2d,
     176        CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,1),zx_tmp_2d)
     177        CALL histwrite(nid_day,"v"//bb2,itau_w,zx_tmp_2d,
    174178     $       iim*jjmp1,ndex2d)
    175179c
    176       ENDDO !nlevENS
    177 c
    178       DO k=1, nlevENS
    179       IF(clev(k).EQ."500") THEN
    180 c
    181       CALL gr_fi_ecrit(1, klon,iim,jjmp1, wlev(:,indENS(k)),zx_tmp_2d)
    182       CALL histwrite(nid_day,"w500",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    183 c
    184 c     DO i=1, klon
    185 c     print*,' ind, phi 500hPa',i,indENS(k),philev(:,indENS(k))
    186 c     print*,' ind, phi 500hPa',i,indENS(k)
    187 c     ENDDO
    188 c
    189 cBAD  CALL gr_fi_ecrit(1, klon,iim,jjmp1, philev(:,indENS(k)),zx_tmp_2d)
    190       CALL gr_fi_ecrit(1, klon,iim,jjmp1, philev(:,k),zx_tmp_2d)
    191       CALL histwrite(nid_day,"phi500",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    192 c
    193       ENDIF !clev(k).EQ.500
    194       ENDDO !k=1, nlevENS
     180      ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.bb2.EQ."500".OR.bb2.EQ."200") THEN
     181c
     182c w500
     183c
     184      IF(bb2.EQ."500") THEN
     185c
     186      CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,1),zx_tmp_2d)
     187      CALL histwrite(nid_day,"w"//bb2,itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     188c
     189      CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,1),zx_tmp_2d)
     190      CALL histwrite(nid_day,"phi"//bb2,itau_w,zx_tmp_2d,
     191     $     iim*jjmp1,ndex2d)
     192
     193      ENDIF !(bb2.EQ."500") THEN
     194c
     195      ENDDO !nlevSTD
    195196c
    196197      CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)
     
    216217      CALL histwrite(nid_day, "SWdnSFC",itau_w,zx_tmp_2d,
    217218     .                               iim*jjmp1,ndex2d)
     219c
     220      IF (OCEAN.EQ.'force ') THEN
     221c
     222      DO i=1, klon
     223      IF((pctsrf(i,is_oce).GT.epsfra).OR.
     224     .   (pctsrf(i,is_sic).GT.epsfra)) THEN
     225       zx_tmp_fi2d(i) = (radsol(i) + fluxo(i))*pctsrf(i,is_oce)+
     226     .                  fluxg(i)*pctsrf(i,is_sic)
     227      ELSE
     228       zx_tmp_fi2d(i) = 1.E+20
     229      ENDIF
     230      ENDDO
     231      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     232      CALL histwrite(nid_day,"lmt_bils",itau_w,
     233     .     zx_tmp_2d,iim*jjmp1,ndex2d)
     234c
     235      ELSE IF (OCEAN.EQ.'slab  ') THEN
     236c
     237      DO i=1, klon
     238      IF((pctsrf(i,is_oce).GT.epsfra).OR.
     239     .   (pctsrf(i,is_sic).GT.epsfra)) THEN
     240       zx_tmp_fi2d(i) = (radsol(i) + fluxo(i))*pctsrf(i,is_oce)+
     241     .                  fluxg(i)*pctsrf(i,is_sic)
     242      ELSE
     243       zx_tmp_fi2d(i) = 1.E+20
     244      ENDIF
     245      ENDDO
     246      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     247      CALL histwrite(nid_day,"slab_bils",itau_w,
     248     .     zx_tmp_2d,iim*jjmp1,ndex2d)
     249c
     250      DO i=1, klon
     251       IF(pctsrf(i,is_oce).GT.epsfra.OR.
     252     $    pctsrf(i,is_sic).GT.epsfra) THEN
     253        zx_tmp_fi2d(i)=tslab(i)
     254       ELSE
     255        zx_tmp_fi2d(i) = 1.E+20
     256       ENDIF
     257      ENDDO !i=1, klon
     258      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     259      CALL histwrite(nid_day,"tslab",itau_w,zx_tmp_2d,
     260     .     iim*jjmp1,ndex2d)
     261c
     262      CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d)
     263      CALL histwrite(nid_day,"seaice",itau_w,zx_tmp_2d,
     264     .     iim*jjmp1,ndex2d)
     265c
     266      CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d)
     267      CALL histwrite(nid_day,"siceh",itau_w,zx_tmp_2d,
     268     .     iim*jjmp1,ndex2d)
     269c
     270      ENDIF !(OCEAN.EQ.'slab  ') THEN
     271c
     272      DO i=1, klon
     273       IF (pctsrf(i,is_oce).GT.epsfra) THEN
     274        zx_tmp_fi2d(i) = fluxo(i)
     275       ELSE
     276        zx_tmp_fi2d(i) = 1.E+20
     277       ENDIF
     278      ENDDO
     279c
     280      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     281      CALL histwrite(nid_day,"fluxo",itau_w,zx_tmp_2d,
     282     .     iim*jjmp1,ndex2d)
     283c
     284      DO i=1, klon
     285       IF (pctsrf(i,is_sic).GT.epsfra) THEN
     286        zx_tmp_fi2d(i) = fluxg(i)
     287       ELSE
     288        zx_tmp_fi2d(i) = 1.E+20
     289       ENDIF
     290      ENDDO
     291c
     292      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     293      CALL histwrite(nid_day,"fluxg",itau_w,zx_tmp_2d,
     294     .     iim*jjmp1,ndex2d)
    218295c
    219296      ENDIF !lev_histday.GE.1
     
    398475      DO nsrf = 1, nbsrf
    399476C
     477        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
     478        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     479        CALL histwrite(nid_day,"pourc_"//clnsurf(nsrf),itau_w,
     480     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     481C
    400482        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
    401483        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    402         CALL histwrite(nid_day,"pourc_"//clnsurf(nsrf),itau_w,
     484        CALL histwrite(nid_day,"fract_"//clnsurf(nsrf),itau_w,
    403485     $      zx_tmp_2d,iim*jjmp1,ndex2d)
    404486C
     
    444526      ENDIF !lev_histday.GE.4
    445527c
     528      IF(lev_histday.GE.5) THEN !lev_histday.GE.5
     529c
     530c rajout sorties F. Aires
     531c
     532      CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw0,zx_tmp_2d)
     533      CALL histwrite(nid_day,"tops0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     534c
     535      CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw0,zx_tmp_2d)
     536      CALL histwrite(nid_day,"topl0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     537c
     538      CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw0,zx_tmp_2d)
     539      CALL histwrite(nid_day,"sols0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     540c
     541      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw0,zx_tmp_2d)
     542      CALL histwrite(nid_day,"soll0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     543c
     544      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldfra, zx_tmp_3d)
     545      CALL histwrite(nid_day,"rneb",itau_w,zx_tmp_3d,
     546     .                                   iim*jjmp1*klev,ndex3d)
     547c
     548      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, rnebcon, zx_tmp_3d)
     549      CALL histwrite(nid_day,"rnebcon",itau_w,zx_tmp_3d,
     550     .                                   iim*jjmp1*klev,ndex3d)
     551c
     552      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, flwc,zx_tmp_3d)
     553      CALL histwrite(nid_day,"lwcon",itau_w,zx_tmp_3d,
     554     .               iim*jjmp1*klev,ndex3d)
     555c
     556      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fiwc,zx_tmp_3d)
     557      CALL histwrite(nid_day,"iwcon",itau_w,zx_tmp_3d,
     558     .               iim*jjmp1*klev,ndex3d)
     559c
     560      zx_tmp_fi2d(1:klon) = flwp(1:klon)
     561      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     562      CALL histwrite(nid_day,"lwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     563c
     564      zx_tmp_fi2d(1:klon) = fiwp(1:klon)
     565      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     566      CALL histwrite(nid_day,"iwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     567c
     568      CALL gr_fi_ecrit(1,klon,iim,jjmp1, meantaucld,zx_tmp_2d)
     569      CALL histwrite(nid_day,"meantaucld",itau_w,zx_tmp_2d,
     570     .               iim*jjmp1,ndex2d)
     571c
     572      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldtau,zx_tmp_3d)
     573      CALL histwrite(nid_day,"cldtau",itau_w,zx_tmp_3d,
     574     .               iim*jjmp1*klev,ndex3d)
     575c
     576      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldemi,zx_tmp_3d)
     577      CALL histwrite(nid_day,"cldemi",itau_w,zx_tmp_3d,
     578     .               iim*jjmp1*klev,ndex3d)
     579c
     580      ENDIF !lev_histday.GE.5
    446581c=================================================================
    447582c=================================================================
  • 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
  • LMDZ4/trunk/libf/phylmd/write_histhf3d.h

    r524 r644  
    1 !
    2 ! $Header$
    3 !
    4 c     if (ok_hf) then
    5 
    6 c   Comprendre comment marche el i=nint(zout/zsto)
    71c
    8 c     print*,'ACRITURE HF !!! ACRITURE HF !!! ACRITURE HF !!! '
     2c $Header$
     3c
     4c
    95      ndex2d = 0
    106      ndex3d = 0
    117c
    12       zsto = dtime
    13       zout = dtime * ecrit_hf
    148      itau_w = itau_phy + itap
    15 c
    16 c     IF(lev_histhf.GE.1) THEN
    179c
    1810c Champs 3D:
     
    3426     .                                   iim*jjmp1*klev,ndex3d)
    3527c
    36 c     ENDIF !lev_histhf.GE.1
    37 c
    3828      if (ok_sync) then
    3929        call histsync(nid_hf3d)
    4030      endif
    41 
    42 c     endif
  • LMDZ4/trunk/libf/phylmd/write_histins.h

    r524 r644  
    114114      DO nsrf = 1, nbsrf
    115115CXXX
     116        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
     117        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     118        CALL histwrite(nid_ins,"pourc_"//clnsurf(nsrf),itau_w,
     119     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     120C
    116121        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
    117122        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    118         CALL histwrite(nid_ins,"pourc_"//clnsurf(nsrf),itau_w,
     123        CALL histwrite(nid_ins,"fract_"//clnsurf(nsrf),itau_w,
    119124     $      zx_tmp_2d,iim*jjmp1,ndex2d)
    120125C
     
    160165      CALL histwrite(nid_ins,"albslw",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    161166c
    162       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxsnow,zx_tmp_2d)
    163       CALL histwrite(nid_ins,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1,
    164      .               ndex2d)
     167cIM: 140404   CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxsnow,zx_tmp_2d)
     168c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d)
     169c     CALL histwrite(nid_ins,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1,
     170c    .               ndex2d)
    165171c
    166172      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxrugs,zx_tmp_2d)
    167173      CALL histwrite(nid_ins,"rugs",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     174c
     175cIM cf. AM 081204 BEG
     176c
     177cHBTM2
     178c
     179c
     180      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d)
     181      CALL histwrite(nid_ins,"s_pblh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     182c
     183      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d)
     184      CALL histwrite(nid_ins,"s_pblt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     185c
     186      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d)
     187      CALL histwrite(nid_ins,"s_lcl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     188c
     189      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d)
     190      CALL histwrite(nid_ins,"s_capCL",itau_w,zx_tmp_2d,iim*jjmp1,
     191     .               ndex2d)
     192c
     193      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d)
     194      CALL histwrite(nid_ins,"s_oliqCL",itau_w,zx_tmp_2d,iim*jjmp1,
     195     .               ndex2d)
     196c
     197      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d)
     198      CALL histwrite(nid_ins,"s_cteiCL",itau_w,zx_tmp_2d,iim*jjmp1,
     199     .               ndex2d)
     200c
     201      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d)
     202      CALL histwrite(nid_ins,"s_therm",itau_w,zx_tmp_2d,iim*jjmp1,
     203     .               ndex2d)
     204c
     205      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d)
     206      CALL histwrite(nid_ins,"s_trmb1",itau_w,zx_tmp_2d,iim*jjmp1,
     207     .               ndex2d)
     208c
     209      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d)
     210      CALL histwrite(nid_ins,"s_trmb2",itau_w,zx_tmp_2d,iim*jjmp1,
     211     .               ndex2d)
     212c
     213      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d)
     214      CALL histwrite(nid_ins,"s_trmb3",itau_w,zx_tmp_2d,iim*jjmp1,
     215     .               ndex2d)
     216c
     217cIM cf. AM 081204 END
    168218c
    169219c Champs 3D:
  • LMDZ4/trunk/libf/phylmd/write_histmth.h

    r619 r644  
    1 !
    2 ! $Header$
    3 !
     1c
     2c $Header$
     3c
    44      IF (ok_mensuel) THEN
    55c
     
    77      ndex3d = 0
    88
    9          zsto = dtime
    10          zout = dtime * ecrit_mth
    119         itau_w = itau_phy + itap
    1210
    13       i = NINT(zout/zsto)
     11c
     12      IF(type_run.EQ."CLIM".OR.type_run.EQ."ENSP") THEN
    1413c
    1514      IF(lev_histmth.GE.1) THEN
     
    2019      CALL histwrite(nid_mth,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    2120C
    22       i = NINT(zout/zsto)
     21cIM 310804   CALL gr_fi_ecrit(1,klon,iim,jjmp1,paire,zx_tmp_2d)
    2322      CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)
    2423      CALL histwrite(nid_mth,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    2524c
    26       zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, is_ter)
    27       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     25      zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_ter)* 100.
     26      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    2827      CALL histwrite(nid_mth,"pourc_"//clnsurf(is_ter),itau_w,
     28     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     29c
     30      zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_ter)
     31      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     32      CALL histwrite(nid_mth,"fract_"//clnsurf(is_ter),itau_w,
    2933     $      zx_tmp_2d,iim*jjmp1,ndex2d)
    3034c
     
    121125      CALL histwrite(nid_mth,"snow",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    122126c
    123       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxsnow,zx_tmp_2d)
    124       CALL histwrite(nid_mth,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1,
    125      .               ndex2d)
    126 c
    127 cIM: 071003
    128 c     zx_tmp_fi2d(1:klon)=evap(1:klon)*86400.
    129 c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     127c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d)
     128c     CALL histwrite(nid_mth,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1,
     129c    .               ndex2d)
     130c
    130131      CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d)
    131132      CALL histwrite(nid_mth,"evap",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     
    143144      CALL histwrite(nid_mth,"topl0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    144145c
    145 c     zx_tmp_fi2d(1 : klon) = ZFSUP( 1 : klon, klevp1)
    146 cIM 080304   zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 2 )
    147146      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 )
    148147      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     
    150149     .                               iim*jjmp1,ndex2d)
    151150c
    152 c
    153 c      zx_tmp_fi2d(1 : klon) = ZFSUP0( 1 : klon, klevp1)
    154 cIM 080304   zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 2 )
    155151      zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, klevp1 )
    156152      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     
    158154     .                               iim*jjmp1,ndex2d)
    159155c
    160 c      zx_tmp_fi2d(1 : klon) = ZFSDN( 1 : klon, klevp1)
    161 cIM 080304   zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 2 )
    162156      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 )
    163157      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     
    165159     .                               iim*jjmp1,ndex2d)
    166160c
    167 c      zx_tmp_fi2d(1 : klon) = ZFSDN0( 1 : klon, klevp1)
    168 cIM 080304   zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 2 )
    169161      zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, klevp1 )
    170162      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     
    243235     .                               iim*jjmp1,ndex2d)
    244236c
    245       zx_tmp_fi2d(1:klon)=sollw(1:klon)+sollwdown(1:klon)
     237cIM 080904   zx_tmp_fi2d(1:klon)=sollw(1:klon)+sollwdown(1:klon)
     238cIM 130904   zx_tmp_fi2d(1:klon)=sollw(1:klon)-sollwdown(1:klon)
     239      zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon)
    246240      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    247241      CALL histwrite(nid_mth,"LWupSFC",itau_w,zx_tmp_2d,iim*jjmp1,
    248242     .               ndex2d)
    249243c
    250       zx_tmp_fi2d(1:klon)=sollw0(1:klon)+sollwdownclr(1:klon)
     244      DO i=1, klon
     245       sollwdownclr(i)=-1.*lwdn0(i,1)
     246      ENDDO !i=1, klon
     247
     248cIM 080904   zx_tmp_fi2d(1:klon)=sollw0(1:klon)+sollwdownclr(1:klon)
     249cIM 130904   zx_tmp_fi2d(1:klon)=sollw0(1:klon)-sollwdownclr(1:klon)
     250      zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon)
    251251      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    252252      CALL histwrite(nid_mth,"LWupSFCclr",itau_w,zx_tmp_2d,iim*jjmp1,
     
    257257     .               ndex2d)
    258258c
    259       DO i=1, klon
    260        sollwdownclr(i)=lwdn0(i,1)
    261       ENDDO !i=1, klon
     259c     DO i=1, klon
     260cIM 080904     sollwdownclr(i)=lwdn0(i,1)
     261c      sollwdownclr(i)=-1.*lwdn0(i,1)
     262c     ENDDO !i=1, klon
    262263c
    263264      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdownclr,zx_tmp_2d)
    264265      CALL histwrite(nid_mth,"LWdnSFCclr",itau_w,zx_tmp_2d,
    265266     $               iim*jjmp1,ndex2d)
    266 c
    267 c
    268 c effets des aerosols
    269 c
    270 c     IF (ok_ade.OR.ok_aie) THEN
    271       zx_tmp_fi2d(1:klon) = topswai(1:klon) - topswad(1:klon)
    272 c      CALL gr_fi_ecrit(1, klon,iim,jjmp1, topswad,zx_tmp_2d)
    273       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d ,zx_tmp_2d)
    274       CALL histwrite(nid_mth,"topsad",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    275 c
    276       zx_tmp_fi2d(1:klon) = solswai(1:klon) - solswad(1:klon)
    277 c      CALL gr_fi_ecrit(1, klon,iim,jjmp1, solswad,zx_tmp_2d)
    278       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d ,zx_tmp_2d)
    279       CALL histwrite(nid_mth,"solsad",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    280 c
    281       zx_tmp_fi2d(1:klon) = topsw(1:klon) - topswai(1:klon)
    282 c      CALL gr_fi_ecrit(1, klon,iim,jjmp1, topswai,zx_tmp_2d)
    283       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d ,zx_tmp_2d)
    284       CALL histwrite(nid_mth,"topsai",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    285 c
    286       zx_tmp_fi2d(1:klon) = solsw(1:klon) - solswai(1:klon)
    287 c      CALL gr_fi_ecrit(1, klon,iim,jjmp1, solswai,zx_tmp_2d)
    288       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d ,zx_tmp_2d)
    289       CALL histwrite(nid_mth,"solsai",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    290 c     endif
    291267c
    292268      CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d)
     
    322298       CALL histwrite(nid_mth,"fqcalving",itau_w,zx_tmp_2d,iim*jjmp1,
    323299     $                ndex2d)
    324 cIM: 171003
     300c
    325301       DO nsrf = 1, nbsrf
    326302        zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
     
    334310     $      zx_tmp_2d,iim*jjmp1,ndex2d)
    335311       ENDDO
    336 cIM: 171003
    337 c
    338 cIM      if ( lev_histday.gt.1 ) then
     312c
    339313      DO nsrf = 1, nbsrf
    340314CYYY
    341        IF(nsrf.GT.1) THEN
    342         zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
     315       IF(nsrf.GT.2) THEN
     316        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
    343317        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    344318        CALL histwrite(nid_mth,"pourc_"//clnsurf(nsrf),itau_w,
    345319     $      zx_tmp_2d,iim*jjmp1,ndex2d)
    346        ENDIF !nsrf.GT.1
     320c
     321        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
     322        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     323        CALL histwrite(nid_mth,"fract_"//clnsurf(nsrf),itau_w,
     324     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     325       ENDIF !nsrf.GT.2
    347326C
    348327        zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
     
    376355     $      zx_tmp_2d,iim*jjmp1,ndex2d)
    377356C
    378 
     357       IF(1.EQ.0) THEN
     358C
     359        zx_tmp_fi2d(1:klon) = fevap(1:klon,nsrf)*pctsrf(1:klon,nsrf)
     360        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     361        CALL histwrite(nid_mth,"evapour_"//clnsurf(nsrf),itau_w,
     362     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     363C
     364        zx_tmp_fi2d(1:klon) = (rain_fall(1:klon) + snow_fall(1:klon))
     365     $                        *pctsrf(1:klon,nsrf)
     366        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     367        CALL histwrite(nid_mth,"prepour_"//clnsurf(nsrf),itau_w,
     368     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     369C
     370       ENDIF !(1.EQ.0) THEN
     371C
    379372      END DO 
    380 cIM      endif !lev_histday
    381 
    382373c
    383374      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
     
    438429c34EK
    439430c
    440       ENDIF !iflag_con.GE.3
    441 c
    442431      CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d)
    443432      CALL histwrite(nid_mth,"prw",itau_w,zx_tmp_2d,
    444433     .               iim*jjmp1,ndex2d)
    445434c
    446 c
    447 c
     435      ENDIF !iflag_con.GE.3
     436c
     437c
     438cIM cf. AM 081204 BEG
     439cHBTM2
     440c
     441c
     442      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d)
     443      CALL histwrite(nid_mth,"s_pblh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     444c
     445      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d)
     446      CALL histwrite(nid_mth,"s_pblt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     447c
     448      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d)
     449      CALL histwrite(nid_mth,"s_lcl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     450c
     451      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d)
     452      CALL histwrite(nid_mth,"s_capCL",itau_w,zx_tmp_2d,iim*jjmp1,
     453     .               ndex2d)
     454c
     455      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d)
     456      CALL histwrite(nid_mth,"s_oliqCL",itau_w,zx_tmp_2d,iim*jjmp1,
     457     .               ndex2d)
     458c
     459      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d)
     460      CALL histwrite(nid_mth,"s_cteiCL",itau_w,zx_tmp_2d,iim*jjmp1,
     461     .               ndex2d)
     462c
     463      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d)
     464      CALL histwrite(nid_mth,"s_therm",itau_w,zx_tmp_2d,iim*jjmp1,
     465     .               ndex2d)
     466c
     467      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d)
     468      CALL histwrite(nid_mth,"s_trmb1",itau_w,zx_tmp_2d,iim*jjmp1,
     469     .               ndex2d)
     470c
     471      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d)
     472      CALL histwrite(nid_mth,"s_trmb2",itau_w,zx_tmp_2d,iim*jjmp1,
     473     .               ndex2d)
     474c
     475      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d)
     476      CALL histwrite(nid_mth,"s_trmb3",itau_w,zx_tmp_2d,iim*jjmp1,
     477     .               ndex2d)
     478c
     479cIM cf. AM 081204 END
    448480c
    449481c  Champs interpolles sur des niveaux de pression
    450       DO k=1, nlevENS
    451 c
    452         CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulev(:,k),zx_tmp_2d)
    453         CALL histwrite(nid_mth,"u"//clev(k),itau_w,zx_tmp_2d,
     482      DO k=1, nlevSTD
     483c
     484c        bb=clevSTD(k)
     485c
     486c        IF(k.GE.2) THEN
     487         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
     488         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
     489c         aa=clevSTD(k)
     490c         bb=aa(1:lnblnk1(aa))
     491c        ENDIF
     492c
     493      IF(bb2.EQ."850".OR.bb2.EQ."700".OR.
     494     $   bb2.EQ."500".OR.bb2.EQ."200") THEN
     495c
     496        CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,2),zx_tmp_2d)
     497        CALL histwrite(nid_mth,"u"//bb2,itau_w,zx_tmp_2d,
    454498     $       iim*jjmp1,ndex2d)
    455499c
    456         CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlev(:,k),zx_tmp_2d)
    457         CALL histwrite(nid_mth,"v"//clev(k),itau_w,zx_tmp_2d,
     500        CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,2),zx_tmp_2d)
     501        CALL histwrite(nid_mth,"v"//bb2,itau_w,zx_tmp_2d,
    458502     $       iim*jjmp1,ndex2d)
    459503c
    460       CALL gr_fi_ecrit(1, klon,iim,jjmp1, wlev(:,k),zx_tmp_2d)
    461       CALL histwrite(nid_mth,"w"//clev(k),itau_w,zx_tmp_2d,
    462      $     iim*jjmp1,ndex2d)
    463 c
    464       CALL gr_fi_ecrit(1, klon,iim,jjmp1, philev(:,k),zx_tmp_2d)
    465       CALL histwrite(nid_mth,"phi"//clev(k),itau_w,zx_tmp_2d,
    466      $     iim*jjmp1,ndex2d)
    467 c
    468       ENDDO !nlevENS
     504      CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,2),zx_tmp_2d)
     505      CALL histwrite(nid_mth,"w"//bb2,itau_w,zx_tmp_2d,
     506     $     iim*jjmp1,ndex2d)
     507c
     508      CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,2),zx_tmp_2d)
     509      CALL histwrite(nid_mth,"phi"//bb2,itau_w,zx_tmp_2d,
     510     $     iim*jjmp1,ndex2d)
     511c
     512      ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
     513      ENDDO !nlevSTD
     514c
     515      DO i=1, klon
     516       IF (pctsrf(i,is_oce).GT.epsfra) THEN
     517        zx_tmp_fi2d(i) = fluxo(i)
     518       ELSE
     519        zx_tmp_fi2d(i) = 1.E+20
     520       ENDIF
     521      ENDDO
     522c
     523      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     524      CALL histwrite(nid_mth,"fluxo",itau_w,zx_tmp_2d,
     525     .     iim*jjmp1,ndex2d)
     526c
     527      DO i=1, klon
     528       IF (pctsrf(i,is_sic).GT.epsfra) THEN
     529        zx_tmp_fi2d(i) = fluxg(i)
     530       ELSE
     531        zx_tmp_fi2d(i) = 1.E+20
     532       ENDIF
     533      ENDDO
     534c
     535      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     536      CALL histwrite(nid_mth,"fluxg",itau_w,zx_tmp_2d,
     537     .     iim*jjmp1,ndex2d)
     538c
     539      IF (OCEAN.EQ.'force ') THEN
     540c
     541      DO i=1, klon
     542      IF((pctsrf(i,is_oce).GT.epsfra).OR.
     543     .   (pctsrf(i,is_sic).GT.epsfra)) THEN
     544       zx_tmp_fi2d(i) = (radsol(i) + fluxo(i))*pctsrf(i,is_oce)+
     545     .                  fluxg(i)*pctsrf(i,is_sic)
     546      ELSE
     547       zx_tmp_fi2d(i) = 1.E+20
     548      ENDIF
     549      ENDDO
     550      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     551      CALL histwrite(nid_mth,"lmt_bils",itau_w,
     552     .     zx_tmp_2d,iim*jjmp1,ndex2d)
     553c
     554      ELSE IF (OCEAN.EQ.'slab  ') THEN
     555c
     556      DO i=1, klon
     557      IF((pctsrf(i,is_oce).GT.epsfra).OR.
     558     .   (pctsrf(i,is_sic).GT.epsfra)) THEN
     559       zx_tmp_fi2d(i) = (radsol(i) + fluxo(i))*pctsrf(i,is_oce)+
     560     .                  fluxg(i)*pctsrf(i,is_sic)
     561      ELSE
     562       zx_tmp_fi2d(i) = 1.E+20
     563      ENDIF
     564      ENDDO
     565      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     566      CALL histwrite(nid_mth,"slab_bils",itau_w,
     567     .     zx_tmp_2d,iim*jjmp1,ndex2d)
     568c
     569      DO i=1, klon
     570       IF(pctsrf(i,is_oce).GT.epsfra.OR.
     571     $    pctsrf(i,is_sic).GT.epsfra) THEN
     572        zx_tmp_fi2d(i)=tslab(i)
     573       ELSE
     574        zx_tmp_fi2d(i) = 1.E+20
     575       ENDIF
     576      ENDDO !i=1, klon
     577      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     578      CALL histwrite(nid_mth,"tslab",itau_w,zx_tmp_2d,
     579     .     iim*jjmp1,ndex2d)
     580c
     581      CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d)
     582      CALL histwrite(nid_mth,"seaice",itau_w,zx_tmp_2d,
     583     .     iim*jjmp1,ndex2d)
     584c
     585      CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d)
     586      CALL histwrite(nid_mth,"siceh",itau_w,zx_tmp_2d,
     587     .     iim*jjmp1,ndex2d)
     588c
     589      ENDIF !OCEAN.EQ.force/slab
     590c
    469591      ENDIF !lev_histmth.GE.1
    470592c
     
    494616     .                                   iim*jjmp1*klev,ndex3d)
    495617c
    496 cIM: 071003
    497618c     zx_tmp_fi3d(1:klon,1:klev)=qx(1:klon,1:klev,ivap)/
    498619c    .                         (1-qx(1:klon,1:klev,ivap))
     
    533654     .                                   iim*jjmp1*klev,ndex3d)
    534655c
    535       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, wo, zx_tmp_3d)
     656      DO k=1, klev
     657       DO i=1, klon
     658cIM 151004      zx_tmp_fi3d(i,k)=MAX(wo(i,k),1.0e-12)*RG/46.6968
     659c    $                    /(paprs(i,k)-paprs(i,k+1))
     660c    $                    *(paprs(i,1)/101325.0)
     661c        zx_tmp2_fi3d(i,k)=MAX(wo(i,k)*1.0e+6,1.0e-6)*RG/46.6968
     662         zx_tmp_fi3d(i,k)=wo(i,k)*RG/46.6968
     663     $                    /(paprs(i,k)-paprs(i,k+1))
     664     $                    *(paprs(i,1)/101325.0)
     665       ENDDO !i
     666      ENDDO !k
     667c
     668c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, wo, zx_tmp_3d)
     669c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp2_fi3d,zx_tmp_3d)
     670      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    536671      CALL histwrite(nid_mth,"ozone",itau_w,zx_tmp_3d,
    537672     .                                   iim*jjmp1*klev,ndex3d)
    538673c
    539 cIM 22.03.04 BEG
    540674      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d)
    541675      CALL histwrite(nid_mth,"dtphy",itau_w,zx_tmp_3d,
     
    546680      CALL histwrite(nid_mth,"dqphy",itau_w,zx_tmp_3d,
    547681     .                                   iim*jjmp1*klev,ndex3d)
    548 cIM 22.03.04 END
    549682c
    550683      ENDIF !lev_histmth.GE.2
     
    586719     .                                   iim*jjmp1*klev,ndex3d)
    587720c
    588       IF (iflag_con.GE.3) THEN
    589 c
    590721      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, Ma, zx_tmp_3d)
    591722      CALL histwrite(nid_mth,"Ma",itau_w,zx_tmp_3d,
     
    604735     .                                   iim*jjmp1*klev,ndex3d)
    605736c
    606       ENDIF !iflag_con.GE.3
    607737c
    608738      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d)
     
    620750     .                                   iim*jjmp1*klev,ndex3d)
    621751c
    622       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_con, zx_tmp_3d)
     752      zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
     753      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    623754      CALL histwrite(nid_mth,"dqcon",itau_w,zx_tmp_3d,
    624755     .                                   iim*jjmp1*klev,ndex3d)
     
    629760      CALL histwrite(nid_mth,"dtlsc",itau_w,zx_tmp_3d,
    630761     .                                   iim*jjmp1*klev,ndex3d)
    631 cIM: 071003
    632762cIM: 101003 : K/30min ==> K/s
    633763      zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+
     
    637767     .                                   iim*jjmp1*klev,ndex3d)
    638768c
    639       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_lsc, zx_tmp_3d)
     769      zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys
     770      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    640771      CALL histwrite(nid_mth,"dqlsc",itau_w,zx_tmp_3d,
    641772     .                                   iim*jjmp1*klev,ndex3d)
     
    647778     .                                   iim*jjmp1*klev,ndex3d)
    648779c
    649       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_vdf, zx_tmp_3d)
     780      zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
     781      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    650782      CALL histwrite(nid_mth,"dqvdf",itau_w,zx_tmp_3d,
    651783     .                                   iim*jjmp1*klev,ndex3d)
     
    657789     .                                   iim*jjmp1*klev,ndex3d)
    658790c
    659       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_eva, zx_tmp_3d)
     791      zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys
     792      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    660793      CALL histwrite(nid_mth,"dqeva",itau_w,zx_tmp_3d,
    661794     .                                   iim*jjmp1*klev,ndex3d)
     
    677810     .                                   iim*jjmp1*klev,ndex3d)
    678811c
    679       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_ajs, zx_tmp_3d)
     812      zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys
     813      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    680814      CALL histwrite(nid_mth,"dqajs",itau_w,zx_tmp_3d,
    681815     .                                   iim*jjmp1*klev,ndex3d)
    682816c
    683817cIM: 101003 : K/day ==> K/s
    684 cIM: LMD_ARMIP3   zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)*pdtphys/RDAY
    685818      zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY
    686819      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     
    689822c
    690823cIM: 101003 : K/day ==> K/s     
    691 cIM: LMD_ARMIP3   zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)*pdtphys/RDAY
    692824      zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)/RDAY
    693825      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     
    696828c
    697829cIM: 101003 : K/day ==> K/s     
    698 cIM: LMD_ARMIP3     zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)*pdtphys/RDAY
    699830      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY
    700831      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     
    703834c
    704835cIM: 101003 : K/day ==> K/s     
    705 cIM: LMD_ARMIP3     zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)*pdtphys/RDAY
    706836      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)/RDAY
    707837      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     
    715845     .                                   iim*jjmp1*klev,ndex3d)
    716846c
    717       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_vdf, zx_tmp_3d)
     847      zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
     848      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    718849      CALL histwrite(nid_mth,"duvdf",itau_w,zx_tmp_3d,
    719850     .                                   iim*jjmp1*klev,ndex3d)
    720851c
    721       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_vdf, zx_tmp_3d)
     852      zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
     853      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    722854      CALL histwrite(nid_mth,"dvvdf",itau_w,zx_tmp_3d,
    723855     .                                   iim*jjmp1*klev,ndex3d)
    724856c
    725857      IF (ok_orodr) THEN
    726       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_oro, zx_tmp_3d)
     858      zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
     859      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    727860      CALL histwrite(nid_mth,"duoro",itau_w,zx_tmp_3d,
    728861     .                                   iim*jjmp1*klev,ndex3d)
    729862c
    730       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_oro, zx_tmp_3d)
     863      zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
     864      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    731865      CALL histwrite(nid_mth,"dvoro",itau_w,zx_tmp_3d,
    732866     .                                   iim*jjmp1*klev,ndex3d)
     
    735869C
    736870      IF (ok_orolf) THEN
    737       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_lif, zx_tmp_3d)
     871      zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
     872      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    738873      CALL histwrite(nid_mth,"dulif",itau_w,zx_tmp_3d,
    739874     .                                   iim*jjmp1*klev,ndex3d)
    740875c
    741       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_lif, zx_tmp_3d)
     876      zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
     877      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    742878      CALL histwrite(nid_mth,"dvlif",itau_w,zx_tmp_3d,
    743879     .                                   iim*jjmp1*klev,ndex3d)
    744880      ENDIF
    745881C
    746 c
    747 c effets des aerosols
    748 c
    749 c     IF (ok_ade.OR.ok_aie) THEN
    750       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, re, zx_tmp_3d)
    751       CALL histwrite(nid_mth,"re",itau_w,zx_tmp_3d,
    752      .                                   iim*jjmp1*klev,ndex3d)
    753 c
    754       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fl, zx_tmp_3d)
    755       CALL histwrite(nid_mth,"redenom",itau_w,zx_tmp_3d,
    756      .                                   iim*jjmp1*klev,ndex3d)
    757 c
    758       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldtau, zx_tmp_3d)
    759       CALL histwrite(nid_mth,"tau",itau_w,zx_tmp_3d,
    760      .                                   iim*jjmp1*klev,ndex3d)
    761 c
    762       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldtaupi, zx_tmp_3d)
    763       CALL histwrite(nid_mth,"taupi",itau_w,zx_tmp_3d,
    764      .                                   iim*jjmp1*klev,ndex3d)
    765 c     endif
    766 c
    767882      IF (nqmax.GE.3) THEN
    768       DO iq=3,nqmax
    769          CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq), zx_tmp_3d)
    770          CALL histwrite(nid_mth,tnom(iq),itau_w,zx_tmp_3d,
    771      .                                   iim*jjmp1*klev,ndex3d)
    772       ENDDO
     883      DO iq=1,nqmax-2
     884      IF (iq.LE.99) THEN
     885         CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq+2), zx_tmp_3d)
     886         WRITE(str2,'(i2.2)') iq
     887         CALL histwrite(nid_mth,"trac"//str2,itau_w,zx_tmp_3d,
     888     .                                   iim*jjmp1*klev,ndex3d)
     889      ELSE
     890         PRINT*, "Trop de traceurs"
     891         CALL abort
    773892      ENDIF
     893      ENDDO
     894      ENDIF
    774895c
    775896      ENDIF !lev_histmth.GE.4
     897c
     898      ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN
     899c
     900      IF(lev_histmth.GE.1) THEN
     901c
     902c Champs 2D:
     903c
     904      CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis/RG,zx_tmp_2d)
     905      CALL histwrite(nid_mth,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     906C
     907cIM 310804   CALL gr_fi_ecrit(1,klon,iim,jjmp1,paire,zx_tmp_2d)
     908      CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)
     909      CALL histwrite(nid_mth,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     910c
     911      zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_ter)* 100.
     912      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d)
     913      CALL histwrite(nid_mth,"pourc_"//clnsurf(is_ter),itau_w,
     914     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     915c
     916      zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_ter)
     917      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d)
     918      CALL histwrite(nid_mth,"fract_"//clnsurf(is_ter),itau_w,
     919     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     920c
     921      zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_lic)* 100.
     922      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d)
     923      CALL histwrite(nid_mth,"pourc_"//clnsurf(is_lic),itau_w,
     924     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     925c
     926      zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_lic)
     927      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d)
     928      CALL histwrite(nid_mth,"fract_"//clnsurf(is_lic),itau_w,
     929     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     930c
     931      zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_sic)* 100.
     932      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     933      CALL histwrite(nid_mth,"pourc_"//clnsurf(is_sic),itau_w,
     934     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     935c
     936      zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_sic)
     937      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     938      CALL histwrite(nid_mth,"fract_"//clnsurf(is_sic),itau_w,
     939     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     940c
     941      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfluxlat,zx_tmp_2d)
     942      CALL histwrite(nid_mth,"flat",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     943c
     944      zx_tmp_fi2d(1 : klon) = topsw(1:klon)-toplw(1:klon)
     945      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     946      CALL histwrite(nid_mth,"bilTOA",itau_w,
     947     .               zx_tmp_2d,iim*jjmp1,ndex2d)
     948c
     949c     IF(itap.EQ.ecrit_mth) THEN
     950c       DO i=1, klon
     951c         IF(nday_clr(i).GT.0.) THEN
     952c          tops01(i)=tops01(i)/nday_clr(i)
     953c         ELSE
     954c          tops01(i)=1.e+20
     955c         ENDIF
     956c       ENDDO
     957c       CALL gr_fi_ecrit(1, klon,iim,jjmp1, tops01,zx_tmp_2d)
     958c       CALL histwrite(nid_mth,"tops01",itau_w,zx_tmp_2d,
     959c    .       iim*jjmp1,ndex2d)
     960c     ENDIF !itap.EQ.ecrit_mth
     961c
     962c220404 BEG
     963c
     964c temperature tendency due to total diabatic heating
     965       DO l=1, klev
     966       DO i=1, klon
     967       d_t(i,l) = (t_seri(i,l)-t(i,l))/dtime
     968       ENDDO !i
     969       ENDDO !l
     970c
     971      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t,zx_tmp_3d)
     972      CALL histwrite(nid_mth,"dtdia",itau_w,zx_tmp_3d,
     973     $       iim*jjmp1*klev,ndex3d)
     974c
     975c temperature tendency due to SW radiation
     976       DO l=1, klev
     977       DO i=1, klon
     978       zx_tmp_fi3d(i,l)=heat(i,l)/RDAY
     979       ENDDO !i
     980       ENDDO !l
     981c
     982      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
     983      CALL histwrite(nid_mth,"dtsw",itau_w,zx_tmp_3d,
     984     $       iim*jjmp1*klev,ndex3d)
     985c
     986c temperature tendency due to LW radiation
     987       DO l=1, klev
     988       DO i=1, klon
     989        zx_tmp_fi3d(i,l)=-1*cool(i,l)/RDAY
     990       ENDDO !i
     991       ENDDO !l
     992c
     993      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
     994      CALL histwrite(nid_mth,"dtlw",itau_w,zx_tmp_3d,
     995     $       iim*jjmp1*klev,ndex3d)
     996c
     997c  temperature tendency due to moist convective processes
     998       DO l=1, klev
     999       DO i=1, klon
     1000        zx_tmp_fi3d(i,l)=d_t_con(i,l)/pdtphys
     1001       ENDDO !i
     1002       ENDDO !l
     1003c
     1004      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
     1005      CALL histwrite(nid_mth,"dtcon",itau_w,zx_tmp_3d,
     1006     $       iim*jjmp1*klev,ndex3d)
     1007c
     1008c temperature tendency due to dry convective processes
     1009       DO l=1, klev
     1010       DO i=1, klon
     1011        zx_tmp_fi3d(i,l)=d_t_ajs(i,l)/pdtphys
     1012       ENDDO !i
     1013       ENDDO !l
     1014c
     1015      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
     1016      CALL histwrite(nid_mth,"dtajs",itau_w,zx_tmp_3d,
     1017     $       iim*jjmp1*klev,ndex3d)
     1018c
     1019c  temperature tendency due to large scale precipitation
     1020       DO l=1, klev
     1021       DO i=1, klon
     1022       zx_tmp_fi3d(i,l)=d_t_lsc(i,l)/pdtphys
     1023       ENDDO !i
     1024       ENDDO !l
     1025c
     1026      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
     1027      CALL histwrite(nid_mth,"dtlsc",itau_w,zx_tmp_3d,
     1028     $       iim*jjmp1*klev,ndex3d)
     1029c
     1030c  total moisture tendency due to diabatic processes
     1031       DO l=1, klev
     1032       DO i=1, klon
     1033        d_qx(i,l,ivap) = ( q_seri(i,l) - qx(i,l,ivap) ) / dtime
     1034        zx_tmp_fi3d(i,l)=d_qx(i,l,ivap)
     1035       ENDDO !i
     1036       ENDDO !l
     1037c
     1038      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
     1039      CALL histwrite(nid_mth,"dqdia",itau_w,zx_tmp_3d,
     1040     $       iim*jjmp1*klev,ndex3d)
     1041c
     1042cBEG 210404 BEG
     1043c
     1044      IF(ok_orodr.AND.ok_orolf) THEN
     1045      DO k = 1, klev
     1046      DO i = 1, klon
     1047        d_u_oli(i,k) = (d_u_oro(i,k) + d_u_lif(i,k))/pdtphys
     1048        d_v_oli(i,k) = (d_v_oro(i,k) + d_v_lif(i,k))/pdtphys
     1049      ENDDO
     1050      ENDDO
     1051      ENDIF !(ok_orodr.AND.ok_orolf) THEN
     1052c
     1053      CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_u_oli,zx_tmp_3d)
     1054      CALL histwrite(nid_mth,"duoli",itau_w,zx_tmp_3d,
     1055     $       iim*jjmp1*klev,ndex3d)
     1056c
     1057      CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_v_oli,zx_tmp_3d)
     1058      CALL histwrite(nid_mth,"dvoli",itau_w,zx_tmp_3d,
     1059     $       iim*jjmp1*klev,ndex3d)
     1060c
     1061      zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys
     1062      CALL gr_fi_ecrit(klev, klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1063      CALL histwrite(nid_mth,"ducon",itau_w,zx_tmp_3d,
     1064     $       iim*jjmp1*klev,ndex3d)
     1065c
     1066      zx_tmp_fi3d(1:klon,1:klev)=d_v_con(1:klon,1:klev)/pdtphys
     1067      CALL gr_fi_ecrit(klev, klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1068      CALL histwrite(nid_mth,"dvcon",itau_w,zx_tmp_3d,
     1069     $       iim*jjmp1*klev,ndex3d)
     1070c
     1071      CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_u,zx_tmp_3d)
     1072      CALL histwrite(nid_mth,"dutot",itau_w,zx_tmp_3d,
     1073     $       iim*jjmp1*klev,ndex3d)
     1074c
     1075      CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_v,zx_tmp_3d)
     1076      CALL histwrite(nid_mth,"dvtot",itau_w,zx_tmp_3d,
     1077     $       iim*jjmp1*klev,ndex3d)
     1078
     1079cEND 210404 END
     1080c
     1081c cldtrue
     1082c     CALL gr_fi_ecrit(klev, klon,iim,jjmp1,cldtrue,zx_tmp_3d)
     1083c     CALL histwrite(nid_mth,"cldtrue",itau_w,zx_tmp_3d,
     1084c    $       iim*jjmp1*klev,ndex3d)
     1085c
     1086c     CALL gr_fi_ecrit(klev, klon,iim,jjmp1,cldTOA,zx_tmp_3d)
     1087c     CALL histwrite(nid_mth,"cldTOA",itau_w,zx_tmp_3d,
     1088c    $       iim*jjmp1*klev,ndex3d)
     1089c
     1090c     CALL gr_fi_ecrit(klev, klon,iim,jjmp1,cldSFC,zx_tmp_3d)
     1091c     CALL histwrite(nid_mth,"cldSFC",itau_w,zx_tmp_3d,
     1092c    $       iim*jjmp1*klev,ndex3d)
     1093c
     1094      DO i=1, klon
     1095cIM 151004    zx_tmp_fi2d(i)=GWDtaux1(i,1)-GWDtaux0(i,1)
     1096       zx_tmp_fi2d(i)=zustrdr(i)+zustrli(i)
     1097      ENDDO
     1098      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1099      CALL histwrite(nid_mth,"GWDtaux",
     1100     $               itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1101c
     1102      DO i=1, klon
     1103cIM 151004    zx_tmp_fi2d(i)=GWDtauy1(i,1)-GWDtauy0(i,1)
     1104       zx_tmp_fi2d(i)=zvstrdr(i)+zvstrli(i)
     1105      ENDDO
     1106      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1107      CALL histwrite(nid_mth,"GWDtauy",
     1108     $               itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1109c
     1110c220404 END
     1111cAMIP2 END
     1112c
     1113      CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)
     1114      CALL histwrite(nid_mth,"slp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1115
     1116      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)
     1117      CALL histwrite(nid_mth,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1118c
     1119      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d)
     1120      CALL histwrite(nid_mth,"t2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1121c
     1122c ENSEMBLES BEG
     1123      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d)
     1124      CALL histwrite(nid_mth,"t2m_min",itau_w,zx_tmp_2d,
     1125     .               iim*jjmp1,ndex2d)
     1126c
     1127      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d)
     1128      CALL histwrite(nid_mth,"t2m_max",itau_w,zx_tmp_2d,
     1129     .               iim*jjmp1,ndex2d)
     1130c
     1131c     CALL gr_fi_ecrit(1,klon,iim,jjmp1,ftsoil(:,1,is_ter),zx_tmp_2d)
     1132c     CALL gr_fi_ecrit(1,klon,iim,jjmp1,ftsol(:,is_ter),zx_tmp_2d)
     1133c     CALL gr_fi_ecrit(1,klon,iim,jjmp1,ztsol,zx_tmp_2d)
     1134c     CALL histwrite(nid_mth,"tsoil",itau_w,zx_tmp_2d,
     1135c    .               iim*jjmp1,ndex2d)
     1136c
     1137      DO i=1, klon
     1138       zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
     1139      ENDDO
     1140      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1141      CALL histwrite(nid_mth,"wind10m",itau_w,zx_tmp_2d,
     1142     $     iim*jjmp1,ndex2d)
     1143c
     1144      DO i = 1, klon
     1145         zx_tmp_fi2d(i) = pctsrf(i,is_sic)
     1146      ENDDO
     1147      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1148      CALL histwrite(nid_mth,"sicf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1149c
     1150c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
     1151c     CALL histwrite(nid_mth,"temp",itau_w,zx_tmp_3d,
     1152c    .                                   iim*jjmp1*klev,ndex3d)
     1153c
     1154c ENSEMBLES END
     1155c
     1156      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d)
     1157      CALL histwrite(nid_mth,"q2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1158c
     1159      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d)
     1160      CALL histwrite(nid_mth,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1161C
     1162      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d)
     1163      CALL histwrite(nid_mth,"v10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1164C
     1165      DO i = 1, klon
     1166         zx_tmp_fi2d(i) = paprs(i,1)
     1167      ENDDO
     1168      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1169      CALL histwrite(nid_mth,"psol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1170c
     1171      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxqsurf,zx_tmp_2d)
     1172      CALL histwrite(nid_mth,"qsurf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1173c
     1174      if (.not. ok_veget) then
     1175          CALL gr_fi_ecrit(1, klon,iim,jjmp1, qsol,zx_tmp_2d)
     1176          CALL histwrite(nid_mth,"qsol",itau_w,zx_tmp_2d,iim*jjmp1
     1177     $        ,ndex2d)
     1178      endif
     1179c
     1180      DO i = 1, klon
     1181         zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
     1182      ENDDO
     1183      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1184      CALL histwrite(nid_mth,"precip",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1185c
     1186      CALL gr_fi_ecrit(1, klon,iim,jjmp1, nday_rain,zx_tmp_2d)
     1187      CALL histwrite(nid_mth,"ndayrain",itau_w,zx_tmp_2d,
     1188     $               iim*jjmp1,ndex2d)
     1189c
     1190      DO i = 1, klon
     1191         zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i)
     1192      ENDDO
     1193      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1194      CALL histwrite(nid_mth,"plul",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1195c
     1196      DO i = 1, klon
     1197         zx_tmp_fi2d(i) = rain_con(i) + snow_con(i)
     1198      ENDDO
     1199      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1200      CALL histwrite(nid_mth,"pluc",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1201c
     1202      CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d)
     1203      CALL histwrite(nid_mth,"snowf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1204c
     1205c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d)
     1206c     CALL histwrite(nid_mth,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1,
     1207c    .               ndex2d)
     1208c
     1209      CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d)
     1210      CALL histwrite(nid_mth,"evap",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1211c
     1212      CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d)
     1213      CALL histwrite(nid_mth,"tops",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1214c
     1215      CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw0,zx_tmp_2d)
     1216      CALL histwrite(nid_mth,"tops0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1217c
     1218      CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
     1219      CALL histwrite(nid_mth,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1220c
     1221      CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw0,zx_tmp_2d)
     1222      CALL histwrite(nid_mth,"topl0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1223c
     1224      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 )
     1225      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1226      CALL histwrite(nid_mth, "SWupTOA",itau_w,zx_tmp_2d,
     1227     .                               iim*jjmp1,ndex2d)
     1228c
     1229c
     1230      zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, klevp1 )
     1231      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1232      CALL histwrite(nid_mth, "SWupTOAclr",itau_w,zx_tmp_2d,
     1233     .                               iim*jjmp1,ndex2d)
     1234c
     1235      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 )
     1236      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1237      CALL histwrite(nid_mth, "SWdnTOA",itau_w,zx_tmp_2d,
     1238     .                               iim*jjmp1,ndex2d)
     1239c
     1240      zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, klevp1 )
     1241      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1242      CALL histwrite(nid_mth, "SWdnTOAclr",itau_w,zx_tmp_2d,
     1243     .                               iim*jjmp1,ndex2d)
     1244c
     1245      CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200,zx_tmp_2d)
     1246      CALL histwrite(nid_mth,"SWup200",itau_w,zx_tmp_2d,
     1247     $     iim*jjmp1,ndex2d)
     1248c
     1249      CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200clr,zx_tmp_2d)
     1250      CALL histwrite(nid_mth,"SWup200clr",itau_w,zx_tmp_2d,
     1251     $     iim*jjmp1,ndex2d)
     1252c
     1253      CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200,zx_tmp_2d)
     1254      CALL histwrite(nid_mth,"SWdn200",itau_w,zx_tmp_2d,
     1255     $     iim*jjmp1,ndex2d)
     1256c
     1257      CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200clr,zx_tmp_2d)
     1258      CALL histwrite(nid_mth,"SWdn200clr",itau_w,zx_tmp_2d,
     1259     $     iim*jjmp1,ndex2d)
     1260c
     1261      CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200,zx_tmp_2d)
     1262      CALL histwrite(nid_mth,"LWup200",itau_w,zx_tmp_2d,
     1263     $     iim*jjmp1,ndex2d)
     1264c
     1265      CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200clr,zx_tmp_2d)
     1266      CALL histwrite(nid_mth,"LWup200clr",itau_w,zx_tmp_2d,
     1267     $     iim*jjmp1,ndex2d)
     1268c
     1269      zx_tmp_fi2d(1:klon)=-1*LWdn200(1:klon)
     1270      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1271      CALL histwrite(nid_mth,"LWdn200",itau_w,zx_tmp_2d,
     1272     $     iim*jjmp1,ndex2d)
     1273c
     1274      zx_tmp_fi2d(1:klon)=-1*LWdn200clr(1:klon)
     1275      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1276      CALL histwrite(nid_mth,"LWdn200clr",itau_w,zx_tmp_2d,
     1277     $     iim*jjmp1,ndex2d)
     1278c
     1279c200 END
     1280      CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d)
     1281      CALL histwrite(nid_mth,"sols",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1282c
     1283      CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw0,zx_tmp_2d)
     1284      CALL histwrite(nid_mth,"sols0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1285c
     1286      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d)
     1287      CALL histwrite(nid_mth,"soll",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1288c
     1289      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw0,zx_tmp_2d)
     1290      CALL histwrite(nid_mth,"soll0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1291c
     1292c      zx_tmp_fi2d(1 : klon) = ZFSUP( 1 : klon, 1)
     1293      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 )
     1294      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1295      CALL histwrite(nid_mth, "SWupSFC",itau_w,zx_tmp_2d,
     1296     .                               iim*jjmp1,ndex2d)
     1297c
     1298c      zx_tmp_fi2d(1 : klon) = ZFSUP0( 1 : klon, 1)
     1299      zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 1 )
     1300      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1301      CALL histwrite(nid_mth, "SWupSFCclr",itau_w,zx_tmp_2d,
     1302     .                               iim*jjmp1,ndex2d)
     1303c
     1304c      zx_tmp_fi2d(1 : klon) = ZFSDN( 1 : klon, 1)
     1305      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 )
     1306      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1307      CALL histwrite(nid_mth, "SWdnSFC",itau_w,zx_tmp_2d,
     1308     .                               iim*jjmp1,ndex2d)
     1309c
     1310c      zx_tmp_fi2d(1 : klon) = ZFSDN0( 1 : klon, 1)
     1311      zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 1 )
     1312      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1313      CALL histwrite(nid_mth, "SWdnSFCclr",itau_w,zx_tmp_2d,
     1314     .                               iim*jjmp1,ndex2d)
     1315c
     1316cIM 080904   zx_tmp_fi2d(1:klon)=sollw(1:klon)+sollwdown(1:klon)
     1317cIM 130904   zx_tmp_fi2d(1:klon)=sollw(1:klon)-sollwdown(1:klon)
     1318      zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon)
     1319      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     1320      CALL histwrite(nid_mth,"LWupSFC",itau_w,zx_tmp_2d,iim*jjmp1,
     1321     .               ndex2d)
     1322c
     1323      DO i=1, klon
     1324       sollwdownclr(i)=-1.*lwdn0(i,1)
     1325      ENDDO !i=1, klon
     1326c
     1327cIM 080904   zx_tmp_fi2d(1:klon)=sollw0(1:klon)+sollwdownclr(1:klon)
     1328cIM 130904   zx_tmp_fi2d(1:klon)=sollw0(1:klon)-sollwdownclr(1:klon)
     1329      zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon)
     1330      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     1331      CALL histwrite(nid_mth,"LWupSFCclr",itau_w,zx_tmp_2d,iim*jjmp1,
     1332     .               ndex2d)
     1333c
     1334      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
     1335      CALL histwrite(nid_mth,"LWdnSFC",itau_w,zx_tmp_2d,iim*jjmp1,
     1336     .               ndex2d)
     1337c
     1338c     DO i=1, klon
     1339cIM 08004    sollwdownclr(i)=lwdn0(i,1)
     1340c      sollwdownclr(i)=-1.*lwdn0(i,1)
     1341c     ENDDO !i=1, klon
     1342c
     1343      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdownclr,zx_tmp_2d)
     1344      CALL histwrite(nid_mth,"LWdnSFCclr",itau_w,zx_tmp_2d,
     1345     $               iim*jjmp1,ndex2d)
     1346c
     1347      CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d)
     1348      CALL histwrite(nid_mth,"bils",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1349c
     1350      zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
     1351c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, sens,zx_tmp_2d)
     1352      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1353      CALL histwrite(nid_mth,"sens",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1354c
     1355      CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d)
     1356      CALL histwrite(nid_mth,"fder",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1357c
     1358c
     1359c      DO i = 1, klon
     1360c         zx_tmp_fi2d(i) = fluxu(i,1)
     1361c      ENDDO
     1362c      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1363c      CALL histwrite(nid_mth,"frtu",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1364c
     1365c      DO i = 1, klon
     1366c         zx_tmp_fi2d(i) = fluxv(i,1)
     1367c      ENDDO
     1368c      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1369c      CALL histwrite(nid_mth,"frtv",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1370c
     1371c
     1372       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxffonte,zx_tmp_2d)
     1373       CALL histwrite(nid_mth,"ffonte",itau_w,zx_tmp_2d,iim*jjmp1,
     1374     $                ndex2d)
     1375c
     1376       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfqcalving,zx_tmp_2d)
     1377       CALL histwrite(nid_mth,"fqcalving",itau_w,zx_tmp_2d,iim*jjmp1,
     1378     $                ndex2d)
     1379c
     1380       DO nsrf = 1, nbsrf
     1381        zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
     1382        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1383        CALL histwrite(nid_mth,"taux_"//clnsurf(nsrf),itau_w,
     1384     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1385C     
     1386        zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
     1387        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1388        CALL histwrite(nid_mth,"tauy_"//clnsurf(nsrf),itau_w,
     1389     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1390       ENDDO
     1391c
     1392        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, is_oce)*100.
     1393        CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1394        CALL histwrite(nid_mth,"pourc_"//clnsurf(is_oce),itau_w,
     1395     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1396c
     1397        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, is_oce)
     1398        CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1399        CALL histwrite(nid_mth,"fract_"//clnsurf(is_oce),itau_w,
     1400     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1401c
     1402      DO nsrf = 1, nbsrf
     1403CYYY
     1404C
     1405        zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
     1406        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1407        CALL histwrite(nid_mth,"tsol_"//clnsurf(nsrf),itau_w,
     1408     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1409C
     1410        zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
     1411        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1412        CALL histwrite(nid_mth,"sens_"//clnsurf(nsrf),itau_w,
     1413     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1414C
     1415        zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
     1416        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1417        CALL histwrite(nid_mth,"lat_"//clnsurf(nsrf),itau_w,
     1418     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1419C
     1420        zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf)
     1421        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1422        CALL histwrite(nid_mth,"flw_"//clnsurf(nsrf),itau_w,
     1423     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1424c
     1425        zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf)
     1426        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1427        CALL histwrite(nid_mth,"fsw_"//clnsurf(nsrf),itau_w,
     1428     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1429C
     1430        zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf)
     1431        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1432        CALL histwrite(nid_mth,"wbils_"//clnsurf(nsrf),itau_w,
     1433     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1434C
     1435       IF(1.EQ.0) THEN
     1436C
     1437        zx_tmp_fi2d(1:klon) = fevap(1:klon,nsrf)*pctsrf(1:klon,nsrf)
     1438        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1439        CALL histwrite(nid_mth,"evapour_"//clnsurf(nsrf),itau_w,
     1440     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1441C
     1442        zx_tmp_fi2d(1:klon) = (rain_fall(1:klon) + snow_fall(1:klon))
     1443     $                        *pctsrf(1:klon,nsrf)
     1444        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1445        CALL histwrite(nid_mth,"prepour_"//clnsurf(nsrf),itau_w,
     1446     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1447C
     1448       ENDIF !(1.EQ.0) THEN
     1449C
     1450      END DO 
     1451c
     1452      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
     1453      CALL histwrite(nid_mth,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1454c
     1455      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
     1456      CALL histwrite(nid_mth,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1457c
     1458      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldl,zx_tmp_2d)
     1459      CALL histwrite(nid_mth,"cldl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1460c
     1461      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldm,zx_tmp_2d)
     1462      CALL histwrite(nid_mth,"cldm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1463c
     1464      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldh,zx_tmp_2d)
     1465      CALL histwrite(nid_mth,"cldh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1466c
     1467      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt*100.,zx_tmp_2d)
     1468      CALL histwrite(nid_mth,"cldt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1469c
     1470      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldq,zx_tmp_2d)
     1471      CALL histwrite(nid_mth,"cldq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1472c
     1473      zx_tmp_fi2d(1:klon) = flwp(1:klon)
     1474      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1475      CALL histwrite(nid_mth,"lwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1476c
     1477      zx_tmp_fi2d(1:klon) = fiwp(1:klon)
     1478      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1479      CALL histwrite(nid_mth,"iwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1480c
     1481      CALL gr_fi_ecrit(1, klon,iim,jjmp1, ue,zx_tmp_2d)
     1482      CALL histwrite(nid_mth,"ue",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1483c
     1484      CALL gr_fi_ecrit(1, klon,iim,jjmp1, ve,zx_tmp_2d)
     1485      CALL histwrite(nid_mth,"ve",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1486c
     1487      CALL gr_fi_ecrit(1, klon,iim,jjmp1, uq,zx_tmp_2d)
     1488      CALL histwrite(nid_mth,"uq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1489c
     1490      CALL gr_fi_ecrit(1, klon,iim,jjmp1, vq,zx_tmp_2d)
     1491      CALL histwrite(nid_mth,"vq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1492cKE43
     1493      IF (iflag_con.GE.3) THEN ! sb
     1494c
     1495      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cape,zx_tmp_2d)
     1496      CALL histwrite(nid_mth,"cape",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1497c
     1498      CALL gr_fi_ecrit(1, klon,iim,jjmp1,pbase,zx_tmp_2d)
     1499      CALL histwrite(nid_mth,"pbase",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1500c
     1501      CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_pct,zx_tmp_2d)
     1502      CALL histwrite(nid_mth,"ptop",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1503c
     1504      CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_cbmf,zx_tmp_2d)
     1505      CALL histwrite(nid_mth,"fbase",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1506c
     1507c34EK
     1508c
     1509      CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d)
     1510      CALL histwrite(nid_mth,"prw",itau_w,zx_tmp_2d,
     1511     .               iim*jjmp1,ndex2d)
     1512c
     1513      ENDIF !iflag_con.GE.3
     1514c
     1515cIM cf. AM 081204 BEG
     1516cHBTM2
     1517c
     1518c
     1519      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d)
     1520      CALL histwrite(nid_mth,"s_pblh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1521c
     1522      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d)
     1523      CALL histwrite(nid_mth,"s_pblt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1524c
     1525      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d)
     1526      CALL histwrite(nid_mth,"s_lcl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1527c
     1528      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d)
     1529      CALL histwrite(nid_mth,"s_capCL",itau_w,zx_tmp_2d,iim*jjmp1,
     1530     .               ndex2d)
     1531c
     1532      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d)
     1533      CALL histwrite(nid_mth,"s_oliqCL",itau_w,zx_tmp_2d,iim*jjmp1,
     1534     .               ndex2d)
     1535c
     1536      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d)
     1537      CALL histwrite(nid_mth,"s_cteiCL",itau_w,zx_tmp_2d,iim*jjmp1,
     1538     .               ndex2d)
     1539c
     1540      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d)
     1541      CALL histwrite(nid_mth,"s_therm",itau_w,zx_tmp_2d,iim*jjmp1,
     1542     .               ndex2d)
     1543c
     1544      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d)
     1545      CALL histwrite(nid_mth,"s_trmb1",itau_w,zx_tmp_2d,iim*jjmp1,
     1546     .               ndex2d)
     1547c
     1548      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d)
     1549      CALL histwrite(nid_mth,"s_trmb2",itau_w,zx_tmp_2d,iim*jjmp1,
     1550     .               ndex2d)
     1551c
     1552      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d)
     1553      CALL histwrite(nid_mth,"s_trmb3",itau_w,zx_tmp_2d,iim*jjmp1,
     1554     .               ndex2d)
     1555c
     1556cIM cf. AM 081204 END
     1557c
     1558c  Champs interpolles sur des niveaux de pression
     1559c     DO k=1, nlevENS
     1560      DO k=1, nlevSTD
     1561c
     1562c        bb=clevSTD(k)
     1563c
     1564c        IF(k.GE.2) THEN
     1565         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
     1566         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
     1567c         aa=clevSTD(k)
     1568c         bb=aa(1:lnblnk1(aa))
     1569c        ENDIF
     1570c
     1571       IF(bb2.EQ."850".OR.bb2.EQ."700"
     1572     $   .OR.bb2.EQ."500".OR.bb2.EQ."200") THEN
     1573c
     1574        CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,2),zx_tmp_2d)
     1575        CALL histwrite(nid_mth,"u"//bb2,itau_w,zx_tmp_2d,
     1576     $       iim*jjmp1,ndex2d)
     1577c
     1578        CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,2),zx_tmp_2d)
     1579        CALL histwrite(nid_mth,"v"//bb2,itau_w,zx_tmp_2d,
     1580     $       iim*jjmp1,ndex2d)
     1581c
     1582      CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,2),zx_tmp_2d)
     1583      CALL histwrite(nid_mth,"w"//bb2,itau_w,zx_tmp_2d,
     1584     $     iim*jjmp1,ndex2d)
     1585c
     1586      CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,2),zx_tmp_2d)
     1587      CALL histwrite(nid_mth,"phi"//bb2,itau_w,zx_tmp_2d,
     1588     $     iim*jjmp1,ndex2d)
     1589c
     1590      ENDIF !(bb2.EQ."850".OR.bb2.EQ."700"
     1591      ENDDO !nlevSTD
     1592c
     1593      DO i=1, klon
     1594       IF (pctsrf(i,is_oce).GT.epsfra) THEN
     1595        zx_tmp_fi2d(i) = fluxo(i)
     1596       ELSE
     1597        zx_tmp_fi2d(i) = 1.E+20
     1598       ENDIF
     1599      ENDDO
     1600c
     1601      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1602      CALL histwrite(nid_mth,"fluxo",itau_w,zx_tmp_2d,
     1603     .     iim*jjmp1,ndex2d)
     1604c
     1605      DO i=1, klon
     1606       IF (pctsrf(i,is_sic).GT.epsfra) THEN
     1607        zx_tmp_fi2d(i) = fluxg(i)
     1608       ELSE
     1609        zx_tmp_fi2d(i) = 1.E+20
     1610       ENDIF
     1611      ENDDO
     1612c
     1613      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1614      CALL histwrite(nid_mth,"fluxg",itau_w,zx_tmp_2d,
     1615     .     iim*jjmp1,ndex2d)
     1616c
     1617      IF (OCEAN.EQ.'force ') THEN
     1618c
     1619      DO i=1, klon
     1620      IF((pctsrf(i,is_oce).GT.epsfra).OR.
     1621     .   (pctsrf(i,is_sic).GT.epsfra)) THEN
     1622       zx_tmp_fi2d(i) = (radsol(i) + fluxo(i))*pctsrf(i,is_oce)+
     1623     .                  fluxg(i)*pctsrf(i,is_sic)
     1624      ELSE
     1625       zx_tmp_fi2d(i) = 1.E+20
     1626      ENDIF
     1627      ENDDO
     1628      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1629      CALL histwrite(nid_mth,"lmt_bils",itau_w,
     1630     .     zx_tmp_2d,iim*jjmp1,ndex2d)
     1631c
     1632      ELSE IF (OCEAN.EQ.'slab  ') THEN
     1633c
     1634c
     1635      DO i=1, klon
     1636      IF((pctsrf(i,is_oce).GT.epsfra).OR.
     1637     .   (pctsrf(i,is_sic).GT.epsfra)) THEN
     1638       zx_tmp_fi2d(i) = (radsol(i) + fluxo(i))*pctsrf(i,is_oce)+
     1639     .                  fluxg(i)*pctsrf(i,is_sic)
     1640      ELSE
     1641       zx_tmp_fi2d(i) = 1.E+20
     1642      ENDIF
     1643      ENDDO
     1644      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1645      CALL histwrite(nid_mth,"slab_bils",itau_w,
     1646     .     zx_tmp_2d,iim*jjmp1,ndex2d)
     1647c
     1648      DO i=1, klon
     1649       IF(pctsrf(i,is_oce).GT.epsfra.OR.
     1650     $    pctsrf(i,is_sic).GT.epsfra) THEN
     1651        zx_tmp_fi2d(i)=tslab(i)
     1652       ELSE
     1653        zx_tmp_fi2d(i) = 1.E+20
     1654       ENDIF
     1655      ENDDO !i=1, klon
     1656      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1657      CALL histwrite(nid_mth,"tslab",itau_w,zx_tmp_2d,
     1658     .     iim*jjmp1,ndex2d)
     1659c
     1660      CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d)
     1661      CALL histwrite(nid_mth,"seaice",itau_w,zx_tmp_2d,
     1662     .     iim*jjmp1,ndex2d)
     1663c
     1664      CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d)
     1665      CALL histwrite(nid_mth,"siceh",itau_w,zx_tmp_2d,
     1666     .     iim*jjmp1,ndex2d)
     1667c
     1668      ENDIF !OCEAN.EQ.force/slab
     1669c
     1670      ENDIF !lev_histmth.GE.1
     1671c
     1672      IF(lev_histmth.GE.2) THEN
     1673c
     1674c Champs 3D:
     1675C
     1676c
     1677      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, flwc,zx_tmp_3d)
     1678      CALL histwrite(nid_mth,"lwcon",itau_w,zx_tmp_3d,
     1679     .               iim*jjmp1*klev,ndex3d)
     1680c
     1681      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fiwc,zx_tmp_3d)
     1682      CALL histwrite(nid_mth,"iwcon",itau_w,zx_tmp_3d,
     1683     .               iim*jjmp1*klev,ndex3d)
     1684c
     1685      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
     1686      CALL histwrite(nid_mth,"temp",itau_w,zx_tmp_3d,
     1687     .                                   iim*jjmp1*klev,ndex3d)
     1688c
     1689c#ifdef histmthNMC
     1690c#include "write_histmthNMC.h"
     1691c#endif
     1692c
     1693      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d)
     1694      CALL histwrite(nid_mth,"ovap",itau_w,zx_tmp_3d,
     1695     .                                   iim*jjmp1*klev,ndex3d)
     1696c
     1697c     zx_tmp_fi3d(1:klon,1:klev)=qx(1:klon,1:klev,ivap)/
     1698c    .                         (1-qx(1:klon,1:klev,ivap))
     1699c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d, zx_tmp_3d)
     1700c     CALL histwrite(nid_mth,"wvap",itau_w,zx_tmp_3d,
     1701c    .                                   iim*jjmp1*klev,ndex3d)
     1702c
     1703      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
     1704      CALL histwrite(nid_mth,"geop",itau_w,zx_tmp_3d,
     1705     .                                   iim*jjmp1*klev,ndex3d)
     1706c
     1707      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
     1708      CALL histwrite(nid_mth,"vitu",itau_w,zx_tmp_3d,
     1709     .                                   iim*jjmp1*klev,ndex3d)
     1710c
     1711      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
     1712      CALL histwrite(nid_mth,"vitv",itau_w,zx_tmp_3d,
     1713     .                                   iim*jjmp1*klev,ndex3d)
     1714c
     1715      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d)
     1716      CALL histwrite(nid_mth,"vitw",itau_w,zx_tmp_3d,
     1717     .                                   iim*jjmp1*klev,ndex3d)
     1718c
     1719      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
     1720      CALL histwrite(nid_mth,"pres",itau_w,zx_tmp_3d,
     1721     .                                   iim*jjmp1*klev,ndex3d)
     1722c
     1723      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldfra*100., zx_tmp_3d)
     1724      CALL histwrite(nid_mth,"rneb",itau_w,zx_tmp_3d,
     1725     .                                   iim*jjmp1*klev,ndex3d)
     1726c
     1727      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, rnebcon, zx_tmp_3d)
     1728      CALL histwrite(nid_mth,"rnebcon",itau_w,zx_tmp_3d,
     1729     .                                   iim*jjmp1*klev,ndex3d)
     1730c
     1731      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_rh, zx_tmp_3d)
     1732      CALL histwrite(nid_mth,"rhum",itau_w,zx_tmp_3d,
     1733     .                                   iim*jjmp1*klev,ndex3d)
     1734c
     1735      DO k=1, klev
     1736       DO i=1, klon
     1737cIM 151004        zx_tmp_fi3d(i,k)=MAX(wo(i,k),1.0e-12)*RG/46.6968
     1738c    $                    /(paprs(i,k)-paprs(i,k+1))
     1739c    $                    *(paprs(i,1)/101325.0)
     1740c        zx_tmp2_fi3d(i,k)=MAX(wo(i,k)*1.0e+6,1.0e-6)*RG/46.6968
     1741         zx_tmp_fi3d(i,k)=wo(i,k)*RG/46.6968
     1742     $                    /(paprs(i,k)-paprs(i,k+1))
     1743     $                    *(paprs(i,1)/101325.0)
     1744       ENDDO !i
     1745      ENDDO !k
     1746c
     1747c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, wo, zx_tmp_3d)
     1748c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp2_fi3d,zx_tmp_3d)
     1749      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1750      CALL histwrite(nid_mth,"ozone",itau_w,zx_tmp_3d,
     1751     .                                   iim*jjmp1*klev,ndex3d)
     1752c
     1753      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d)
     1754      CALL histwrite(nid_mth,"dtphy",itau_w,zx_tmp_3d,
     1755     .                                   iim*jjmp1*klev,ndex3d)
     1756c
     1757      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,ivap),
     1758     .                 zx_tmp_3d)
     1759      CALL histwrite(nid_mth,"dqphy",itau_w,zx_tmp_3d,
     1760     .                                   iim*jjmp1*klev,ndex3d)
     1761c
     1762      ENDIF !lev_histmth.GE.2
     1763c
     1764      IF(lev_histmth.GE.3) THEN
     1765c
     1766       DO nsrf=1, nbsrf
     1767c
     1768        zx_tmp_fi2d(1 : klon) = falbe( 1 : klon, nsrf)
     1769        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1770        CALL histwrite(nid_mth,"albe_"//clnsurf(nsrf),itau_w,
     1771     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1772C
     1773        zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf)
     1774        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1775        CALL histwrite(nid_mth,"rugs_"//clnsurf(nsrf),itau_w,
     1776     $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1777c
     1778      zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf)
     1779      CALL gr_fi_ecrit(1, klon,iim,jjmp1, agesno,zx_tmp_2d)
     1780      CALL histwrite(nid_mth,"ages_"//clnsurf(nsrf),itau_w
     1781     $    ,zx_tmp_2d,iim*jjmp1,ndex2d)
     1782c
     1783      ENDDO !nsrf=1, nbsrf
     1784c
     1785      CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsol,zx_tmp_2d)
     1786      CALL histwrite(nid_mth,"albs",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1787c
     1788      CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsollw,zx_tmp_2d)
     1789      CALL histwrite(nid_mth,"albslw",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1790c
     1791      ENDIF !lev_histmth.GE.3
     1792c
     1793c
     1794      IF(lev_histmth.GE.4) THEN
     1795c
     1796      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, clwcon0, zx_tmp_3d)
     1797      CALL histwrite(nid_mth,"clwcon",itau_w,zx_tmp_3d,
     1798     .                                   iim*jjmp1*klev,ndex3d)
     1799c
     1800      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, Ma, zx_tmp_3d)
     1801      CALL histwrite(nid_mth,"Ma",itau_w,zx_tmp_3d,
     1802     .                                   iim*jjmp1*klev,ndex3d)
     1803c
     1804      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, upwd, zx_tmp_3d)
     1805      CALL histwrite(nid_mth,"upwd",itau_w,zx_tmp_3d,
     1806     .                                   iim*jjmp1*klev,ndex3d)
     1807c
     1808      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd, zx_tmp_3d)
     1809      CALL histwrite(nid_mth,"dnwd",itau_w,zx_tmp_3d,
     1810     .                                   iim*jjmp1*klev,ndex3d)
     1811c
     1812      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd0, zx_tmp_3d)
     1813      CALL histwrite(nid_mth,"dnwd0",itau_w,zx_tmp_3d,
     1814     .                                   iim*jjmp1*klev,ndex3d)
     1815c
     1816c
     1817      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d)
     1818      CALL histwrite(nid_mth,"dtdyn",itau_w,zx_tmp_3d,
     1819     .                                   iim*jjmp1*klev,ndex3d)
     1820c
     1821      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d)
     1822      CALL histwrite(nid_mth,"dqdyn",itau_w,zx_tmp_3d,
     1823     .                                   iim*jjmp1*klev,ndex3d)
     1824c
     1825cIM: 101003 : K/30min ==> K/s
     1826c
     1827      zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
     1828      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1829      CALL histwrite(nid_mth,"dqcon",itau_w,zx_tmp_3d,
     1830     .                                   iim*jjmp1*klev,ndex3d)
     1831c
     1832cIM: 101003 : K/30min ==> K/s
     1833      zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+
     1834     .                             d_t_eva(1:klon,1:klev))/pdtphys
     1835      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d, zx_tmp_3d)
     1836      CALL histwrite(nid_mth,"dtlschr",itau_w,zx_tmp_3d,
     1837     .                                   iim*jjmp1*klev,ndex3d)
     1838c
     1839      zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys
     1840      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1841      CALL histwrite(nid_mth,"dqlsc",itau_w,zx_tmp_3d,
     1842     .                                   iim*jjmp1*klev,ndex3d)
     1843c
     1844cIM: 101003 : K/30min ==> K/s
     1845      zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys
     1846      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1847      CALL histwrite(nid_mth,"dtvdf",itau_w,zx_tmp_3d,
     1848     .                                   iim*jjmp1*klev,ndex3d)
     1849c
     1850      zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
     1851      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1852      CALL histwrite(nid_mth,"dqvdf",itau_w,zx_tmp_3d,
     1853     .                                   iim*jjmp1*klev,ndex3d)
     1854c
     1855cIM: 101003 : K/30min ==> K/s
     1856      zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys
     1857      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1858      CALL histwrite(nid_mth,"dteva",itau_w,zx_tmp_3d,
     1859     .                                   iim*jjmp1*klev,ndex3d)
     1860c
     1861      zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys
     1862      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1863      CALL histwrite(nid_mth,"dqeva",itau_w,zx_tmp_3d,
     1864     .                                   iim*jjmp1*klev,ndex3d)
     1865c
     1866      zpt_conv = 0.
     1867      where (ptconv) zpt_conv = 1.
     1868      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zpt_conv, zx_tmp_3d)
     1869      CALL histwrite(nid_mth,"ptconv",itau_w,zx_tmp_3d,
     1870     .                                   iim*(jjmp1)*klev,ndex3d)
     1871c
     1872      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, ratqs, zx_tmp_3d)
     1873      CALL histwrite(nid_mth,"ratqs",itau_w,zx_tmp_3d,
     1874     .                                   iim*(jjmp1)*klev,ndex3d)
     1875c
     1876      zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys
     1877      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1878      CALL histwrite(nid_mth,"dqajs",itau_w,zx_tmp_3d,
     1879     .                                   iim*jjmp1*klev,ndex3d)
     1880c
     1881cIM: 101003 : K/day ==> K/s
     1882      zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY
     1883      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1884      CALL histwrite(nid_mth,"dtswr",itau_w,zx_tmp_3d,
     1885     .                                   iim*jjmp1*klev,ndex3d)
     1886c
     1887cIM: 101003 : K/day ==> K/s     
     1888      zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)/RDAY
     1889      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1890      CALL histwrite(nid_mth,"dtsw0",itau_w,zx_tmp_3d,
     1891     .                                   iim*jjmp1*klev,ndex3d)
     1892c
     1893cIM: 101003 : K/day ==> K/s     
     1894      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY
     1895      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1896      CALL histwrite(nid_mth,"dtlwr",itau_w,zx_tmp_3d,
     1897     .                                   iim*jjmp1*klev,ndex3d)
     1898c
     1899cIM: 101003 : K/day ==> K/s     
     1900      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)/RDAY
     1901      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1902      CALL histwrite(nid_mth,"dtlw0",itau_w,zx_tmp_3d,
     1903     .                                   iim*jjmp1*klev,ndex3d)
     1904c
     1905cIM: 101003 : deja en K/s     
     1906      zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)
     1907      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1908      CALL histwrite(nid_mth,"dtec",itau_w,zx_tmp_3d,
     1909     .                                   iim*jjmp1*klev,ndex3d)
     1910c
     1911      zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
     1912      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1913      CALL histwrite(nid_mth,"duvdf",itau_w,zx_tmp_3d,
     1914     .                                   iim*jjmp1*klev,ndex3d)
     1915c
     1916      zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
     1917      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1918      CALL histwrite(nid_mth,"dvvdf",itau_w,zx_tmp_3d,
     1919     .                                   iim*jjmp1*klev,ndex3d)
     1920c
     1921      IF (ok_orodr) THEN
     1922      zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
     1923      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1924      CALL histwrite(nid_mth,"duoro",itau_w,zx_tmp_3d,
     1925     .                                   iim*jjmp1*klev,ndex3d)
     1926c
     1927      zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
     1928      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1929      CALL histwrite(nid_mth,"dvoro",itau_w,zx_tmp_3d,
     1930     .                                   iim*jjmp1*klev,ndex3d)
     1931c
     1932      ENDIF
     1933C
     1934      IF (ok_orolf) THEN
     1935      zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
     1936      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1937      CALL histwrite(nid_mth,"dulif",itau_w,zx_tmp_3d,
     1938     .                                   iim*jjmp1*klev,ndex3d)
     1939c
     1940      zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
     1941      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1942      CALL histwrite(nid_mth,"dvlif",itau_w,zx_tmp_3d,
     1943     .                                   iim*jjmp1*klev,ndex3d)
     1944      ENDIF
     1945C
     1946      IF (nqmax.GE.3) THEN
     1947      DO iq=1,nqmax-2
     1948      IF (iq.LE.99) THEN
     1949         CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq+2), zx_tmp_3d)
     1950         WRITE(str2,'(i2.2)') iq
     1951         CALL histwrite(nid_mth,"trac"//str2,itau_w,zx_tmp_3d,
     1952     .                                   iim*jjmp1*klev,ndex3d)
     1953      ELSE
     1954         PRINT*, "Trop de traceurs"
     1955         CALL abort
     1956      ENDIF
     1957      ENDDO
     1958      ENDIF
     1959c
     1960      ENDIF !lev_histmth.GE.4
     1961c
     1962      ENDIF !(type_run.EQ."AMIP")
    7761963c
    7771964      if (ok_sync) then
    7781965        call histsync(nid_mth)
    7791966      endif
    780       ENDIF
     1967c
     1968      ENDIF !ok_mensuel
  • LMDZ4/trunk/libf/phylmd/write_histmthNMC.h

    r524 r644  
    55      IF (ok_mensuel) THEN
    66c
    7       ndex2d = 0
    8       ndex3d = 0
     7       ndex3d = 0
     8       itau_w = itau_phy + itap
     9ccc
     10c  Champs interpolles sur des niveaux de pression du NMC
    911c
    10 c Champs 2D:
     12c     PARAMETER(nout=3) !nout=1 : day; =2 : mth; =3 : NMC
     13ccc
     14      IF(type_run.EQ."CLIM".OR.type_run.EQ."ENSP") THEN
     15ccc
     16       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,tsumSTD(:,:,2),
     17     $      zx_tmp_3d)
     18       CALL histwrite(nid_nmc,"temp",itau_w,zx_tmp_3d,
     19     $       iim*jjmp1*nlevSTD,ndex3d)
    1120c
    12 
    13         zsto = dtime
    14         zout = dtime * ecrit_mth
    15         itau_w = itau_phy + itap
    16 
    17       i = NINT(zout/zsto)
     21       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,phisumSTD(:,:,2),
     22     $     zx_tmp_3d)
     23       CALL histwrite(nid_nmc,"phi",itau_w,zx_tmp_3d,
     24     $       iim*jjmp1*nlevSTD,ndex3d)
    1825c
    19 c  Champs interpolles sur des niveaux de pression du NMC
    20 c110304 BEG
    21       DO k=1, nlevSTD
     26       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,qsumSTD(:,:,2),
     27     $     zx_tmp_3d)
     28       CALL histwrite(nid_nmc,"q",itau_w,zx_tmp_3d,
     29     $       iim*jjmp1*nlevSTD,ndex3d)
    2230c
    23          bb=clevSTD(k)
     31       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,rhsumSTD(:,:,2),
     32     $     zx_tmp_3d)
     33       CALL histwrite(nid_nmc,"rh",itau_w,zx_tmp_3d,
     34     $       iim*jjmp1*nlevSTD,ndex3d)
    2435c
    25          IF(k.GE.2) THEN
    26           aa=clevSTD(k)
    27           bb=aa(1:lnblnk1(aa))
     36       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,usumSTD(:,:,2),
     37     $     zx_tmp_3d)
     38       CALL histwrite(nid_nmc,"u",itau_w,zx_tmp_3d,
     39     $       iim*jjmp1*nlevSTD,ndex3d)
     40c
     41       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vsumSTD(:,:,2),
     42     $     zx_tmp_3d)
     43       CALL histwrite(nid_nmc,"v",itau_w,zx_tmp_3d,
     44     $       iim*jjmp1*nlevSTD,ndex3d)
     45ccc
     46      ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN
     47ccc
     48       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,tsumSTD(:,:,3),
     49     $     zx_tmp_3d)
     50       CALL histwrite(nid_nmc,"temp",itau_w,zx_tmp_3d,
     51     $       iim*jjmp1*nlevSTD,ndex3d)
     52c
     53       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,phisumSTD(:,:,3),
     54     $     zx_tmp_3d)
     55       CALL histwrite(nid_nmc,"phi",itau_w,zx_tmp_3d,
     56     $       iim*jjmp1*nlevSTD,ndex3d)
     57c
     58       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,qsumSTD(:,:,3),
     59     $     zx_tmp_3d)
     60       CALL histwrite(nid_nmc,"q",itau_w,zx_tmp_3d,
     61     $       iim*jjmp1*nlevSTD,ndex3d)
     62c
     63       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,rhsumSTD(:,:,3),
     64     $     zx_tmp_3d)
     65       CALL histwrite(nid_nmc,"rh",itau_w,zx_tmp_3d,
     66     $       iim*jjmp1*nlevSTD,ndex3d)
     67c
     68       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,usumSTD(:,:,3),
     69     $     zx_tmp_3d)
     70       CALL histwrite(nid_nmc,"u",itau_w,zx_tmp_3d,
     71     $       iim*jjmp1*nlevSTD,ndex3d)
     72c
     73       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vsumSTD(:,:,3),
     74     $     zx_tmp_3d)
     75       CALL histwrite(nid_nmc,"v",itau_w,zx_tmp_3d,
     76     $       iim*jjmp1*nlevSTD,ndex3d)
     77c
     78       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,wsumSTD(:,:,3),
     79     $     zx_tmp_3d)
     80       CALL histwrite(nid_nmc,"w",itau_w,zx_tmp_3d,
     81     $       iim*jjmp1*nlevSTD,ndex3d)
     82c
     83       DO k=1, nlevSTD
     84        DO i=1, klon
     85         IF(tnondef(i,k,3).NE.1.E+20) THEN
     86          zx_tmp_fi3d(i,k) = (100.*tnondef(i,k,3))/FLOAT(ecrit_hf2mth)
     87         ELSE
     88          zx_tmp_fi3d(i,k) = 1.E+20
    2889         ENDIF
     90        ENDDO
     91       ENDDO !k=1, nlevSTD
    2992c
    30       CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d)
    31       CALL histwrite(nid_nmc,"t"//bb,itau_w,zx_tmp_2d,
    32      $       iim*jjmp1,ndex2d)
     93       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     94       CALL histwrite(nid_nmc,"psbg",itau_w,zx_tmp_3d,
     95     $       iim*jjmp1*nlevSTD,ndex3d)
    3396c
    34       CALL gr_fi_ecrit(1, klon,iim,jjmp1, philevSTD(:,k),zx_tmp_2d)
    35       CALL histwrite(nid_nmc,"phi"//bb,itau_w,zx_tmp_2d,
    36      $       iim*jjmp1,ndex2d)
     97       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,uvsumSTD(:,:,3),
     98     $     zx_tmp_3d)
     99       CALL histwrite(nid_nmc,"uv",itau_w,zx_tmp_3d,
     100     $       iim*jjmp1*nlevSTD,ndex3d)
    37101c
    38       CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlevSTD(:,k),zx_tmp_2d)
    39       CALL histwrite(nid_nmc,"q"//bb,itau_w,zx_tmp_2d,
    40      $       iim*jjmp1,ndex2d)
     102       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vqsumSTD(:,:,3),
     103     $     zx_tmp_3d)
     104       CALL histwrite(nid_nmc,"vq",itau_w,zx_tmp_3d,
     105     $       iim*jjmp1*nlevSTD,ndex3d)
    41106c
    42       CALL gr_fi_ecrit(1, klon,iim,jjmp1, rhlevSTD(:,k),zx_tmp_2d)
    43       CALL histwrite(nid_nmc,"rh"//bb,itau_w,zx_tmp_2d,
    44      $       iim*jjmp1,ndex2d)
     107       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vTsumSTD(:,:,3),
     108     $     zx_tmp_3d)
     109       CALL histwrite(nid_nmc,"vT",itau_w,zx_tmp_3d,
     110     $       iim*jjmp1*nlevSTD,ndex3d)
    45111c
    46       CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d)
    47       CALL histwrite(nid_nmc,"u"//bb,itau_w,zx_tmp_2d,
    48      $       iim*jjmp1,ndex2d)
     112       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1, wqsumSTD(:,:,3),
     113     $     zx_tmp_3d)
     114       CALL histwrite(nid_nmc,"wq",itau_w,zx_tmp_3d,
     115     $       iim*jjmp1*nlevSTD,ndex3d)
    49116c
    50       CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d)
    51       CALL histwrite(nid_nmc,"v"//bb,itau_w,zx_tmp_2d,
    52      $       iim*jjmp1,ndex2d)
     117       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vphisumSTD(:,:,3),
     118     $     zx_tmp_3d)
     119       CALL histwrite(nid_nmc,"vphi",itau_w,zx_tmp_3d,
     120     $       iim*jjmp1*nlevSTD,ndex3d)
    53121c
    54       ENDDO !k=1, nlevSTD
    55 ccc
    56 c110304 END
     122       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,wTsumSTD(:,:,3),
     123     $     zx_tmp_3d)
     124       CALL histwrite(nid_nmc,"wT",itau_w,zx_tmp_3d,
     125     $       iim*jjmp1*nlevSTD,ndex3d)
     126c
     127       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,u2sumSTD(:,:,3),
     128     $     zx_tmp_3d)
     129       CALL histwrite(nid_nmc,"uxu",itau_w,zx_tmp_3d,
     130     $       iim*jjmp1*nlevSTD,ndex3d)
     131c
     132       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,v2sumSTD(:,:,3),
     133     $     zx_tmp_3d)
     134       CALL histwrite(nid_nmc,"vxv",itau_w,zx_tmp_3d,
     135     $       iim*jjmp1*nlevSTD,ndex3d)
     136c
     137       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,T2sumSTD(:,:,3),
     138     $     zx_tmp_3d)
     139       CALL histwrite(nid_nmc,"TxT",itau_w,zx_tmp_3d,
     140     $       iim*jjmp1*nlevSTD,ndex3d)
     141c
     142      ENDIF !type_run
    57143c
    58144      if (ok_sync) then
  • LMDZ4/trunk/makegcm

    r637 r644  
    729729      \mv $libf/grid/dimensions90.tmp $libf/grid/dimensions90.h
    730730endif
    731 sed -e 's/^c/\!/' -e 's/^     s/  \&/' $libf/dyn3d/paramet.h >! $libf/dyn3d/paramet90.tmp
     731sed -n -e 's/^c/\!/' -e '1 h' -e '2,$ H' -e '$ { x ; s/\n     s/ \&\n     \& /g ; p }' $libf/dyn3d/paramet.h >! $libf/dyn3d/paramet90.tmp
    732732if ( ! -f $libf/dyn3d/paramet90.h || `diff $libf/dyn3d/paramet90.tmp $libf/dyn3d/paramet90.h | wc -w` ) then
    733733      \mv $libf/dyn3d/paramet90.tmp $libf/dyn3d/paramet90.h
     734endif
     735sed -n -e 's/^c/\!/' -e '1 h' -e '2,$ H' -e '$ { x ; s/\n     \./ \&\n     \& /g ; p }' $libf/dyn3d/control.h >! $libf/dyn3d/control.tmp
     736if ( ! -f $libf/dyn3d/control.inc  || `diff $libf/dyn3d/control.tmp $libf/dyn3d/control.inc | wc -w` ) then
     737      \mv $libf/dyn3d/control.tmp $libf/dyn3d/control.inc
    734738endif
    735739sed -e 's/^c/\!/' $libf/dyn3dpar/paramet.h >! $libf/dyn3dpar/paramet90.h
Note: See TracChangeset for help on using the changeset viewer.