Changeset 1398 for LMDZ4/trunk


Ignore:
Timestamp:
Jun 4, 2010, 6:56:18 PM (15 years ago)
Author:
musat
Message:

Last corrections for CMIP5:

  • Add O3 at standard level files histmthNMC.nc
  • Add positive attribute "down" for vertical axes for all output files
  • Replace "inst" by "ave" for hist*NMC.nc files to have time_counter and bounds for time axis (Marie-Alice's hint)
  • Correct units for vertical axes : mb instead of hPa
  • Add mass flux at the bottom of clouds
  • Comment non initialized variables (s_capCL, s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) for the output files
  • Geopotential field phy850, phi700, phi500, etc are modified to "geopotential height and are called z850, z700, z500, etc
  • Meaning of specific humidity outputs - ovapinit and ovap - were interchanged
  • Fields albs, albslw become alb1, alb2 in output files
  • Correct title for rugs_* fields
  • Correct units for pbase and ptop are Pa (not mb)
  • Correct ndayrain field

FH/JLD/JYG/MAF/IM

Location:
LMDZ4/trunk/libf/phylmd
Files:
17 edited

Legend:

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

    r1352 r1398  
    107107     &             zx_tmp_fi3d,T2STD)
    108108
    109 
     109c
     110      zx_tmp_fi3d(:,:)=wo(:,:,1) * dobson_u * 1e3 / zmasse / rmo3 * rmd
     111        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
     112     &             zx_tmp_fi3d,O3STD)
     113c
     114      if (read_climoz == 2) THEN
     115      zx_tmp_fi3d(:,:)=wo(:,:,2) * dobson_u * 1e3 / zmasse / rmo3 * rmd
     116        CALL plevel_new(klon,klev,nlevSTD,.false.,pplay,rlevSTD,
     117     &             zx_tmp_fi3d,O3daySTD)
     118      endif
     119c
    110120        DO l=1, klev
    111121        DO i=1, klon
     
    115125        CALL plevel_new(klon,klev,nlevSTD,.true.,zx_tmp_fi3d,rlevSTD,
    116126     &             omega,wlevSTD)
    117 
    118127c
    119128cIM on somme les valeurs toutes les freq_calNMC secondes
  • LMDZ4/trunk/libf/phylmd/calcul_divers.h

    r996 r1398  
    55c initialisations diverses au "debut" du mois
    66c
    7       IF(MOD(itap,INT(ecrit_mth)).EQ.1) THEN
     7      IF(MOD(itap,INT(ecrit_mth/dtime)).EQ.1) THEN
    88         DO i=1, klon
    99          nday_rain(i)=0.
     
    1919      ENDIF !MOD(itap,INT(ecrit_mth)).EQ.1
    2020c
    21       IF(MOD(itap,INT(ecrit_day)).EQ.0) THEN
     21      IF(MOD(itap,INT(ecrit_day/dtime)).EQ.0) THEN
    2222c
    2323cIM calcul total_rain, nday_rain
  • LMDZ4/trunk/libf/phylmd/concvl.F

    r1334 r1398  
    55     .             d_t,d_q,d_u,d_v,d_tra,
    66     .             rain, snow, kbas, ktop, sigd,
    7      .             upwd,dnwd,dnwdbis,Ma,mip,Vprecip,
     7     .             cbmf,upwd,dnwd,dnwdbis,Ma,mip,Vprecip,
    88     .             cape,cin,tvp,Tconv,iflag,
    99     .             pbase,bbase,dtvpdt1,dtvpdq1,dplcldt,dplcldr,
     
    120120       INTEGER i,k,itra
    121121       REAL qs(klon,klev),qs_wake(klon,klev)
    122 cLF       REAL cbmf(klon)
     122       REAL cbmf(klon)
    123123cLF       SAVE cbmf
    124        REAL, SAVE, ALLOCATABLE :: cbmf(:)
    125 c$OMP THREADPRIVATE(cbmf)!       
     124cIM/JYG      REAL, SAVE, ALLOCATABLE :: cbmf(:)
     125ccc$OMP THREADPRIVATE(cbmf)!       
    126126       REAL cbmflast(klon)
    127127       INTEGER ifrst
     
    185185c Allocate some variables LF 04/2008
    186186c
    187         allocate(cbmf(klon))
     187cIM/JYG allocate(cbmf(klon))
    188188        allocate(ql(klon,klev))
    189189        allocate(t1(klon,klev))
     
    341341     $              dtime,Ma,upwd,dnwd,dnwdbis,qcondc,wd,cape,
    342342     $              da,phi,mp)
    343      
     343c
     344      DO i = 1,klon
     345        cbmf(i) = Ma(i,kbas(i))
     346      ENDDO
     347c
    344348      else
    345349
  • LMDZ4/trunk/libf/phylmd/cv3a_uncompress.F

    r1334 r1398  
    11      SUBROUTINE cv3a_uncompress(nloc,len,ncum,nd,ntra,idcum
    22     :         ,iflag,kbas,ktop
    3      :         ,precip,sig,w0,ptop2
     3     :         ,precip,cbmf,sig,w0,ptop2
    44     :         ,ft,fq,fu,fv,ftra
    55     :         ,Ma,mip,Vprecip,upwd,dnwd,dnwd0
     
    1010     :         ,asupmaxmin
    1111     o         ,iflag1,kbas1,ktop1
    12      :         ,precip1,sig1,w01,ptop21
     12     :         ,precip1,cbmf1,sig1,w01,ptop21
    1313     :         ,ft1,fq1,fu1,fv1,ftra1
    1414     :         ,Ma1,mip1,Vprecip1,upwd1,dnwd1,dnwd01
     
    3535      integer idcum(nloc)
    3636      integer iflag(nloc),kbas(nloc),ktop(nloc)
    37       real precip(nloc)
     37      real precip(nloc),cbmf(nloc)
    3838      real sig(nloc,nd), w0(nloc,nd),ptop2(nloc)
    3939      real ft(nloc,nd), fq(nloc,nd), fu(nloc,nd), fv(nloc,nd)
     
    5151c outputs:
    5252      integer iflag1(len),kbas1(len),ktop1(len)
    53       real precip1(len)
     53      real precip1(len),cbmf1(len)
    5454      real sig1(len,nd), w01(len,nd),ptop21(len)
    5555      real ft1(len,nd), fq1(len,nd), fu1(len,nd), fv1(len,nd)
     
    7171         ptop21(idcum(i))=ptop2(i)
    7272         precip1(idcum(i))=precip(i)
     73         cbmf1(idcum(i))=cbmf(i)
    7374         iflag1(idcum(i))=iflag(i)
    7475         kbas1(idcum(i))=kbas(i)
  • LMDZ4/trunk/libf/phylmd/cva_driver.F

    r1334 r1398  
    904904       CALL cv3a_uncompress(nloc,len,ncum,nd,ntra,idcum
    905905     :          ,iflag,icb,inb
    906      :          ,precip,sig,w0,ptop2
     906     :          ,precip,cbmf,sig,w0,ptop2
    907907     :          ,ft,fq,fu,fv,ftra
    908908     :          ,Ma,mip,Vprecip,upwd,dnwd,dnwd0
     
    913913     :          ,asupmaxmin
    914914     o          ,iflag1,kbas1,ktop1
    915      o          ,precip1,sig1,w01,ptop21
     915     o          ,precip1,cbmf1,sig1,w01,ptop21
    916916     o          ,ft1,fq1,fu1,fv1,ftra1
    917917     o          ,Ma1,mip1,Vprecip1,upwd1,dnwd1,dnwd01
  • LMDZ4/trunk/libf/phylmd/ini_histdayNMC.h

    r1374 r1398  
    3030c
    3131        IF(lev_histdayNMC.EQ.nlevSTD) THEN
    32          CALL histvert(nid_daynmc, "plev", "pressure", "Pa",
    33      .                 nlevSTD, rlevSTD, nvert)
     32         CALL histvert(nid_daynmc, "plev", "pressure", "mb",
     33     .                 nlevSTD, rlevSTD/100., nvert,"down")
    3434        ELSE IF(lev_histdayNMC.EQ.nlevSTD8) THEN
    35          CALL histvert(nid_daynmc, "plev", "pressure", "Pa",
    36      .                 nlevSTD8, rlevSTD8, nvert)
     35         CALL histvert(nid_daynmc, "plev", "pressure", "mb",
     36     .                 nlevSTD8, rlevSTD8/100., nvert,"down")
    3737        ENDIF
    38 ccc
     38c
     39cIM Astuce MAF: remplacer inst par ave pour les variables NMC pour avoir
     40cIM             le time_counter et les bounds
     41c
    3942ccc Champs 3D interpolles sur des niveaux de pression du NMC
    4043ccc
     
    5154     .                 "Valeurs non-definies","-",
    5255     .                iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    53      .                "inst(X)", zout,zout)
     56     .                "ave(X)", zout,zout)
    5457c
    5558          CALL histdef(nid_daynmc, "ta",
    5659     .                 "Air temperature","K",
    5760     .                iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    58      .                "inst(X)", zout,zout)
     61     .                "ave(X)", zout,zout)
    5962c
    6063         CALL histdef(nid_daynmc, "zg",
    6164     .                "Geopotential height", "m",
    6265     .                iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    63      .                "inst(X)", zout,zout)
     66     .                "ave(X)", zout,zout)
    6467c
    6568          CALL histdef(nid_daynmc, "hus",
    6669     .                 "Specific humidity","1",
    6770     .                iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    68      .                "inst(X)", zout,zout)
     71     .                "ave(X)", zout,zout)
    6972c
    7073         CALL histdef(nid_daynmc, "hur",
    7174     .                 "Relative humidity", "%",
    7275     .                iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    73      .                "inst(X)", zout,zout)
     76     .                "ave(X)", zout,zout)
    7477c
    7578          CALL histdef(nid_daynmc, "ua",
    7679     .                 "Eastward wind","m s-1",
    7780     .                iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    78      .                "inst(X)", zout,zout)
     81     .                "ave(X)", zout,zout)
    7982c
    8083          CALL histdef(nid_daynmc, "va",
    8184     .                 "Northward wind","m s-1",
    8285     .                iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    83      .                "inst(X)", zout,zout)
     86     .                "ave(X)", zout,zout)
    8487c
    8588          CALL histdef(nid_daynmc, "wap",
    8689     .                 "Lagrangian tendency of air pressure","Pa s-1",
    8790     .                iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    88      .                "inst(X)", zout,zout)
     91     .                "ave(X)", zout,zout)
    8992c
    9093        ELSE IF(lev_histdayNMC.EQ.nlevSTD8) THEN
     
    9396     .                 "Valeurs non-definies","-",
    9497     .                iim,jj_nb,nhori, nlevSTD8,1,nlevSTD8, nvert, 32,
    95      .                "inst(X)", zout,zout)
     98     .                "ave(X)", zout,zout)
    9699c
    97100          CALL histdef(nid_daynmc, "ta",
    98101     .                 "Air temperature","K",
    99102     .                iim,jj_nb,nhori, nlevSTD8,1,nlevSTD8, nvert, 32,
    100      .                "inst(X)", zout,zout)
     103     .                "ave(X)", zout,zout)
    101104c
    102105         CALL histdef(nid_daynmc, "zg",
    103106     .                "Geopotential height", "m",
    104107     .                iim,jj_nb,nhori, nlevSTD8,1,nlevSTD8, nvert, 32,
    105      .                "inst(X)", zout,zout)
     108     .                "ave(X)", zout,zout)
    106109c
    107110          CALL histdef(nid_daynmc, "hus",
    108111     .                 "Specific humidity","1",
    109112     .                iim,jj_nb,nhori, nlevSTD8,1,nlevSTD8, nvert, 32,
    110      .                "inst(X)", zout,zout)
     113     .                "ave(X)", zout,zout)
    111114c
    112115         CALL histdef(nid_daynmc, "hur",
    113116     .                 "Relative humidity", "%",
    114117     .                iim,jj_nb,nhori, nlevSTD8,1,nlevSTD8, nvert, 32,
    115      .                "inst(X)", zout,zout)
     118     .                "ave(X)", zout,zout)
    116119c
    117120          CALL histdef(nid_daynmc, "ua",
    118121     .                 "Eastward wind","m s-1",
    119122     .                iim,jj_nb,nhori, nlevSTD8,1,nlevSTD8, nvert, 32,
    120      .                "inst(X)", zout,zout)
     123     .                "ave(X)", zout,zout)
    121124c
    122125          CALL histdef(nid_daynmc, "va",
    123126     .                 "Northward wind","m s-1",
    124127     .                iim,jj_nb,nhori, nlevSTD8,1,nlevSTD8, nvert, 32,
    125      .                "inst(X)", zout,zout)
     128     .                "ave(X)", zout,zout)
    126129c
    127130          CALL histdef(nid_daynmc, "wap",
    128131     .                 "Lagrangian tendency of air pressure","Pa s-1",
    129132     .                iim,jj_nb,nhori, nlevSTD8,1,nlevSTD8, nvert, 32,
    130      .                "inst(X)", zout,zout)
     133     .                "ave(X)", zout,zout)
    131134c
    132135        ENDIF
  • LMDZ4/trunk/libf/phylmd/ini_histhfNMC.h

    r1374 r1398  
    3131     .                 nhori, nid_hfnmc)
    3232c
    33          CALL histvert(nid_hfnmc, "plev", "pressure", "Pa",
    34      .                 nlevSTD3, rlevSTD3, nvert)
     33         CALL histvert(nid_hfnmc, "plev", "pressure", "mb",
     34     .                 nlevSTD3, rlevSTD3/100., nvert,"down")
     35c
     36cIM Astuce MAF: remplacer inst par ave pour les variables NMC pour avoir
     37cIM             le time_counter et les bounds
     38c
    3539ccc
    3640ccc Champs 3D interpolles sur des niveaux de pression du NMC
     
    4751     .                 "Valeurs non-definies","-",
    4852     .                iim,jj_nb,nhori, nlevSTD3,1,nlevSTD3, nvert, 32,
    49      .                "inst(X)", zout,zout)
     53     .                "ave(X)", zout,zout)
    5054c
    5155          CALL histdef(nid_hfnmc, "ta",
    5256     .                 "Air temperature","K",
    5357     .                iim,jj_nb,nhori, nlevSTD3,1,nlevSTD3, nvert, 32,
    54      .                "inst(X)", zout,zout)
     58     .                "ave(X)", zout,zout)
    5559c
    5660         CALL histdef(nid_hfnmc, "zg",
    5761     .                "Geopotential height", "m",
    5862     .                iim,jj_nb,nhori, nlevSTD3,1,nlevSTD3, nvert, 32,
    59      .                "inst(X)", zout,zout)
     63     .                "ave(X)", zout,zout)
    6064c
    6165          CALL histdef(nid_hfnmc, "hus",
    6266     .                 "Specific humidity","1",
    6367     .                iim,jj_nb,nhori, nlevSTD3,1,nlevSTD3, nvert, 32,
    64      .                "inst(X)", zout,zout)
     68     .                "ave(X)", zout,zout)
    6569c
    6670         CALL histdef(nid_hfnmc, "hur",
    6771     .                 "Relative humidity", "%",
    6872     .                iim,jj_nb,nhori, nlevSTD3,1,nlevSTD3, nvert, 32,
    69      .                "inst(X)", zout,zout)
     73     .                "ave(X)", zout,zout)
    7074c
    7175          CALL histdef(nid_hfnmc, "ua",
    7276     .                 "Eastward wind","m s-1",
    7377     .                iim,jj_nb,nhori, nlevSTD3,1,nlevSTD3, nvert, 32,
    74      .                "inst(X)", zout,zout)
     78     .                "ave(X)", zout,zout)
    7579c
    7680          CALL histdef(nid_hfnmc, "va",
    7781     .                 "Northward wind","m s-1",
    7882     .                iim,jj_nb,nhori, nlevSTD3,1,nlevSTD3, nvert, 32,
    79      .                "inst(X)", zout,zout)
     83     .                "ave(X)", zout,zout)
    8084c
    8185          CALL histdef(nid_hfnmc, "wap",
    8286     .                 "Lagrangian tendency of air pressure","Pa s-1",
    8387     .                iim,jj_nb,nhori, nlevSTD3,1,nlevSTD3, nvert, 32,
    84      .                "inst(X)", zout,zout)
     88     .                "ave(X)", zout,zout)
    8589c
    8690          CALL histdef(nid_hfnmc, "psbg",
    8791     .         "Pressure sfce below ground","%",
    8892     .         iim,jj_nb,nhori, nlevSTD3,1,nlevSTD3, nvert, 32,
    89      .         "inst(X)", zout,zout)
     93     .         "ave(X)", zout,zout)
    9094c
    9195          CALL histdef(nid_hfnmc, "uv",
    9296     .         "uv ",
    9397     .         "m2/s2",iim,jj_nb,nhori, nlevSTD3,1,nlevSTD3, nvert, 32,
    94      .         "inst(X)", zout,zout)
     98     .         "ave(X)", zout,zout)
    9599c
    96100          CALL histdef(nid_hfnmc, "vq",
     
    98102     .         "m/s * (kg/kg)",iim,jj_nb,nhori,
    99103     .          nlevSTD3,1,nlevSTD3, nvert, 32,
    100      .         "inst(X)", zout,zout)
     104     .         "ave(X)", zout,zout)
    101105c
    102106          CALL histdef(nid_hfnmc, "vT",
     
    104108     .         "mK/s",iim,jj_nb,nhori,
    105109     .          nlevSTD3,1,nlevSTD3, nvert, 32,
    106      .         "inst(X)", zout,zout)
     110     .         "ave(X)", zout,zout)
    107111c
    108112          CALL histdef(nid_hfnmc, "wq",
     
    110114     .         "(Pa/s)*(kg/kg)",iim,jj_nb,nhori,
    111115     .          nlevSTD3,1,nlevSTD3, nvert, 32,
    112      .         "inst(X)", zout,zout)
     116     .         "ave(X)", zout,zout)
    113117c
    114118          CALL histdef(nid_hfnmc, "vphi",
     
    116120     .         "m2/s",iim,jj_nb,nhori,
    117121     .          nlevSTD3,1,nlevSTD3, nvert, 32,
    118      .         "inst(X)", zout,zout)
     122     .         "ave(X)", zout,zout)
    119123c
    120124          CALL histdef(nid_hfnmc, "wT",
     
    122126     .         "K*Pa/s",iim,jj_nb,nhori,
    123127     .          nlevSTD3,1,nlevSTD3, nvert, 32,
    124      .         "inst(X)", zout,zout)
     128     .         "ave(X)", zout,zout)
    125129c
    126130          CALL histdef(nid_hfnmc, "uxu",
     
    128132     .         "m2/s2",iim,jj_nb,nhori,
    129133     .          nlevSTD3,1,nlevSTD3, nvert, 32,
    130      .         "inst(X)", zout,zout)
     134     .         "ave(X)", zout,zout)
    131135c
    132136          CALL histdef(nid_hfnmc, "vxv",
     
    134138     .         "m2/s2",iim,jj_nb,nhori,
    135139     .          nlevSTD3,1,nlevSTD3, nvert, 32,
    136      .         "inst(X)", zout,zout)
     140     .         "ave(X)", zout,zout)
    137141c
    138142          CALL histdef(nid_hfnmc, "TxT",
     
    140144     .         "K2",iim,jj_nb,nhori,
    141145     .          nlevSTD3,1,nlevSTD3, nvert, 32,
    142      .         "inst(X)", zout,zout)
     146     .         "ave(X)", zout,zout)
    143147c
    144148         CALL histend(nid_hfnmc)
  • LMDZ4/trunk/libf/phylmd/ini_histmthNMC.h

    r1374 r1398  
    2727     .                 nhori, nid_mthnmc)
    2828c
    29          CALL histvert(nid_mthnmc, "plev", "pressure", "Pa",
    30      .                 nlevSTD, rlevSTD, nvert)
    31 ccc
     29         CALL histvert(nid_mthnmc, "plev", "pressure", "mb",
     30     .                 nlevSTD, rlevSTD/100., nvert,"down")
     31c
     32cIM Astuce MAF: remplacer inst par ave pour les variables NMC pour avoir
     33cIM             le time_counter et les bounds
     34cIM
    3235ccc Champs 3D interpolles sur des niveaux de pression du NMC
    3336ccc
     
    4447     .                 "Valeurs non-definies","-",
    4548     .                iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    46      .                "inst(X)", zout,zout)
     49     .                "ave(X)", zout,zout)
    4750c
    4851          CALL histdef(nid_mthnmc, "ta",
    4952     .                 "Air temperature","K",
    5053     .                iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    51      .                "inst(X)", zout,zout)
     54     .                "ave(X)", zout,zout)
    5255c
    5356         CALL histdef(nid_mthnmc, "zg",
    5457     .                "Geopotential height", "m",
    5558     .                iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    56      .                "inst(X)", zout,zout)
     59     .                "ave(X)", zout,zout)
    5760c
    5861          CALL histdef(nid_mthnmc, "hus",
    5962     .                 "Specific humidity","1",
    6063     .                iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    61      .                "inst(X)", zout,zout)
     64     .                "ave(X)", zout,zout)
    6265c
    6366         CALL histdef(nid_mthnmc, "hur",
    6467     .                 "Relative humidity", "%",
    6568     .                iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    66      .                "inst(X)", zout,zout)
     69     .                "ave(X)", zout,zout)
    6770c
    6871          CALL histdef(nid_mthnmc, "ua",
    6972     .                 "Eastward wind","m s-1",
    7073     .                iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    71      .                "inst(X)", zout,zout)
     74     .                "ave(X)", zout,zout)
    7275c
    7376          CALL histdef(nid_mthnmc, "va",
    7477     .                 "Northward wind","m s-1",
    7578     .                iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    76      .                "inst(X)", zout,zout)
     79     .                "ave(X)", zout,zout)
    7780c
    7881          CALL histdef(nid_mthnmc, "wap",
    7982     .                 "Lagrangian tendency of air pressure","Pa s-1",
    8083     .                iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    81      .                "inst(X)", zout,zout)
     84     .                "ave(X)", zout,zout)
    8285c
    8386          CALL histdef(nid_mthnmc, "psbg",
    8487     .         "Pressure sfce below ground","%",
    8588     .         iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    86      .         "inst(X)", zout,zout)
     89     .         "ave(X)", zout,zout)
    8790c
    8891          CALL histdef(nid_mthnmc, "uv",
    8992     .         "uv ",
    9093     .         "m2/s2",iim,jj_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    91      .         "inst(X)", zout,zout)
     94     .         "ave(X)", zout,zout)
    9295c
    9396          CALL histdef(nid_mthnmc, "vq",
     
    9598     .         "m/s * (kg/kg)",iim,jj_nb,nhori,
    9699     .          nlevSTD,1,nlevSTD, nvert, 32,
    97      .         "inst(X)", zout,zout)
     100     .         "ave(X)", zout,zout)
    98101c
    99102          CALL histdef(nid_mthnmc, "vT",
     
    101104     .         "mK/s",iim,jj_nb,nhori,
    102105     .          nlevSTD,1,nlevSTD, nvert, 32,
    103      .         "inst(X)", zout,zout)
     106     .         "ave(X)", zout,zout)
    104107c
    105108          CALL histdef(nid_mthnmc, "wq",
     
    107110     .         "(Pa/s)*(kg/kg)",iim,jj_nb,nhori,
    108111     .          nlevSTD,1,nlevSTD, nvert, 32,
    109      .         "inst(X)", zout,zout)
     112     .         "ave(X)", zout,zout)
    110113c
    111114          CALL histdef(nid_mthnmc, "vphi",
     
    113116     .         "m2/s",iim,jj_nb,nhori,
    114117     .          nlevSTD,1,nlevSTD, nvert, 32,
    115      .         "inst(X)", zout,zout)
     118     .         "ave(X)", zout,zout)
    116119c
    117120          CALL histdef(nid_mthnmc, "wT",
     
    119122     .         "K*Pa/s",iim,jj_nb,nhori,
    120123     .          nlevSTD,1,nlevSTD, nvert, 32,
    121      .         "inst(X)", zout,zout)
     124     .         "ave(X)", zout,zout)
    122125c
    123126          CALL histdef(nid_mthnmc, "uxu",
     
    125128     .         "m2/s2",iim,jj_nb,nhori,
    126129     .          nlevSTD,1,nlevSTD, nvert, 32,
    127      .         "inst(X)", zout,zout)
     130     .         "ave(X)", zout,zout)
    128131c
    129132          CALL histdef(nid_mthnmc, "vxv",
     
    131134     .         "m2/s2",iim,jj_nb,nhori,
    132135     .          nlevSTD,1,nlevSTD, nvert, 32,
    133      .         "inst(X)", zout,zout)
     136     .         "ave(X)", zout,zout)
    134137c
    135138          CALL histdef(nid_mthnmc, "TxT",
     
    137140     .         "K2",iim,jj_nb,nhori,
    138141     .          nlevSTD,1,nlevSTD, nvert, 32,
    139      .         "inst(X)", zout,zout)
     142     .         "ave(X)", zout,zout)
    140143c
    141 
     144          CALL histdef(nid_mthnmc, "tro3",
     145     .         "Ozone mole fraction",
     146     .         "1e-9",iim,jj_nb,nhori,
     147     .          nlevSTD,1,nlevSTD, nvert, 32,
     148     .         "ave(X)", zout,zout)
     149c
     150          if (read_climoz == 2) THEN
     151           CALL histdef(nid_mthnmc, "tro3_daylight",
     152     .         "Daylight ozone mole fraction",
     153     .         "1e-9",iim,jj_nb,nhori,
     154     .          nlevSTD,1,nlevSTD, nvert, 32,
     155     .         "ave(X)", zout,zout)
     156          endif
     157c
    142158         CALL histend(nid_mthnmc)
    143159c
  • LMDZ4/trunk/libf/phylmd/ini_undefSTD.F

    r1354 r1398  
    7474          v2sumSTD(i,k,n)=0.
    7575          T2sumSTD(i,k,n)=0.
     76          O3sumSTD(i,k,n)=0.
     77          O3daysumSTD(i,k,n)=0.
    7678         ENDDO !i
    7779        ENDDO !k
  • LMDZ4/trunk/libf/phylmd/moy_undefSTD.F

    r1354 r1398  
    9292          T2sumSTD(i,k,n)=T2sumSTD(i,k,n)/
    9393     $     (freq_moyNMC(n)-tnondef(i,k,n))
     94          O3sumSTD(i,k,n)=O3sumSTD(i,k,n)/
     95     $     (freq_moyNMC(n)-tnondef(i,k,n))
     96          O3daysumSTD(i,k,n)=O3daysumSTD(i,k,n)/
     97     $     (freq_moyNMC(n)-tnondef(i,k,n))
    9498cIM END
    9599          ELSE
     
    110114           v2sumSTD(i,k,n)=missing_val
    111115           T2sumSTD(i,k,n)=missing_val
     116           O3sumSTD(i,k,n)=missing_val
     117           O3daysumSTD(i,k,n)=missing_val
    112118          ENDIF !tnondef(i,k,n).NE.(freq_moyNMC(n))
    113119         ENDDO !i
  • LMDZ4/trunk/libf/phylmd/phys_output_mod.F90

    r1390 r1398  
    233233  type(ctrl_out),save :: o_s_pblt       = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_pblt')
    234234  type(ctrl_out),save :: o_s_lcl        = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_lcl')
    235   type(ctrl_out),save :: o_s_capCL      = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_capCL')
    236   type(ctrl_out),save :: o_s_oliqCL     = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_oliqCL')
    237   type(ctrl_out),save :: o_s_cteiCL     = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_cteiCL')
    238235  type(ctrl_out),save :: o_s_therm      = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_therm')
    239   type(ctrl_out),save :: o_s_trmb1      = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_trmb1')
    240   type(ctrl_out),save :: o_s_trmb2      = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_trmb2')
    241   type(ctrl_out),save :: o_s_trmb3      = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_trmb3')
     236!IM : Les champs suivants (s_capCL, s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F
     237! type(ctrl_out),save :: o_s_capCL      = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_capCL')
     238! type(ctrl_out),save :: o_s_oliqCL     = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_oliqCL')
     239! type(ctrl_out),save :: o_s_cteiCL     = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_cteiCL')
     240! type(ctrl_out),save :: o_s_trmb1      = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_trmb1')
     241! type(ctrl_out),save :: o_s_trmb2      = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_trmb2')
     242! type(ctrl_out),save :: o_s_trmb3      = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_trmb3')
    242243
    243244  type(ctrl_out),save :: o_slab_bils    = ctrl_out((/ 1, 1, 10, 10, 10 /),'slab_bils_oce')
     
    292293                                                     ctrl_out((/ 1, 1, 3, 10, 10 /),'q10') /)
    293294
    294   type(ctrl_out),save,dimension(6) :: o_phiSTDlevs   = (/ ctrl_out((/ 1, 1, 3, 10, 10 /),'phi850'), &
    295                                                      ctrl_out((/ 1, 1, 3, 10, 10 /),'phi700'), &
    296                                                      ctrl_out((/ 1, 1, 3, 10, 10 /),'phi500'), &
    297                                                      ctrl_out((/ 1, 1, 3, 10, 10 /),'phi200'), &
    298                                                      ctrl_out((/ 1, 1, 3, 10, 10 /),'phi50'), &
    299                                                      ctrl_out((/ 1, 1, 3, 10, 10 /),'phi10') /)
     295  type(ctrl_out),save,dimension(6) :: o_zSTDlevs   = (/ ctrl_out((/ 1, 1, 3, 10, 10 /),'z850'), &
     296                                                     ctrl_out((/ 1, 1, 3, 10, 10 /),'z700'), &
     297                                                     ctrl_out((/ 1, 1, 3, 10, 10 /),'z500'), &
     298                                                     ctrl_out((/ 1, 1, 3, 10, 10 /),'z200'), &
     299                                                     ctrl_out((/ 1, 1, 3, 10, 10 /),'z50'), &
     300                                                     ctrl_out((/ 1, 1, 3, 10, 10 /),'z10') /)
    300301
    301302
     
    453454                                                     ctrl_out((/ 3, 4, 10, 1, 10 /),'albe_sic') /)
    454455
    455   type(ctrl_out),save,dimension(4) :: o_ages_srf     = (/ ctrl_out((/ 3, 10, 10, 10, 10 /),'ages_ter'), &
     456  type(ctrl_out),save,dimension(4) :: o_ages_srf     = (/ ctrl_out((/ 10, 10, 10, 10, 10 /),'ages_ter'), &
    456457                                                     ctrl_out((/ 3, 10, 10, 10, 10 /),'ages_lic'), &
    457                                                      ctrl_out((/ 3, 10, 10, 10, 10 /),'ages_oce'), &
     458                                                     ctrl_out((/ 10, 10, 10, 10, 10 /),'ages_oce'), &
    458459                                                     ctrl_out((/ 3, 10, 10, 10, 10 /),'ages_sic') /)
    459460
     
    463464                                                     ctrl_out((/ 3, 4, 10, 10, 10 /),'rugs_sic') /)
    464465
    465   type(ctrl_out),save :: o_albs         = ctrl_out((/ 3, 10, 10, 10, 10 /),'albs')
    466   type(ctrl_out),save :: o_albslw       = ctrl_out((/ 3, 10, 10, 10, 10 /),'albslw')
     466  type(ctrl_out),save :: o_alb1         = ctrl_out((/ 3, 10, 10, 10, 10 /),'alb1')
     467  type(ctrl_out),save :: o_alb2       = ctrl_out((/ 3, 10, 10, 10, 10 /),'alb2')
    467468
    468469  type(ctrl_out),save :: o_clwcon       = ctrl_out((/ 4, 10, 10, 10, 10 /),'clwcon')
     
    746747      CALL histvert(nid_files(iff), "presnivs", "Vertical levels", "mb", &
    747748           levmax(iff) - levmin(iff) + 1, &
    748            presnivs(levmin(iff):levmax(iff))/100., nvertm(iff))
     749           presnivs(levmin(iff):levmax(iff))/100., nvertm(iff),"down")
    749750
    750751!!!!!!!!!!!!! Traitement des champs 3D pour histhf !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    890891   type_ecri(:) = type_ecri_files(:)
    891892  endif
    892  CALL histdef2d(iff,o_albe_srf(nsrf)%flag,o_albe_srf(nsrf)%name,"Albedo surf. "//clnsurf(nsrf),"-")
    893  CALL histdef2d(iff,o_rugs_srf(nsrf)%flag,o_rugs_srf(nsrf)%name,"Latent heat flux "//clnsurf(nsrf),"W/m2")
     893 CALL histdef2d(iff,o_albe_srf(nsrf)%flag,o_albe_srf(nsrf)%name,"Albedo VIS surf. "//clnsurf(nsrf),"-")
     894 CALL histdef2d(iff,o_rugs_srf(nsrf)%flag,o_rugs_srf(nsrf)%name,"Surface roughness "//clnsurf(nsrf),"m")
    894895 CALL histdef2d(iff,o_ages_srf(nsrf)%flag,o_ages_srf(nsrf)%name,"Snow age", "day")
    895896END DO
    896897
    897898IF (new_aod .AND. (.NOT. aerosol_couple)) THEN
     899 IF (ok_ade.OR.ok_aie) THEN
    898900
    899901  CALL histdef2d(iff,o_od550aer%flag,o_od550aer%name, "Total aerosol optical depth at 550nm", "-")
     
    922924  CALL histdef2d(iff,o_tausumaero(naero)%flag,o_tausumaero(naero)%name,"Aerosol Optical depth at 550 nm "//name_aero(naero),"1")
    923925  END DO
     926 ENDIF
    924927ENDIF
    925928
     
    966969
    967970
    968  CALL histdef2d(iff,o_albs%flag,o_albs%name, "Surface albedo", "-")
    969  CALL histdef2d(iff,o_albslw%flag,o_albslw%name, "Surface albedo LW", "-")
     971 CALL histdef2d(iff,o_alb1%flag,o_alb1%name, "Surface VIS albedo", "-")
     972 CALL histdef2d(iff,o_alb2%flag,o_alb2%name, "Surface Near IR albedo", "-")
    970973 CALL histdef2d(iff,o_cdrm%flag,o_cdrm%name, "Momentum drag coef.", "-")
    971974 CALL histdef2d(iff,o_cdrh%flag,o_cdrh%name, "Heat drag coef.", "-" )
     
    984987     IF(iflag_con.GE.3) THEN ! sb
    985988 CALL histdef2d(iff,o_cape%flag,o_cape%name, "Conv avlbl pot ener", "J/kg")
    986  CALL histdef2d(iff,o_pbase%flag,o_pbase%name, "Cld base pressure", "mb")
    987  CALL histdef2d(iff,o_ptop%flag,o_ptop%name, "Cld top pressure", "mb")
     989 CALL histdef2d(iff,o_pbase%flag,o_pbase%name, "Cld base pressure", "Pa")
     990 CALL histdef2d(iff,o_ptop%flag,o_ptop%name, "Cld top pressure", "Pa")
    988991 CALL histdef2d(iff,o_fbase%flag,o_fbase%name, "Cld base mass flux", "kg/m2/s")
    989992 CALL histdef2d(iff,o_prw%flag,o_prw%name, "Precipitable water", "kg/m2")
     
    10121015 CALL histdef2d(iff,o_s_pblt%flag,o_s_pblt%name, "t at Boundary Layer Height", "K")
    10131016 CALL histdef2d(iff,o_s_lcl%flag,o_s_lcl%name, "Condensation level", "m")
    1014  CALL histdef2d(iff,o_s_capCL%flag,o_s_capCL%name, "Conv avlbl pot enerfor ABL", "J/m2" )
    1015  CALL histdef2d(iff,o_s_oliqCL%flag,o_s_oliqCL%name, "Liq Water in BL", "kg/m2")
    1016  CALL histdef2d(iff,o_s_cteiCL%flag,o_s_cteiCL%name, "Instability criteria(ABL)", "K")
    10171017 CALL histdef2d(iff,o_s_therm%flag,o_s_therm%name, "Exces du thermique", "K")
    1018  CALL histdef2d(iff,o_s_trmb1%flag,o_s_trmb1%name, "deep_cape(HBTM2)", "J/m2")
    1019  CALL histdef2d(iff,o_s_trmb2%flag,o_s_trmb2%name, "inhibition (HBTM2)", "J/m2")
    1020  CALL histdef2d(iff,o_s_trmb3%flag,o_s_trmb3%name, "Point Omega (HBTM2)", "m")
     1018!IM : Les champs suivants (s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F
     1019!CALL histdef2d(iff,o_s_capCL%flag,o_s_capCL%name, "Conv avlbl pot enerfor ABL", "J/m2" )
     1020!CALL histdef2d(iff,o_s_oliqCL%flag,o_s_oliqCL%name, "Liq Water in BL", "kg/m2")
     1021!CALL histdef2d(iff,o_s_cteiCL%flag,o_s_cteiCL%name, "Instability criteria(ABL)", "K")
     1022!CALL histdef2d(iff,o_s_trmb1%flag,o_s_trmb1%name, "deep_cape(HBTM2)", "J/m2")
     1023!CALL histdef2d(iff,o_s_trmb2%flag,o_s_trmb2%name, "inhibition (HBTM2)", "J/m2")
     1024!CALL histdef2d(iff,o_s_trmb3%flag,o_s_trmb3%name, "Point Omega (HBTM2)", "m")
    10211025
    10221026! Champs interpolles sur des niveaux de pression
     
    10401044 CALL histdef2d(iff,o_vSTDlevs(ilev)%flag,o_vSTDlevs(ilev)%name,"Meridional wind "//bb2//"mb", "m/s")
    10411045 CALL histdef2d(iff,o_wSTDlevs(ilev)%flag,o_wSTDlevs(ilev)%name,"Vertical wind "//bb2//"mb", "Pa/s")
    1042  CALL histdef2d(iff,o_phiSTDlevs(ilev)%flag,o_phiSTDlevs(ilev)%name,"Geopotential "//bb2//"mb", "m")
     1046 CALL histdef2d(iff,o_zSTDlevs(ilev)%flag,o_zSTDlevs(ilev)%name,"Geopotential height "//bb2//"mb", "m")
    10431047 CALL histdef2d(iff,o_qSTDlevs(ilev)%flag,o_qSTDlevs(ilev)%name,"Specific humidity "//bb2//"mb", "kg/kg" )
    10441048 CALL histdef2d(iff,o_tSTDlevs(ilev)%flag,o_tSTDlevs(ilev)%name,"Temperature "//bb2//"mb", "K")
     
    10971101 CALL histdef3d(iff,o_temp%flag,o_temp%name, "Air temperature", "K" )
    10981102 CALL histdef3d(iff,o_theta%flag,o_theta%name, "Potential air temperature", "K" )
    1099  CALL histdef3d(iff,o_ovap%flag,o_ovap%name, "Specific humidity + dqphy", "kg/kg" )
    1100  CALL histdef3d(iff,o_ovapinit%flag,o_ovapinit%name, "Specific humidity", "kg/kg" )
     1103 CALL histdef3d(iff,o_ovap%flag,o_ovap%name, "Specific humidity", "kg/kg" )
     1104 CALL histdef3d(iff,o_ovapinit%flag,o_ovapinit%name, "Specific humidity (begin of timestep)", "kg/kg" )
    11011105 CALL histdef3d(iff,o_geop%flag,o_geop%name, "Geopotential height", "m2/s2")
    11021106 CALL histdef3d(iff,o_vitu%flag,o_vitu%name, "Zonal wind", "m/s" )
     
    11951199 CALL histdef3d(iff,o_a_th%flag,o_a_th%name, "Thermal plume fraction", "")
    11961200 CALL histdef3d(iff,o_d_th%flag,o_d_th%name, "Thermal plume detrainment", "K/s")
    1197 endif !iflag_thermals.gt.1
     1201!IM endif !iflag_thermals.gt.1
    11981202 CALL histdef2d(iff,o_f0_th%flag,o_f0_th%name, "Thermal closure mass flux", "K/s")
    11991203 CALL histdef2d(iff,o_zmax_th%flag,o_zmax_th%name, "Thermal plume height", "K/s")
    12001204 CALL histdef3d(iff,o_dqthe%flag,o_dqthe%name, "Dry adjust. dQ", "(kg/kg)/s")
     1205endif !iflag_thermals.gt.1
    12011206 CALL histdef3d(iff,o_dtajs%flag,o_dtajs%name, "Dry adjust. dT", "K/s")
    12021207 CALL histdef3d(iff,o_dqajs%flag,o_dqajs%name, "Dry adjust. dQ", "(kg/kg)/s")
  • LMDZ4/trunk/libf/phylmd/phys_output_write.h

    r1367 r1398  
    599599        ENDIF
    600600
    601         IF (o_s_capCL%flag(iff)<=lev_files(iff)) THEN
    602       CALL histwrite_phy(nid_files(iff),o_s_capCL%name,itau_w,s_capCL)
    603         ENDIF
    604 
    605         IF (o_s_oliqCL%flag(iff)<=lev_files(iff)) THEN
    606       CALL histwrite_phy(nid_files(iff),o_s_oliqCL%name,itau_w,s_oliqCL)
    607         ENDIF
    608 
    609         IF (o_s_cteiCL%flag(iff)<=lev_files(iff)) THEN
    610       CALL histwrite_phy(nid_files(iff),o_s_cteiCL%name,itau_w,s_cteiCL)
    611         ENDIF
    612 
    613601        IF (o_s_therm%flag(iff)<=lev_files(iff)) THEN
    614602      CALL histwrite_phy(nid_files(iff),o_s_therm%name,itau_w,s_therm)
    615603        ENDIF
    616604
    617         IF (o_s_trmb1%flag(iff)<=lev_files(iff)) THEN
    618       CALL histwrite_phy(nid_files(iff),o_s_trmb1%name,itau_w,s_trmb1)
    619         ENDIF
    620 
    621         IF (o_s_trmb2%flag(iff)<=lev_files(iff)) THEN
    622       CALL histwrite_phy(nid_files(iff),o_s_trmb2%name,itau_w,s_trmb2)
    623         ENDIF
    624 
    625         IF (o_s_trmb3%flag(iff)<=lev_files(iff)) THEN
    626       CALL histwrite_phy(nid_files(iff),o_s_trmb3%name,itau_w,s_trmb3)
    627         ENDIF
     605!IM : Les champs suivants (s_capCL, s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F
     606!       IF (o_s_capCL%flag(iff)<=lev_files(iff)) THEN
     607!     CALL histwrite_phy(nid_files(iff),o_s_capCL%name,itau_w,s_capCL)
     608!       ENDIF
     609
     610!       IF (o_s_oliqCL%flag(iff)<=lev_files(iff)) THEN
     611!     CALL histwrite_phy(nid_files(iff),o_s_oliqCL%name,itau_w,s_oliqCL)
     612!       ENDIF
     613
     614!       IF (o_s_cteiCL%flag(iff)<=lev_files(iff)) THEN
     615!     CALL histwrite_phy(nid_files(iff),o_s_cteiCL%name,itau_w,s_cteiCL)
     616!       ENDIF
     617
     618!       IF (o_s_trmb1%flag(iff)<=lev_files(iff)) THEN
     619!     CALL histwrite_phy(nid_files(iff),o_s_trmb1%name,itau_w,s_trmb1)
     620!       ENDIF
     621
     622!       IF (o_s_trmb2%flag(iff)<=lev_files(iff)) THEN
     623!     CALL histwrite_phy(nid_files(iff),o_s_trmb2%name,itau_w,s_trmb2)
     624!       ENDIF
     625
     626!       IF (o_s_trmb3%flag(iff)<=lev_files(iff)) THEN
     627!     CALL histwrite_phy(nid_files(iff),o_s_trmb3%name,itau_w,s_trmb3)
     628!       ENDIF
    628629
    629630! Champs interpolles sur des niveaux de pression
     
    655656       ENDIF
    656657
    657        IF (o_phiSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
    658       CALL histwrite_phy(nid_files(iff),o_phiSTDlevs(ll)%name,
     658       IF (o_zSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
     659      CALL histwrite_phy(nid_files(iff),o_zSTDlevs(ll)%name,
    659660     &               itau_w,phiwriteSTD(:,k,iff))
    660661       ENDIF
     
    11731174       ENDIF
    11741175
     1176       IF (o_ovapinit%flag(iff)<=lev_files(iff)) THEN
     1177      CALL histwrite_phy(nid_files(iff),o_ovapinit%name,itau_w,
     1178     $ qx(:,:,ivap))
     1179       ENDIF
     1180
    11751181       IF (o_ovap%flag(iff)<=lev_files(iff)) THEN
    1176       CALL histwrite_phy(nid_files(iff),o_ovap%name,itau_w,qx(:,:,ivap))
    1177        ENDIF
    1178 
    1179        IF (o_ovapinit%flag(iff)<=lev_files(iff)) THEN
    1180       CALL histwrite_phy(nid_files(iff),
    1181      $                   o_ovapinit%name,itau_w,q_seri)
     1182      CALL histwrite_phy(nid_files(iff),
     1183     $                   o_ovap%name,itau_w,q_seri)
    11821184       ENDIF
    11831185
     
    12621264        ENDDO !nsrf=1, nbsrf
    12631265
    1264        IF (o_albs%flag(iff)<=lev_files(iff)) THEN
    1265       CALL histwrite_phy(nid_files(iff),o_albs%name,itau_w,albsol1)
    1266        ENDIF
    1267 
    1268        IF (o_albslw%flag(iff)<=lev_files(iff)) THEN
    1269       CALL histwrite_phy(nid_files(iff),o_albslw%name,itau_w,albsol2)
     1266       IF (o_alb1%flag(iff)<=lev_files(iff)) THEN
     1267      CALL histwrite_phy(nid_files(iff),o_alb1%name,itau_w,albsol1)
     1268       ENDIF
     1269
     1270       IF (o_alb2%flag(iff)<=lev_files(iff)) THEN
     1271      CALL histwrite_phy(nid_files(iff),o_alb2%name,itau_w,albsol2)
    12701272       ENDIF
    12711273
     
    14211423       ENDIF
    14221424
    1423       ENDIF !iflag_thermals
     1425!IM   ENDIF !iflag_thermals
    14241426
    14251427       IF (o_f0_th%flag(iff)<=lev_files(iff)) THEN
     
    14351437      CALL histwrite_phy(nid_files(iff),o_dqthe%name,itau_w,zx_tmp_fi3d)
    14361438       ENDIF
     1439
     1440      ENDIF !iflag_thermals
    14371441
    14381442       IF (o_dtajs%flag(iff)<=lev_files(iff)) THEN
  • LMDZ4/trunk/libf/phylmd/phys_state_var_mod.F90

    r1362 r1398  
    117117      REAL,ALLOCATABLE,SAVE :: T2sumSTD(:,:,:)
    118118!$OMP THREADPRIVATE(T2sumSTD)
     119      REAL,ALLOCATABLE,SAVE :: O3sumSTD(:,:,:), O3daysumSTD(:,:,:)
     120!$OMP THREADPRIVATE(O3sumSTD,O3daysumSTD)
    119121!IM begin
    120122      REAL,ALLOCATABLE,SAVE :: wlevSTD(:,:), ulevSTD(:,:), vlevSTD(:,:)
     
    142144      REAL,ALLOCATABLE,SAVE :: T2STD(:,:)
    143145!$OMP THREADPRIVATE(T2STD)
     146      REAL,ALLOCATABLE,SAVE :: O3STD(:,:), O3daySTD(:,:)
     147!$OMP THREADPRIVATE(O3STD,O3daySTD)
    144148!IM end
    145149      INTEGER,ALLOCATABLE,SAVE :: seed_old(:,:)
     
    150154!$OMP THREADPRIVATE(alb_neig)
    151155!cloud base mass flux
    152       REAL,ALLOCATABLE,SAVE :: ema_workcbmf(:), ema_cbmf(:)
    153 !$OMP THREADPRIVATE(ema_workcbmf,ema_cbmf)
     156      REAL,ALLOCATABLE,SAVE :: ema_cbmf(:)
     157!$OMP THREADPRIVATE(ema_cbmf)
    154158!cloud base pressure & cloud top pressure
    155159      REAL,ALLOCATABLE,SAVE :: ema_pcb(:), ema_pct(:)
     
    379383      ALLOCATE(v2sumSTD(klon,nlevSTD,nout))
    380384      ALLOCATE(T2sumSTD(klon,nlevSTD,nout))
     385      ALLOCATE(O3sumSTD(klon,nlevSTD,nout))
     386      ALLOCATE(O3daysumSTD(klon,nlevSTD,nout))
    381387!IM beg
    382388      ALLOCATE(wlevSTD(klon,nlevSTD), ulevSTD(klon,nlevSTD), vlevSTD(klon,nlevSTD))
     
    388394      ALLOCATE(u2STD(klon,nlevSTD),v2STD(klon,nlevSTD))
    389395      ALLOCATE(T2STD(klon,nlevSTD))
     396      ALLOCATE(O3STD(klon,nlevSTD))
     397      ALLOCATE(O3daySTD(klon,nlevSTD))
    390398!IM end
    391399      ALLOCATE(seed_old(klon,napisccp))
     
    393401      ALLOCATE(alb_neig(klon))
    394402!cloud base mass flux
    395       ALLOCATE(ema_workcbmf(klon), ema_cbmf(klon))
     403      ALLOCATE(ema_cbmf(klon))
    396404!cloud base pressure & cloud top pressure
    397405      ALLOCATE(ema_pcb(klon), ema_pct(klon))
     
    490498      deallocate(v2sumSTD)
    491499      deallocate(T2sumSTD)
     500      deallocate(O3sumSTD)
     501      deallocate(O3daysumSTD)
    492502!IM beg
    493503      deallocate(wlevSTD,ulevSTD,vlevSTD,tlevSTD,qlevSTD,rhlevSTD,philevSTD)
    494       deallocate(uvSTD,vqSTD,vTSTD,wqSTD,vphiSTD,wTSTD,u2STD,v2STD,T2STD)
     504      deallocate(uvSTD,vqSTD,vTSTD,wqSTD,vphiSTD,wTSTD,u2STD,v2STD,T2STD,O3STD,O3daySTD)
    495505!IM end
    496506      deallocate(seed_old)
    497507      deallocate(zuthe, zvthe)
    498508      deallocate(alb_neig)
    499       deallocate(ema_workcbmf, ema_cbmf)
     509      deallocate(ema_cbmf)
    500510      deallocate(ema_pcb, ema_pct)
    501511      deallocate(Ma, qcondc)
  • LMDZ4/trunk/libf/phylmd/physiq.F

    r1391 r1398  
    14101410           ema_pcb(i)  = 0.
    14111411           ema_pct(i)  = 0.
    1412            ema_workcbmf(i) = 0.
     1412c          ema_workcbmf(i) = 0.
    14131413          ENDDO
    14141414cIM15/11/02 rajout initialisation ibas_con,itop_con cf. SB =>BEG
     
    14351435c================================================================================
    14361436
    1437          ENDIF
     1437         ENDIF !debut
    14381438
    14391439           DO i=1,klon
     
    21222122     .        d_t_con,d_q_con,d_u_con,d_v_con,d_tr,
    21232123     .        rain_con, snow_con, ibas_con, itop_con, sigd,
    2124      .        upwd,dnwd,dnwd0,
     2124     .        ema_cbmf,upwd,dnwd,dnwd0,
    21252125     .        Ma,mip,Vprecip,cape,cin,tvp,Tconv,iflagctrl,
    21262126     .        pbase,bbase,dtvpdt1,dtvpdq1,dplcldt,dplcldr,qcondc,wd,
     
    21942194              endif
    21952195            endif
    2196           ENDDO
    2197           DO i = 1, klon
    2198             ema_cbmf(i) = ema_workcbmf(i)
    2199           ENDDO     
     2196          ENDDO     
    22002197      ELSE IF (iflag_con.eq.0) THEN
    22012198          write(lunout,*) 'On n appelle pas la convection'
     
    35733570      DO k = 1, klev
    35743571      DO i = 1, klon
    3575         theta(i,k)=t(i,k)*(100000./pplay(i,k))**(RD/RCPD)
     3572cJYG/IM theta en debut du pas de temps
     3573cJYG/IM       theta(i,k)=t(i,k)*(100000./pplay(i,k))**(RD/RCPD)
     3574cJYG/IM theta en fin de pas de temps de physique
     3575        theta(i,k)=t_seri(i,k)*(100000./pplay(i,k))**(RD/RCPD)
    35763576      ENDDO
    35773577      ENDDO
  • LMDZ4/trunk/libf/phylmd/undefSTD.F

    r1354 r1398  
    8484           v2sumSTD(i,k,n)=v2sumSTD(i,k,n)+v2STD(i,k)
    8585           T2sumSTD(i,k,n)=T2sumSTD(i,k,n)+T2STD(i,k)
     86           O3sumSTD(i,k,n)=O3sumSTD(i,k,n)+O3STD(i,k)
     87           O3daysumSTD(i,k,n)=O3daysumSTD(i,k,n)+O3daySTD(i,k)
    8688          ENDIF
    8789         ENDDO !i
  • LMDZ4/trunk/libf/phylmd/write_histhfNMC.h

    r1374 r1398  
    3333        DO i=1, klon
    3434         IF(tnondef(i,k,3).NE.missing_val) THEN
    35           zx_tmp_fiNC(i,k) = (100.*tnondef(i,k,3))/ecrit_hf2mth
     35          zx_tmp_fiNC(i,k) = (100.*tnondef(i,k,3))/freq_moyNMC(3)
    3636         ELSE
    3737          zx_tmp_fiNC(i,k) = missing_val
  • LMDZ4/trunk/libf/phylmd/write_histmthNMC.h

    r1374 r1398  
    3333        DO i=1, klon
    3434         IF(tnondef(i,k,1).NE.missing_val) THEN
    35           zx_tmp_fiNC(i,k) = (100.*tnondef(i,k,1))/ecrit_hf2mth
     35          zx_tmp_fiNC(i,k) = (100.*tnondef(i,k,1))/freq_moyNMC(1)
    3636         ELSE
    3737          zx_tmp_fiNC(i,k) = missing_val
     
    6060       CALL histwrite_phy(nid_mthnmc,"TxT",itau_w,T2sumSTD(:,:,1))
    6161c
     62       DO k=1, nlevSTD
     63        DO i=1, klon
     64         IF(O3sumSTD(i,k,1).NE.missing_val) THEN
     65          zx_tmp_fiNC(i,k) = O3sumSTD(i,k,1) * 1.e+9
     66         ELSE
     67          zx_tmp_fiNC(i,k) = missing_val
     68         ENDIF
     69        ENDDO
     70       ENDDO !k=1, nlevSTD
     71       CALL histwrite_phy(nid_mthnmc,"tro3",itau_w,
     72     $ zx_tmp_fiNC)
     73c
     74       if (read_climoz == 2) THEN
     75       DO k=1, nlevSTD
     76        DO i=1, klon
     77         IF(O3daysumSTD(i,k,1).NE.missing_val) THEN
     78          zx_tmp_fiNC(i,k) = O3daysumSTD(i,k,1) * 1.e+9
     79         ELSE
     80          zx_tmp_fiNC(i,k) = missing_val
     81         ENDIF
     82        ENDDO
     83       ENDDO !k=1, nlevSTD
     84c
     85        CALL histwrite_phy(nid_mthnmc,"tro3_daylight",itau_w,
     86     $  zx_tmp_fiNC)
     87       endif
     88c
    6289      if (ok_sync) then
    6390c$OMP MASTER
Note: See TracChangeset for help on using the changeset viewer.