Changeset 1334 for LMDZ4/trunk


Ignore:
Timestamp:
Mar 31, 2010, 2:54:07 PM (15 years ago)
Author:
idelkadi
Message:
  • Rajout de champs de sorties
  • Correction dans la partie convection (nouvelle physique)
Location:
LMDZ4/trunk/libf/phylmd
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/phylmd/concvl.F

    r1146 r1334  
    1 
    2 !
    3 ! $Header$
    4 !
    51      SUBROUTINE concvl (iflag_con,iflag_clos,
    62     .             dtime,paprs,pplay,
     
    8985       REAL em_ph(klon,klev+1),em_p(klon,klev)
    9086       REAL upwd(klon,klev),dnwd(klon,klev),dnwdbis(klon,klev)
    91        REAL Ma(klon,klev), mip(klon,klev),Vprecip(klon,klev)
     87
     88!!       REAL Ma(klon,klev), mip(klon,klev),Vprecip(klon,klev)     !jyg
     89       REAL Ma(klon,klev), mip(klon,klev),Vprecip(klon,klev+1)     !jyg
     90
    9291       real da(klon,klev),phi(klon,klev,klev),mp(klon,klev)
    9392       REAL cape(klon),cin(klon),tvp(klon,klev)
     
    254253         DO i=1,klon
    255254         em_ph(i,k) = paprs(i,k) / 100.0
     255         pmflxr(i,k)=0.
    256256         pmflxs(i,k)=0.
    257257      ENDDO
     
    336336     $              em_p,em_ph,iflag,
    337337     $              d_t,d_q,d_u,d_v,d_tra,rain,
    338      $              pmflxr,cbmf,work1,work2,
     338!!     $              pmflxr,cbmf,work1,work2,           !jyg
     339     $              Vprecip,cbmf,work1,work2,            !jyg
    339340     $              kbas,ktop,
    340341     $              dtime,Ma,upwd,dnwd,dnwdbis,qcondc,wd,cape,
     
    390391        ENDDO
    391392      ENDDO
     393c                                                  !jyg
     394c--Separation neige/pluie (pour diagnostics)       !jyg
     395      DO k = 1, klev                               !jyg
     396      DO i = 1, klon                               !jyg
     397       IF (t1(i,k).LT.RTT) THEN                    !jyg
     398         pmflxs(i,k)=Vprecip(i,k)                  !jyg
     399       ELSE                                        !jyg
     400         pmflxr(i,k)=Vprecip(i,k)                  !jyg
     401       ENDIF                                       !jyg
     402      ENDDO                                        !jyg
     403      ENDDO                                        !jyg
    392404c
    393405cc      IF (if_ebil.ge.2) THEN
  • LMDZ4/trunk/libf/phylmd/cv3_routines.F

    r1277 r1334  
    23192319      real upwd(nloc,nd), dnwd(nloc,nd), ma(nloc,nd)
    23202320      real dnwd0(nloc,nd), mip(nloc,nd)
    2321       real Vprecip(nloc,nd)
     2321      real Vprecip(nloc,nd+1)
    23222322      real tls(nloc,nd), tps(nloc,nd)
    23232323      real qcondc(nloc,nd)                               ! cld
     
    23552355      do il=1,ncum
    23562356       precip(il)=0.0
    2357 c       Vprecip(il,nd+1)=0.0
     2357       Vprecip(il,nd+1)=0.0
    23582358       wd(il)=0.0     ! gust
    23592359      enddo
  • LMDZ4/trunk/libf/phylmd/cv3a_uncompress.F

    r879 r1334  
    3939      real ft(nloc,nd), fq(nloc,nd), fu(nloc,nd), fv(nloc,nd)
    4040      real ftra(nloc,nd,ntra)
    41       real Ma(nloc,nd),mip(nloc,nd),Vprecip(nloc,nd)
     41      real Ma(nloc,nd),mip(nloc,nd),Vprecip(nloc,nd+1)
    4242      real upwd(nloc,nd),dnwd(nloc,nd),dnwd0(nloc,nd)
    4343      real qcondc(nloc,nd)
     
    5555      real ft1(len,nd), fq1(len,nd), fu1(len,nd), fv1(len,nd)
    5656      real ftra1(len,nd,ntra)
    57       real Ma1(len,nd),mip1(len,nd),Vprecip1(len,nd)
     57      real Ma1(len,nd),mip1(len,nd),Vprecip1(len,nd+1)
    5858      real upwd1(len,nd),dnwd1(len,nd),dnwd01(len,nd)
    5959      real qcondc1(len,nd)
  • LMDZ4/trunk/libf/phylmd/cva_driver.F

    r1279 r1334  
    151151      real Ma1(len,nd)
    152152      real mip1(len,nd)
    153       real Vprecip1(len,nd)
     153!      real Vprecip1(len,nd) Correction abderr le 23 03 10
     154      real Vprecip1(len,nd+1)
    154155      real upwd1(len,nd)
    155156      real dnwd1(len,nd)
     
    404405      real tps(nloc,klev), qprime(nloc), tprime(nloc)
    405406      real precip(nloc)
    406       real Vprecip(nloc,klev)
     407!      real Vprecip(nloc,klev)
     408      real Vprecip(nloc,klev+1)
    407409      real tra(nloc,klev,ntra), trap(nloc,klev,ntra)
    408410      real ftra(nloc,klev,ntra), traent(nloc,klev,klev,ntra)
     
    488490      call  zilch(Ma1     ,nword2)
    489491      call  zilch(mip1    ,nword2)
    490       call  zilch(Vprecip1,nword2)
     492!      call  zilch(Vprecip1,nword2)
     493      Vprecip1=0.
    491494      call  zilch(upwd1   ,nword2)
    492495      call  zilch(dnwd1   ,nword2)
  • LMDZ4/trunk/libf/phylmd/newmicro.F

    r1305 r1334  
    131131      xflwc = 0.d0
    132132      xfiwc = 0.d0
     133
     134! Initialisation
     135      reliq=0.
     136      reice=0.
    133137
    134138      DO k = 1, klev
  • LMDZ4/trunk/libf/phylmd/phys_output_mod.F90

    r1307 r1334  
    1 !
    21! $Id$
    32!
     
    5453
    5554!!! 1D
    56   type(ctrl_out),save :: o_phis         = ctrl_out((/ 1, 1, 10, 1, 1 /), 'phis')
    57   type(ctrl_out),save :: o_aire         = ctrl_out((/ 1, 1, 10,  1, 1 /),'aire')
     55  type(ctrl_out),save :: o_phis         = ctrl_out((/ 1, 1, 10, 5, 1 /), 'phis')
     56  type(ctrl_out),save :: o_aire         = ctrl_out((/ 1, 1, 10,  10, 1 /),'aire')
    5857  type(ctrl_out),save :: o_contfracATM  = ctrl_out((/ 10, 1,  1, 10, 10 /),'contfracATM')
    5958  type(ctrl_out),save :: o_contfracOR   = ctrl_out((/ 10, 1,  1, 10, 10 /),'contfracOR')
     
    6160 
    6261!!! 2D
    63   type(ctrl_out),save :: o_flat         = ctrl_out((/ 10, 1, 10, 10, 1 /),'flat')
     62  type(ctrl_out),save :: o_flat         = ctrl_out((/ 5, 1, 10, 5, 1 /),'flat')
    6463  type(ctrl_out),save :: o_slp          = ctrl_out((/ 1, 1, 1, 10, 1 /),'slp')
    65   type(ctrl_out),save :: o_tsol         = ctrl_out((/ 1, 1, 1, 1, 1 /),'tsol')
    66   type(ctrl_out),save :: o_t2m          = ctrl_out((/ 1, 1, 1, 1, 1 /),'t2m')
     64  type(ctrl_out),save :: o_tsol         = ctrl_out((/ 1, 1, 1, 5, 1 /),'tsol')
     65  type(ctrl_out),save :: o_t2m          = ctrl_out((/ 1, 1, 1, 5, 1 /),'t2m')
    6766  type(ctrl_out),save :: o_t2m_min      = ctrl_out((/ 1, 1, 10, 10, 10 /),'t2m_min')
    6867  type(ctrl_out),save :: o_t2m_max      = ctrl_out((/ 1, 1, 10, 10, 10 /),'t2m_max')
     
    7574  type(ctrl_out),save :: o_wind10max    = ctrl_out((/ 10, 1, 10, 10, 10 /),'wind10max')
    7675  type(ctrl_out),save :: o_sicf         = ctrl_out((/ 1, 1, 10, 10, 10 /),'sicf')
    77   type(ctrl_out),save :: o_q2m          = ctrl_out((/ 1, 1, 1, 1, 1 /),'q2m')
    78   type(ctrl_out),save :: o_u10m         = ctrl_out((/ 1, 1, 1, 1, 1 /),'u10m')
    79   type(ctrl_out),save :: o_v10m         = ctrl_out((/ 1, 1, 1, 1, 1 /),'v10m')
    80   type(ctrl_out),save :: o_psol         = ctrl_out((/ 1, 1, 1, 1, 1 /),'psol')
     76  type(ctrl_out),save :: o_q2m          = ctrl_out((/ 1, 1, 1, 5, 1 /),'q2m')
     77  type(ctrl_out),save :: o_u10m         = ctrl_out((/ 1, 1, 1, 5, 1 /),'u10m')
     78  type(ctrl_out),save :: o_v10m         = ctrl_out((/ 1, 1, 1, 5, 1 /),'v10m')
     79  type(ctrl_out),save :: o_psol         = ctrl_out((/ 1, 1, 1, 5, 1 /),'psol')
    8180  type(ctrl_out),save :: o_qsurf        = ctrl_out((/ 1, 10, 10, 10, 10 /),'qsurf')
    8281
     
    9190                                              ctrl_out((/ 10, 4, 10, 10, 10 /),'v10m_sic') /)
    9291
    93   type(ctrl_out),save :: o_qsol         = ctrl_out((/ 1, 10, 10, 1, 1 /),'qsol')
     92  type(ctrl_out),save :: o_qsol         = ctrl_out((/ 1, 10, 10, 10, 10 /),'qsol')
    9493
    9594  type(ctrl_out),save :: o_ndayrain     = ctrl_out((/ 1, 10, 10, 10, 10 /),'ndayrain')
    96   type(ctrl_out),save :: o_precip       = ctrl_out((/ 1, 1, 1, 1, 1 /),'precip')
    97   type(ctrl_out),save :: o_plul         = ctrl_out((/ 1, 1, 1, 1, 10 /),'plul')
    98 
    99   type(ctrl_out),save :: o_pluc         = ctrl_out((/ 1, 1, 1, 1, 10 /),'pluc')
    100   type(ctrl_out),save :: o_snow         = ctrl_out((/ 1, 1, 10, 1, 10 /),'snow')
    101   type(ctrl_out),save :: o_evap         = ctrl_out((/ 1, 1, 10, 1, 10 /),'evap')
     95  type(ctrl_out),save :: o_precip       = ctrl_out((/ 1, 1, 1, 5, 10 /),'precip')
     96  type(ctrl_out),save :: o_plul         = ctrl_out((/ 1, 1, 1, 10, 10 /),'plul')
     97
     98  type(ctrl_out),save :: o_pluc         = ctrl_out((/ 1, 1, 1, 5, 10 /),'pluc')
     99  type(ctrl_out),save :: o_snow         = ctrl_out((/ 1, 1, 10, 5, 10 /),'snow')
     100  type(ctrl_out),save :: o_evap         = ctrl_out((/ 1, 1, 10, 10, 10 /),'evap')
     101  type(ctrl_out),save,dimension(4) :: o_evap_srf     = (/ ctrl_out((/ 1, 1, 10, 10, 10 /),'evap_ter'), &
     102                                           ctrl_out((/ 1, 1, 10, 10, 10 /),'evap_lic'), &
     103                                           ctrl_out((/ 1, 1, 10, 10, 10 /),'evap_oce'), &
     104                                           ctrl_out((/ 1, 1, 10, 10, 10 /),'evap_sic') /)
     105  type(ctrl_out),save :: o_msnow       = ctrl_out((/ 1, 10, 10, 10, 10 /),'msnow')
     106  type(ctrl_out),save :: o_fsnow       = ctrl_out((/ 1, 10, 10, 10, 10 /),'fsnow')
     107
    102108  type(ctrl_out),save :: o_tops         = ctrl_out((/ 1, 1, 10, 10, 10 /),'tops')
    103109  type(ctrl_out),save :: o_tops0        = ctrl_out((/ 1, 5, 10, 10, 10 /),'tops0')
    104   type(ctrl_out),save :: o_topl         = ctrl_out((/ 1, 1, 10, 1, 10 /),'topl')
     110  type(ctrl_out),save :: o_topl         = ctrl_out((/ 1, 1, 10, 5, 10 /),'topl')
    105111  type(ctrl_out),save :: o_topl0        = ctrl_out((/ 1, 5, 10, 10, 10 /),'topl0')
    106112  type(ctrl_out),save :: o_SWupTOA      = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWupTOA')
     
    108114  type(ctrl_out),save :: o_SWdnTOA      = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWdnTOA')
    109115  type(ctrl_out),save :: o_SWdnTOAclr   = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWdnTOAclr')
     116  type(ctrl_out),save :: o_nettop       = ctrl_out((/ 1, 4, 10, 10, 10 /),'nettop')
     117
    110118  type(ctrl_out),save :: o_SWup200      = ctrl_out((/ 1, 10, 10, 10, 10 /),'SWup200')
    111119  type(ctrl_out),save :: o_SWup200clr   = ctrl_out((/ 10, 1, 10, 10, 10 /),'SWup200clr')
     
    123131  type(ctrl_out),save :: o_LWdn200      = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWdn200')
    124132  type(ctrl_out),save :: o_LWdn200clr   = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWdn200clr')
    125   type(ctrl_out),save :: o_sols         = ctrl_out((/ 1, 1, 10, 1, 10 /),'sols')
     133  type(ctrl_out),save :: o_sols         = ctrl_out((/ 1, 1, 10, 10, 10 /),'sols')
    126134  type(ctrl_out),save :: o_sols0        = ctrl_out((/ 1, 5, 10, 10, 10 /),'sols0')
    127   type(ctrl_out),save :: o_soll         = ctrl_out((/ 1, 1, 10, 1, 10 /),'soll')
     135  type(ctrl_out),save :: o_soll         = ctrl_out((/ 1, 1, 10, 10, 10 /),'soll')
    128136  type(ctrl_out),save :: o_soll0        = ctrl_out((/ 1, 5, 10, 10, 10 /),'soll0')
    129137  type(ctrl_out),save :: o_radsol       = ctrl_out((/ 1, 1, 10, 10, 10 /),'radsol')
    130   type(ctrl_out),save :: o_SWupSFC      = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWupSFC')
     138  type(ctrl_out),save :: o_SWupSFC      = ctrl_out((/ 1, 4, 10, 5, 10 /),'SWupSFC')
    131139  type(ctrl_out),save :: o_SWupSFCclr   = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWupSFCclr')
    132   type(ctrl_out),save :: o_SWdnSFC      = ctrl_out((/ 1, 1, 10, 10, 10 /),'SWdnSFC')
    133   type(ctrl_out),save :: o_SWdnSFCclr   = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWdnSFCclr')
     140  type(ctrl_out),save :: o_SWdnSFC      = ctrl_out((/ 1, 1, 10, 5, 10 /),'SWdnSFC')
     141  type(ctrl_out),save :: o_SWdnSFCclr   = ctrl_out((/ 1, 4, 10, 5, 10 /),'SWdnSFCclr')
    134142  type(ctrl_out),save :: o_LWupSFC      = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWupSFC')
    135   type(ctrl_out),save :: o_LWupSFCclr   = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWupSFCclr')
    136   type(ctrl_out),save :: o_LWdnSFC      = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWdnSFC')
    137   type(ctrl_out),save :: o_LWdnSFCclr   = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWdnSFCclr')
    138   type(ctrl_out),save :: o_bils         = ctrl_out((/ 1, 2, 10, 1, 10 /),'bils')
    139   type(ctrl_out),save :: o_sens         = ctrl_out((/ 1, 1, 10, 1, 1 /),'sens')
    140   type(ctrl_out),save :: o_fder         = ctrl_out((/ 1, 2, 10, 1, 10 /),'fder')
     143  type(ctrl_out),save :: o_LWupSFCclr   = ctrl_out((/ 1, 4, 10, 5, 10 /),'LWupSFCclr')
     144  type(ctrl_out),save :: o_LWdnSFC      = ctrl_out((/ 1, 4, 10, 5, 10 /),'LWdnSFC')
     145  type(ctrl_out),save :: o_LWdnSFCclr   = ctrl_out((/ 1, 4, 10, 5, 10 /),'LWdnSFCclr')
     146  type(ctrl_out),save :: o_bils         = ctrl_out((/ 1, 2, 10, 5, 10 /),'bils')
     147  type(ctrl_out),save :: o_sens         = ctrl_out((/ 1, 1, 10, 5, 10 /),'sens')
     148  type(ctrl_out),save :: o_fder         = ctrl_out((/ 1, 2, 10, 10, 10 /),'fder')
    141149  type(ctrl_out),save :: o_ffonte       = ctrl_out((/ 1, 10, 10, 10, 10 /),'ffonte')
    142150  type(ctrl_out),save :: o_fqcalving    = ctrl_out((/ 1, 10, 10, 10, 10 /),'fqcalving')
    143151  type(ctrl_out),save :: o_fqfonte      = ctrl_out((/ 1, 10, 10, 10, 10 /),'fqfonte')
    144152
    145   type(ctrl_out),save,dimension(4) :: o_taux_srf     = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'taux_ter'), &
    146                                                  ctrl_out((/ 1, 4, 10, 1, 10 /),'taux_lic'), &
    147                                                  ctrl_out((/ 1, 4, 10, 1, 10 /),'taux_oce'), &
    148                                                  ctrl_out((/ 1, 4, 10, 1, 10 /),'taux_sic') /)
    149 
    150   type(ctrl_out),save,dimension(4) :: o_tauy_srf     = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'tauy_ter'), &
    151                                                  ctrl_out((/ 1, 4, 10, 1, 10 /),'tauy_lic'), &
    152                                                  ctrl_out((/ 1, 4, 10, 1, 10 /),'tauy_oce'), &
    153                                                  ctrl_out((/ 1, 4, 10, 1, 10 /),'tauy_sic') /)
    154 
    155 
    156   type(ctrl_out),save,dimension(4) :: o_pourc_srf    = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'pourc_ter'), &
    157                                                  ctrl_out((/ 1, 4, 10, 1, 10 /),'pourc_lic'), &
    158                                                  ctrl_out((/ 1, 4, 10, 1, 10 /),'pourc_oce'), &
    159                                                  ctrl_out((/ 1, 4, 10, 1, 10 /),'pourc_sic') /)     
    160 
    161   type(ctrl_out),save,dimension(4) :: o_fract_srf    = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'fract_ter'), &
    162                                                  ctrl_out((/ 1, 4, 10, 1, 10 /),'fract_lic'), &
    163                                                  ctrl_out((/ 1, 4, 10, 1, 10 /),'fract_oce'), &
    164                                                  ctrl_out((/ 1, 4, 10, 1, 10 /),'fract_sic') /)
    165 
    166   type(ctrl_out),save,dimension(4) :: o_tsol_srf     = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'tsol_ter'), &
    167                                                  ctrl_out((/ 1, 4, 10, 1, 10 /),'tsol_lic'), &
    168                                                  ctrl_out((/ 1, 4, 10, 1, 10 /),'tsol_oce'), &
    169                                                  ctrl_out((/ 1, 4, 10, 1, 10 /),'tsol_sic') /)
     153  type(ctrl_out),save :: o_taux         = ctrl_out((/ 1, 10, 10, 10, 10 /),'taux')
     154  type(ctrl_out),save :: o_tauy         = ctrl_out((/ 1, 10, 10, 10, 10 /),'tauy')
     155  type(ctrl_out),save,dimension(4) :: o_taux_srf     = (/ ctrl_out((/ 1, 4, 10, 10, 10 /),'taux_ter'), &
     156                                                 ctrl_out((/ 1, 4, 10, 10, 10 /),'taux_lic'), &
     157                                                 ctrl_out((/ 1, 4, 10, 10, 10 /),'taux_oce'), &
     158                                                 ctrl_out((/ 1, 4, 10, 10, 10 /),'taux_sic') /)
     159
     160  type(ctrl_out),save,dimension(4) :: o_tauy_srf     = (/ ctrl_out((/ 1, 4, 10, 10, 10 /),'tauy_ter'), &
     161                                                 ctrl_out((/ 1, 4, 10, 10, 10 /),'tauy_lic'), &
     162                                                 ctrl_out((/ 1, 4, 10, 10, 10 /),'tauy_oce'), &
     163                                                 ctrl_out((/ 1, 4, 10, 10, 10 /),'tauy_sic') /)
     164
     165
     166  type(ctrl_out),save,dimension(4) :: o_pourc_srf    = (/ ctrl_out((/ 1, 4, 10, 10, 10 /),'pourc_ter'), &
     167                                                 ctrl_out((/ 1, 4, 10, 10, 10 /),'pourc_lic'), &
     168                                                 ctrl_out((/ 1, 4, 10, 10, 10 /),'pourc_oce'), &
     169                                                 ctrl_out((/ 1, 4, 10, 10, 10 /),'pourc_sic') /)     
     170
     171  type(ctrl_out),save,dimension(4) :: o_fract_srf    = (/ ctrl_out((/ 1, 4, 10, 10, 10 /),'fract_ter'), &
     172                                                 ctrl_out((/ 1, 4, 10, 10, 10 /),'fract_lic'), &
     173                                                 ctrl_out((/ 1, 4, 10, 10, 10 /),'fract_oce'), &
     174                                                 ctrl_out((/ 1, 4, 10, 10, 10 /),'fract_sic') /)
     175
     176  type(ctrl_out),save,dimension(4) :: o_tsol_srf     = (/ ctrl_out((/ 1, 4, 10, 10, 10 /),'tsol_ter'), &
     177                                                 ctrl_out((/ 1, 4, 10, 10, 10 /),'tsol_lic'), &
     178                                                 ctrl_out((/ 1, 4, 10, 10, 10 /),'tsol_oce'), &
     179                                                 ctrl_out((/ 1, 4, 10, 10, 10 /),'tsol_sic') /)
    170180
    171181  type(ctrl_out),save,dimension(4) :: o_sens_srf     = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'sens_ter'), &
     
    200210
    201211
    202   type(ctrl_out),save :: o_cdrm         = ctrl_out((/ 1, 10, 10, 1, 10 /),'cdrm')
     212  type(ctrl_out),save :: o_cdrm         = ctrl_out((/ 1, 10, 10, 10, 10 /),'cdrm')
    203213  type(ctrl_out),save :: o_cdrh         = ctrl_out((/ 1, 10, 10, 1, 10 /),'cdrh')
    204214  type(ctrl_out),save :: o_cldl         = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldl')
    205215  type(ctrl_out),save :: o_cldm         = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldm')
    206216  type(ctrl_out),save :: o_cldh         = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldh')
    207   type(ctrl_out),save :: o_cldt         = ctrl_out((/ 1, 1, 2, 10, 10 /),'cldt')
     217  type(ctrl_out),save :: o_cldt         = ctrl_out((/ 1, 1, 2, 5, 10 /),'cldt')
    208218  type(ctrl_out),save :: o_cldq         = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldq')
    209219  type(ctrl_out),save :: o_lwp          = ctrl_out((/ 1, 5, 10, 10, 10 /),'lwp')
     
    215225 
    216226  type(ctrl_out),save :: o_cape         = ctrl_out((/ 1, 10, 10, 10, 10 /),'cape')
    217   type(ctrl_out),save :: o_pbase        = ctrl_out((/ 1, 10, 10, 10, 10 /),'pbase')
    218   type(ctrl_out),save :: o_ptop         = ctrl_out((/ 1, 4, 10, 10, 10 /),'ptop')
     227  type(ctrl_out),save :: o_pbase        = ctrl_out((/ 1, 5, 10, 10, 10 /),'pbase')
     228  type(ctrl_out),save :: o_ptop         = ctrl_out((/ 1, 5, 10, 10, 10 /),'ptop')
    219229  type(ctrl_out),save :: o_fbase        = ctrl_out((/ 1, 10, 10, 10, 10 /),'fbase')
    220230  type(ctrl_out),save :: o_prw          = ctrl_out((/ 1, 1, 10, 10, 10 /),'prw')
    221231
    222   type(ctrl_out),save :: o_s_pblh       = ctrl_out((/ 1, 10, 10, 1, 1 /),'s_pblh')
    223   type(ctrl_out),save :: o_s_pblt       = ctrl_out((/ 1, 10, 10, 1, 1 /),'s_pblt')
    224   type(ctrl_out),save :: o_s_lcl        = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_lcl')
    225   type(ctrl_out),save :: o_s_capCL      = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_capCL')
    226   type(ctrl_out),save :: o_s_oliqCL     = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_oliqCL')
    227   type(ctrl_out),save :: o_s_cteiCL     = ctrl_out((/ 1, 10, 10, 1, 1 /),'s_cteiCL')
    228   type(ctrl_out),save :: o_s_therm      = ctrl_out((/ 1, 10, 10, 1, 1 /),'s_therm')
    229   type(ctrl_out),save :: o_s_trmb1      = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_trmb1')
    230   type(ctrl_out),save :: o_s_trmb2      = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_trmb2')
    231   type(ctrl_out),save :: o_s_trmb3      = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_trmb3')
     232  type(ctrl_out),save :: o_s_pblh       = ctrl_out((/ 1, 10, 10, 10, 1 /),'s_pblh')
     233  type(ctrl_out),save :: o_s_pblt       = ctrl_out((/ 1, 10, 10, 10, 1 /),'s_pblt')
     234  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, 1 /),'s_cteiCL')
     238  type(ctrl_out),save :: o_s_therm      = ctrl_out((/ 1, 10, 10, 10, 1 /),'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')
    232242
    233243  type(ctrl_out),save :: o_slab_bils    = ctrl_out((/ 1, 1, 10, 10, 10 /),'slab_bils_oce')
    234244
    235   type(ctrl_out),save :: o_ale_bl       = ctrl_out((/ 1, 1, 1, 1, 10 /),'ale_bl')
    236   type(ctrl_out),save :: o_alp_bl       = ctrl_out((/ 1, 1, 1, 1, 10 /),'alp_bl')
    237   type(ctrl_out),save :: o_ale_wk       = ctrl_out((/ 1, 1, 1, 1, 10 /),'ale_wk')
    238   type(ctrl_out),save :: o_alp_wk       = ctrl_out((/ 1, 1, 1, 1, 10 /),'alp_wk')
    239 
    240   type(ctrl_out),save :: o_ale          = ctrl_out((/ 1, 1, 1, 1, 10 /),'ale')
    241   type(ctrl_out),save :: o_alp          = ctrl_out((/ 1, 1, 1, 1, 10 /),'alp')
    242   type(ctrl_out),save :: o_cin          = ctrl_out((/ 1, 1, 1, 1, 10 /),'cin')
    243   type(ctrl_out),save :: o_wape         = ctrl_out((/ 1, 1, 1, 1, 10 /),'wape')
     245  type(ctrl_out),save :: o_ale_bl       = ctrl_out((/ 1, 1, 1, 10, 10 /),'ale_bl')
     246  type(ctrl_out),save :: o_alp_bl       = ctrl_out((/ 1, 1, 1, 10, 10 /),'alp_bl')
     247  type(ctrl_out),save :: o_ale_wk       = ctrl_out((/ 1, 1, 1, 10, 10 /),'ale_wk')
     248  type(ctrl_out),save :: o_alp_wk       = ctrl_out((/ 1, 1, 1, 10, 10 /),'alp_wk')
     249
     250  type(ctrl_out),save :: o_ale          = ctrl_out((/ 1, 1, 1, 10, 10 /),'ale')
     251  type(ctrl_out),save :: o_alp          = ctrl_out((/ 1, 1, 1, 10, 10 /),'alp')
     252  type(ctrl_out),save :: o_cin          = ctrl_out((/ 1, 1, 1, 10, 10 /),'cin')
     253  type(ctrl_out),save :: o_wape         = ctrl_out((/ 1, 1, 1, 10, 10 /),'wape')
    244254
    245255
     
    306316  type(ctrl_out),save :: o_cldtau       = ctrl_out((/ 10, 5, 10, 10, 10 /),'cldtau')                     
    307317  type(ctrl_out),save :: o_cldemi       = ctrl_out((/ 10, 5, 10, 10, 10 /),'cldemi')
    308   type(ctrl_out),save :: o_rh2m         = ctrl_out((/ 10, 5, 10, 10, 10 /),'rh2m')
     318  type(ctrl_out),save :: o_rh2m         = ctrl_out((/ 5, 5, 10, 10, 10 /),'rh2m')
     319  type(ctrl_out),save :: o_rh2m_min     = ctrl_out((/ 10, 5, 10, 10, 10 /),'rh2m_min')
     320  type(ctrl_out),save :: o_rh2m_max     = ctrl_out((/ 10, 5, 10, 10, 10 /),'rh2m_max')
    309321  type(ctrl_out),save :: o_qsat2m       = ctrl_out((/ 10, 5, 10, 10, 10 /),'qsat2m')
    310322  type(ctrl_out),save :: o_tpot         = ctrl_out((/ 10, 5, 10, 10, 10 /),'tpot')
     
    331343  type(ctrl_out),save :: o_snowl        = ctrl_out((/ 10, 1, 10, 10, 10 /),'snowl')
    332344  type(ctrl_out),save :: o_cape_max     = ctrl_out((/ 10, 1, 10, 10, 10 /),'cape_max')
    333   type(ctrl_out),save :: o_solldown     = ctrl_out((/ 10, 1, 10, 1, 10 /),'solldown')
    334 
    335   type(ctrl_out),save :: o_dtsvdfo      = ctrl_out((/ 10, 10, 10, 1, 10 /),'dtsvdfo')
    336   type(ctrl_out),save :: o_dtsvdft      = ctrl_out((/ 10, 10, 10, 1, 10 /),'dtsvdft')
    337   type(ctrl_out),save :: o_dtsvdfg      = ctrl_out((/ 10, 10, 10, 1, 10 /),'dtsvdfg')
    338   type(ctrl_out),save :: o_dtsvdfi      = ctrl_out((/ 10, 10, 10, 1, 10 /),'dtsvdfi')
    339   type(ctrl_out),save :: o_rugs         = ctrl_out((/ 10, 10, 10, 1, 1 /),'rugs')
     345  type(ctrl_out),save :: o_solldown     = ctrl_out((/ 10, 1, 10, 10, 10 /),'solldown')
     346
     347  type(ctrl_out),save :: o_dtsvdfo      = ctrl_out((/ 10, 10, 10, 10, 10 /),'dtsvdfo')
     348  type(ctrl_out),save :: o_dtsvdft      = ctrl_out((/ 10, 10, 10, 10, 10 /),'dtsvdft')
     349  type(ctrl_out),save :: o_dtsvdfg      = ctrl_out((/ 10, 10, 10, 10, 10 /),'dtsvdfg')
     350  type(ctrl_out),save :: o_dtsvdfi      = ctrl_out((/ 10, 10, 10, 10, 10 /),'dtsvdfi')
     351  type(ctrl_out),save :: o_rugs         = ctrl_out((/ 10, 10, 10, 10, 10 /),'rugs')
    340352
    341353  type(ctrl_out),save :: o_topswad      = ctrl_out((/ 2, 10, 10, 10, 10 /),'topswad')
     
    376388  type(ctrl_out),save :: o_lwcon        = ctrl_out((/ 2, 5, 10, 10, 1 /),'lwcon')
    377389  type(ctrl_out),save :: o_iwcon        = ctrl_out((/ 2, 5, 10, 10, 10 /),'iwcon')
    378   type(ctrl_out),save :: o_temp         = ctrl_out((/ 2, 3, 4, 1, 1 /),'temp')
    379   type(ctrl_out),save :: o_theta        = ctrl_out((/ 2, 3, 4, 1, 1 /),'theta')
    380   type(ctrl_out),save :: o_ovap         = ctrl_out((/ 2, 3, 4, 1, 1 /),'ovap')
    381   type(ctrl_out),save :: o_ovapinit         = ctrl_out((/ 2, 3, 4, 1, 1 /),'ovapinit')
     390  type(ctrl_out),save :: o_temp         = ctrl_out((/ 2, 3, 4, 10, 1 /),'temp')
     391  type(ctrl_out),save :: o_theta        = ctrl_out((/ 2, 3, 4, 10, 1 /),'theta')
     392  type(ctrl_out),save :: o_ovap         = ctrl_out((/ 2, 3, 4, 10, 1 /),'ovap')
     393  type(ctrl_out),save :: o_ovapinit         = ctrl_out((/ 2, 3, 10, 10, 1 /),'ovapinit')
    382394  type(ctrl_out),save :: o_wvapp        = ctrl_out((/ 2, 10, 10, 10, 10 /),'wvapp')
    383   type(ctrl_out),save :: o_geop         = ctrl_out((/ 2, 3, 10, 1, 1 /),'geop')
    384   type(ctrl_out),save :: o_vitu         = ctrl_out((/ 2, 3, 4, 1, 1 /),'vitu')
    385   type(ctrl_out),save :: o_vitv         = ctrl_out((/ 2, 3, 4, 1, 1 /),'vitv')
    386   type(ctrl_out),save :: o_vitw         = ctrl_out((/ 2, 3, 10, 10, 1 /),'vitw')
    387   type(ctrl_out),save :: o_pres         = ctrl_out((/ 2, 3, 10, 1, 1 /),'pres')
     395  type(ctrl_out),save :: o_geop         = ctrl_out((/ 2, 3, 10, 10, 1 /),'geop')
     396  type(ctrl_out),save :: o_vitu         = ctrl_out((/ 2, 3, 4, 5, 1 /),'vitu')
     397  type(ctrl_out),save :: o_vitv         = ctrl_out((/ 2, 3, 4, 5, 1 /),'vitv')
     398  type(ctrl_out),save :: o_vitw         = ctrl_out((/ 2, 3, 10, 5, 1 /),'vitw')
     399  type(ctrl_out),save :: o_pres         = ctrl_out((/ 2, 3, 10, 10, 1 /),'pres')
     400  type(ctrl_out),save :: o_paprs        = ctrl_out((/ 2, 3, 10, 10, 1 /),'paprs')
    388401  type(ctrl_out),save :: o_rneb         = ctrl_out((/ 2, 5, 10, 10, 1 /),'rneb')
    389402  type(ctrl_out),save :: o_rnebcon      = ctrl_out((/ 2, 5, 10, 10, 1 /),'rnebcon')
    390   type(ctrl_out),save :: o_rhum         = ctrl_out((/ 2, 10, 10, 10, 10 /),'rhum')
     403  type(ctrl_out),save :: o_rhum         = ctrl_out((/ 2, 5, 10, 10, 10 /),'rhum')
    391404  type(ctrl_out),save :: o_ozone        = ctrl_out((/ 2, 10, 10, 10, 10 /),'ozone')
    392405  type(ctrl_out),save :: o_ozone_light        = ctrl_out((/ 2, 10, 10, 10, 10 /),'ozone_daylight')
     
    412425                                                     ctrl_out((/ 3, 10, 10, 10, 10 /),'ages_sic') /)
    413426
    414   type(ctrl_out),save,dimension(4) :: o_rugs_srf     = (/ ctrl_out((/ 3, 4, 10, 1, 10 /),'rugs_ter'), &
    415                                                      ctrl_out((/ 3, 4, 10, 1, 10 /),'rugs_lic'), &
    416                                                      ctrl_out((/ 3, 4, 10, 1, 10 /),'rugs_oce'), &
    417                                                      ctrl_out((/ 3, 4, 10, 1, 10 /),'rugs_sic') /)
    418 
    419   type(ctrl_out),save :: o_albs         = ctrl_out((/ 3, 10, 10, 1, 10 /),'albs')
    420   type(ctrl_out),save :: o_albslw       = ctrl_out((/ 3, 10, 10, 1, 10 /),'albslw')
     427  type(ctrl_out),save,dimension(4) :: o_rugs_srf     = (/ ctrl_out((/ 3, 4, 10, 10, 10 /),'rugs_ter'), &
     428                                                     ctrl_out((/ 3, 4, 10, 10, 10 /),'rugs_lic'), &
     429                                                     ctrl_out((/ 3, 4, 10, 10, 10 /),'rugs_oce'), &
     430                                                     ctrl_out((/ 3, 4, 10, 10, 10 /),'rugs_sic') /)
     431
     432  type(ctrl_out),save :: o_albs         = ctrl_out((/ 3, 10, 10, 10, 10 /),'albs')
     433  type(ctrl_out),save :: o_albslw       = ctrl_out((/ 3, 10, 10, 10, 10 /),'albslw')
    421434
    422435  type(ctrl_out),save :: o_clwcon       = ctrl_out((/ 4, 10, 10, 10, 10 /),'clwcon')
     
    424437  type(ctrl_out),save :: o_dnwd         = ctrl_out((/ 4, 10, 10, 10, 10 /),'dnwd')
    425438  type(ctrl_out),save :: o_dnwd0        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dnwd0')
     439  type(ctrl_out),save :: o_mc           = ctrl_out((/ 4, 10, 10, 10, 10 /),'mc')
     440  type(ctrl_out),save :: o_ftime_con    = ctrl_out((/ 4, 10, 10, 10, 10 /),'ftime_con')
    426441  type(ctrl_out),save :: o_dtdyn        = ctrl_out((/ 4, 10, 10, 10, 1 /),'dtdyn')
    427442  type(ctrl_out),save :: o_dqdyn        = ctrl_out((/ 4, 10, 10, 10, 1 /),'dqdyn')
     
    444459  type(ctrl_out),save :: o_dtlschr      = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtlschr')
    445460  type(ctrl_out),save :: o_dqlsc        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqlsc')
    446   type(ctrl_out),save :: o_dtvdf        = ctrl_out((/ 4, 10, 10, 1, 10 /),'dtvdf')
    447   type(ctrl_out),save :: o_dqvdf        = ctrl_out((/ 4, 10, 10, 1, 10 /),'dqvdf')
     461  type(ctrl_out),save :: o_dtvdf        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtvdf')
     462  type(ctrl_out),save :: o_dqvdf        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqvdf')
    448463  type(ctrl_out),save :: o_dteva        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dteva')
    449464  type(ctrl_out),save :: o_dqeva        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqeva')
     
    455470  type(ctrl_out),save :: o_w_th         = ctrl_out((/ 4, 10, 10, 10, 10 /),'w_th')
    456471  type(ctrl_out),save :: o_lambda_th    = ctrl_out((/ 10, 10, 10, 10, 10 /),'lambda_th')
     472  type(ctrl_out),save :: o_ftime_th     = ctrl_out((/ 10, 10, 10, 10, 10 /),'ftime_th')
    457473  type(ctrl_out),save :: o_q_th         = ctrl_out((/ 4, 10, 10, 10, 10 /),'q_th')
    458474  type(ctrl_out),save :: o_a_th         = ctrl_out((/ 4, 10, 10, 10, 10 /),'a_th')
     
    772788 CALL histdef2d(iff,o_pluc%flag,o_pluc%name, "Convective Precip.", "kg/(s*m2)")
    773789 CALL histdef2d(iff,o_snow%flag,o_snow%name, "Snow fall", "kg/(s*m2)" )
     790 CALL histdef2d(iff,o_msnow%flag,o_msnow%name, "Surface snow amount", "kg/m2" )
     791 CALL histdef2d(iff,o_fsnow%flag,o_fsnow%name, "Surface snow area fraction", "-" )
    774792 CALL histdef2d(iff,o_evap%flag,o_evap%name, "Evaporat", "kg/(s*m2)" )
    775793 CALL histdef2d(iff,o_tops%flag,o_tops%name, "Solar rad. at TOA", "W/m2")
     
    781799 CALL histdef2d(iff,o_SWdnTOA%flag,o_SWdnTOA%name, "SWdn at TOA", "W/m2" )
    782800 CALL histdef2d(iff,o_SWdnTOAclr%flag,o_SWdnTOAclr%name, "SWdn clear sky at TOA", "W/m2")
     801 CALL histdef2d(iff,o_nettop%flag,o_nettop%name, "Net dn radiatif flux at TOA", "W/m2")
    783802 CALL histdef2d(iff,o_SWup200%flag,o_SWup200%name, "SWup at 200mb", "W/m2" )
    784803 CALL histdef2d(iff,o_SWup200clr%flag,o_SWup200clr%name, "SWup clear sky at 200mb", "W/m2")
     
    809828 CALL histdef2d(iff,o_fqfonte%flag,o_fqfonte%name, "Land ice melt", "kg/m2/s")
    810829
     830 CALL histdef2d(iff,o_taux%flag,o_taux%name, "Zonal wind stress","Pa")
     831 CALL histdef2d(iff,o_tauy%flag,o_tauy%name, "Meridional wind stress","Pa")
     832
    811833     DO nsrf = 1, nbsrf
    812834 CALL histdef2d(iff,o_pourc_srf(nsrf)%flag,o_pourc_srf(nsrf)%name,"% "//clnsurf(nsrf),"%")
     
    816838 CALL histdef2d(iff,o_tsol_srf(nsrf)%flag,o_tsol_srf(nsrf)%name,"Temperature "//clnsurf(nsrf),"K")
    817839 CALL histdef2d(iff,o_u10m_srf(nsrf)%flag,o_u10m_srf(nsrf)%name,"Vent Zonal 10m "//clnsurf(nsrf),"m/s")
     840 CALL histdef2d(iff,o_evap_srf(nsrf)%flag,o_evap_srf(nsrf)%name,"evaporation at surface "//clnsurf(nsrf),"kg/(s*m2)")
    818841 CALL histdef2d(iff,o_v10m_srf(nsrf)%flag,o_v10m_srf(nsrf)%name,"Vent meredien 10m "//clnsurf(nsrf),"m/s")
    819842 CALL histdef2d(iff,o_t2m_srf(nsrf)%flag,o_t2m_srf(nsrf)%name,"Temp 2m "//clnsurf(nsrf),"K")
     
    909932 CALL histdef3d(iff,o_dnwd%flag,o_dnwd%name, "saturated downdraft", "kg/m2/s")
    910933 CALL histdef3d(iff,o_dnwd0%flag,o_dnwd0%name, "unsat. downdraft", "kg/m2/s")
     934 CALL histdef3d(iff,o_mc%flag,o_mc%name, "Convective mass flux", "kg/m2/s")
     935   type_ecri(1) = 'inst(X)'
     936   type_ecri(2) = 'inst(X)'
     937   type_ecri(3) = 'inst(X)'
     938   type_ecri(4) = 'inst(X)'
     939   type_ecri(5) = 'inst(X)'
     940 CALL histdef2d(iff,o_ftime_con%flag,o_ftime_con%name, "Fraction of time convection Occurs", " ")
     941   type_ecri(:) = type_ecri_files(:)
    911942     ENDIF !iflag_con .GE. 3
    912943
     
    965996 CALL histdef2d(iff,o_dthmin%flag,o_dthmin%name, "dTheta mini", "K/m")
    966997 CALL histdef2d(iff,o_rh2m%flag,o_rh2m%name, "Relative humidity at 2m", "%" )
     998   type_ecri(1) = 't_min(X)'
     999   type_ecri(2) = 't_min(X)'
     1000   type_ecri(3) = 't_min(X)'
     1001   type_ecri(4) = 't_min(X)'
     1002   type_ecri(5) = 't_min(X)'
     1003 CALL histdef2d(iff,o_rh2m_min%flag,o_rh2m_min%name, "Min Relative humidity at 2m", "%" )
     1004   type_ecri(1) = 't_max(X)'
     1005   type_ecri(2) = 't_max(X)'
     1006   type_ecri(3) = 't_max(X)'
     1007   type_ecri(4) = 't_max(X)'
     1008   type_ecri(5) = 't_max(X)'
     1009 CALL histdef2d(iff,o_rh2m_max%flag,o_rh2m_max%name, "Max Relative humidity at 2m", "%" )
     1010   type_ecri(:) = type_ecri_files(:)
    9671011 CALL histdef2d(iff,o_qsat2m%flag,o_qsat2m%name, "Saturant humidity at 2m", "%")
    9681012 CALL histdef2d(iff,o_tpot%flag,o_tpot%name, "Surface air potential temperature", "K")
     
    9921036 CALL histdef3d(iff,o_vitw%flag,o_vitw%name, "Vertical wind", "Pa/s" )
    9931037 CALL histdef3d(iff,o_pres%flag,o_pres%name, "Air pressure", "Pa" )
     1038 CALL histdef3d(iff,o_paprs%flag,o_paprs%name, "Air pressure Inter-Couches", "Pa" )
    9941039 CALL histdef3d(iff,o_rneb%flag,o_rneb%name, "Cloud fraction", "-")
    9951040 CALL histdef3d(iff,o_rnebcon%flag,o_rnebcon%name, "Convective Cloud Fraction", "-")
     
    10781123 CALL histdef3d(iff,o_w_th%flag,o_w_th%name,"Thermal plume vertical velocity","m/s")
    10791124 CALL histdef3d(iff,o_lambda_th%flag,o_lambda_th%name,"Thermal plume vertical velocity","m/s")
     1125 CALL histdef2d(iff,o_ftime_th%flag,o_ftime_th%name,"Fraction of time Shallow convection occurs"," ")
    10801126 CALL histdef3d(iff,o_q_th%flag,o_q_th%name, "Thermal plume total humidity", "kg/kg")
    10811127 CALL histdef3d(iff,o_a_th%flag,o_a_th%name, "Thermal plume fraction", "")
  • LMDZ4/trunk/libf/phylmd/phys_output_write.h

    r1285 r1334  
    146146       ENDIF
    147147
     148       IF (o_msnow%flag(iff)<=lev_files(iff)) THEN
     149      CALL histwrite_phy(nid_files(iff),o_msnow%name,itau_w,snow_o)
     150       ENDIF
     151
     152       IF (o_fsnow%flag(iff)<=lev_files(iff)) THEN
     153      CALL histwrite_phy(nid_files(iff),o_fsnow%name,itau_w,zfra_o)
     154       ENDIF
     155
    148156       IF (o_evap%flag(iff)<=lev_files(iff)) THEN
    149157      CALL histwrite_phy(nid_files(iff),o_evap%name,itau_w,evap)
     
    190198       ENDIF
    191199
     200       IF (o_nettop%flag(iff)<=lev_files(iff)) THEN
     201      zx_tmp_fi2d(:) = topsw(:)-toplw(:)
     202      CALL histwrite_phy(nid_files(iff),
     203     $                  o_nettop%name,itau_w,zx_tmp_fi2d)
     204       ENDIF
     205
    192206       IF (o_SWup200%flag(iff)<=lev_files(iff)) THEN
    193207      CALL histwrite_phy(nid_files(iff),o_SWup200%name,itau_w,SWup200)
     
    319333       CALL histwrite_phy(nid_files(iff),
    320334     $                   o_fqfonte%name,itau_w,zxfqfonte)
     335       ENDIF
     336
     337       IF (o_taux%flag(iff)<=lev_files(iff)) THEN
     338         zx_tmp_fi2d=0.
     339         do nsrf=1,nbsrf
     340          zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxu(:,1,nsrf)
     341         enddo
     342         CALL histwrite_phy(nid_files(iff),
     343     $                   o_taux%name,itau_w,zx_tmp_fi2d)
     344       ENDIF
     345
     346       IF (o_tauy%flag(iff)<=lev_files(iff)) THEN
     347         zx_tmp_fi2d=0.
     348         do nsrf=1,nbsrf
     349          zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxv(:,1,nsrf)
     350         enddo
     351         CALL histwrite_phy(nid_files(iff),
     352     $                   o_tauy%name,itau_w,zx_tmp_fi2d)
    321353       ENDIF
    322354
     
    377409      ENDIF
    378410
     411      IF (o_evap_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
     412      zx_tmp_fi2d(1 : klon) = fevap(1 : klon, nsrf)
     413      CALL histwrite_phy(nid_files(iff),o_evap_srf(nsrf)%name,
     414     $           itau_w,zx_tmp_fi2d)
     415      ENDIF
     416
    379417       IF (o_sens_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
    380418       zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
     
    497535
    498536        IF (o_pbase%flag(iff)<=lev_files(iff)) THEN
    499       CALL histwrite_phy(nid_files(iff),o_pbase%name,itau_w,pbase)
     537      CALL histwrite_phy(nid_files(iff),o_pbase%name,itau_w,ema_pcb)
    500538        ENDIF
    501539
     
    532570       ENDIF
    533571
     572       IF (o_ftime_con%flag(iff)<=lev_files(iff)) THEN
     573        zx_tmp_fi2d=float(itau_con)/float(itap)
     574      CALL histwrite_phy(nid_files(iff),o_ftime_con%name,
     575     s                   itau_w,zx_tmp_fi2d)
     576       ENDIF
     577
     578       IF (o_mc%flag(iff)<=lev_files(iff)) THEN
     579        if(iflag_thermals.gt.1)then
     580         zx_tmp_fi3d=dnwd+dnwd0+upwd+fm_therm
     581        else
     582         zx_tmp_fi3d=dnwd+dnwd0+upwd
     583        endif
     584      CALL histwrite_phy(nid_files(iff),o_mc%name,itau_w,zx_tmp_fi3d)
     585       ENDIF
     586     
    534587      ENDIF !iflag_con .GE. 3
    535588
     
    780833      ENDIF
    781834
     835      IF (o_rh2m_min%flag(iff)<=lev_files(iff)) THEN
     836      DO i=1, klon
     837       zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
     838      ENDDO
     839      CALL histwrite_phy(nid_files(iff),o_rh2m_min%name,
     840     s               itau_w,zx_tmp_fi2d)
     841      ENDIF
     842
     843      IF (o_rh2m_max%flag(iff)<=lev_files(iff)) THEN
     844      DO i=1, klon
     845       zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
     846      ENDDO
     847      CALL histwrite_phy(nid_files(iff),o_rh2m_max%name,
     848     s              itau_w,zx_tmp_fi2d)
     849      ENDIF
     850
     851
    782852      IF (o_qsat2m%flag(iff)<=lev_files(iff)) THEN
    783853      CALL histwrite_phy(nid_files(iff),o_qsat2m%name,itau_w,qsat2m)
     
    10001070        IF (o_pres%flag(iff)<=lev_files(iff)) THEN
    10011071      CALL histwrite_phy(nid_files(iff),o_pres%name,itau_w,pplay)
     1072        ENDIF
     1073
     1074        IF (o_paprs%flag(iff)<=lev_files(iff)) THEN
     1075      CALL histwrite_phy(nid_files(iff),o_paprs%name,
     1076     s                    itau_w,paprs(:,1:klev))
    10021077        ENDIF
    10031078
     
    11801255
    11811256       IF (iflag_thermals.gt.1) THEN
     1257        IF (o_ftime_th%flag(iff)<=lev_files(iff)) THEN
     1258! Pour l instant 0 a y reflichir pour les thermiques
     1259         zx_tmp_fi2d=0.
     1260        CALL histwrite_phy(nid_files(iff),o_ftime_th%name,
     1261     s                     itau_w,zx_tmp_fi2d)
     1262        ENDIF
     1263
    11821264        IF (o_f_th%flag(iff)<=lev_files(iff)) THEN
    11831265        CALL histwrite_phy(nid_files(iff),o_f_th%name,itau_w,fm_therm)
     
    12091291       ENDIF
    12101292
    1211        ENDIF !iflag_thermals
     1293      ENDIF !iflag_thermals
    12121294
    12131295       IF (o_f0_th%flag(iff)<=lev_files(iff)) THEN
  • LMDZ4/trunk/libf/phylmd/physiq.F

    r1319 r1334  
    11! $Id$
    2 !
    32c#define IO_DEBUG
    43
     
    2928      USE phys_local_var_mod ! Variables internes non sauvegardees de la physique
    3029      USE phys_state_var_mod ! Variables sauvegardees de la physique
     30      USE phys_output_var_mod ! Variables pour les ecritures des sorties
    3131      USE fonte_neige_mod, ONLY  : fonte_neige_get_vars
    3232      USE phys_output_mod
     
    837837      REAL rflag(klon)          ! flag fonctionnement de convect
    838838      INTEGER iflagctrl(klon)          ! flag fonctionnement de convect
     839
    839840c -- convect43:
    840841      INTEGER ntra              ! nb traceurs pour convect4.3
     
    11891190     .     iflag_coupl,iflag_clos,iflag_wake, read_climoz)
    11901191      call phys_state_var_init(read_climoz)
     1192      call phys_output_var_init
    11911193      print*, '================================================='
    11921194
     
    12021204c         pmflxr=0.
    12031205c         pmflxs=0.
     1206          itau_con=0
    12041207        first=.false.
    12051208
     
    20962099              pmfu(:,:)=upwd(:,:)+dnwd(:,:)
    20972100
     2101              do i = 1, klon
     2102                if (iflagctrl(i).le.1) itau_con(i)=itau_con(i)+1
     2103              enddo
     2104
    20982105          ELSE ! ok_cvl
    20992106c MAF conema3 ne contient pas les traceurs
     
    21362143
    21372144          DO i = 1, klon
    2138             ema_pcb(i)  = pbase(i)
     2145            ema_pcb(i)  = paprs(i,ibas_con(i))
    21392146          ENDDO
    21402147          DO i = 1, klon
    2141 
    21422148! L'idicage de itop_con peut cacher un pb potentiel
    21432149! FH sous la dictee de JYG, CR
     
    32103216     $                   pmflxr(:,1:klev),pmflxs(:,1:klev),
    32113217     $                   mr_ozone,cldtau, cldemi)
     3218
    32123219!     L          calipso2D,calipso3D,cfadlidar,parasolrefl,atb,betamol,
    32133220!     L          cfaddbze,clcalipso2,dbze,cltlidarradar,
     
    34303437cIM global posePB#include "write_bilKP_ave.h"
    34313438c
     3439
    34323440c Sauvegarder les valeurs de t et q a la fin de la physique:
    34333441c
  • LMDZ4/trunk/libf/phylmd/surf_landice_mod.F90

    r1146 r1334  
    2424    USE cpl_mod,          ONLY : cpl_send_landice_fields
    2525    USE calcul_fluxs_mod
     26    USE phys_output_var_mod
    2627
    2728    INCLUDE "indicesol.h"
     
    7475    REAL, DIMENSION(klon)    :: radsol
    7576    REAL, DIMENSION(klon)    :: u0, v0, u1_lay, v1_lay
     77    INTEGER                  :: i,j
    7678
    7779! End definition
     
    174176       CALL cpl_send_landice_fields(itime, knon, knindex, run_off_lic)
    175177    ENDIF
    176 
     178 
     179!****************************************************************************************
     180       snow_o=0.
     181       zfra_o = 0.
     182       DO j = 1, knon
     183           i = knindex(j)
     184           snow_o(i) = snow(j)
     185           zfra_o(i) = zfra(j)
     186       ENDDO
    177187
    178188  END SUBROUTINE surf_landice
Note: See TracChangeset for help on using the changeset viewer.