Ignore:
Timestamp:
Jul 12, 2017, 4:20:24 PM (7 years ago)
Author:
jbmadeleine
Message:
  • Added a new output called rneblsvol which is the cloud fraction by volume

computed in the thermals (see cloudth_vert in cloudth_mod.F90)

  • Added an option called iflag_rain_incloud_vol that computes the conversion

of cloud water to rain using the cloud fraction by volume instead of the cloud
fraction by area, which is larger and otherwise erroneously reduces the in-cloud
water content; iflag_rain_incloud_vol can only be used for iflag_cloudth_vert>=3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/fisrtilp.F90

    r2923 r2945  
    1818  USE ioipsl_getin_p_mod, ONLY : getin_p
    1919  USE phys_local_var_mod, ONLY: ql_seri,qs_seri
     20  USE phys_local_var_mod, ONLY: rneblsvol
    2021  ! flag to include modifications to ensure energy conservation (if flag >0)
    2122  USE add_phys_tend_mod, only : fl_cor_ebil
     
    132133  INTEGER ncoreczq 
    133134  REAL ctot(klon,klev)
     135  REAL ctot_vol(klon,klev)
    134136  REAL zqs(klon), zdqs(klon), zdelta, zcor, zcvm5 
    135137  REAL zdqsdT_raw(klon)
     
    217219!  ice_thermo = iflag_ice_thermo .GE. 1
    218220
    219 itap=itap+1
    220 znebprecip(:)=0.
    221 
    222    ice_thermo = (iflag_ice_thermo .EQ. 1).OR.(iflag_ice_thermo .GE. 3)
     221  itap=itap+1
     222  znebprecip(:)=0.
     223
     224  ice_thermo = (iflag_ice_thermo .EQ. 1).OR.(iflag_ice_thermo .GE. 3)
    223225  zdelq=0.0
     226  ctot_vol(1:klon,1:klev)=0.0
     227  rneblsvol(1:klon,1:klev)=0.0
    224228
    225229  if (prt_level>9)write(lunout,*)'NUAGES4 A. JAM'
     
    727731               call cloudth_v3(klon,klev,k,ztv, &
    728732                   zq,zqta,fraca, &
    729                    qcloud,ctot,zpspsk,paprs,ztla,zthl, &
     733                   qcloud,ctot,ctot_vol,zpspsk,paprs,ztla,zthl, &
    730734                   ratqs,zqs,t)
    731735              endif
    732736              do i=1,klon
    733737                 rneb(i,k)=ctot(i,k)
     738                 rneblsvol(i,k)=ctot_vol(i,k)
    734739                 zqn(i)=qcloud(i)
    735740              enddo
     
    11481153                         *fallvs(zrhol(i)) * zfice(i)
    11491154                 endif
    1150                  zchau    = zct   *dtime/REAL(ninter) * zoliq(i) &
    1151                       *(1.0-EXP(-(zoliq(i)/zneb(i)/zcl   )**2)) *(1.-zfice(i))
     1155
     1156                 ! si l'heterogeneite verticale est active, on utilise
     1157                 ! la fraction volumique "vraie" plutot que la fraction
     1158                 ! surfacique modifiee, qui est plus grande et reduit
     1159                 ! sinon l'eau in-cloud de facon artificielle
     1160                 if ((iflag_cloudth_vert>=3).AND.(iflag_rain_incloud_vol==1)) then
     1161                    zchau    = zct   *dtime/REAL(ninter) * zoliq(i) &
     1162                         *(1.0-EXP(-(zoliq(i)/ctot_vol(i,k)/zcl   )**2)) *(1.-zfice(i))
     1163                 else
     1164                    zchau    = zct   *dtime/REAL(ninter) * zoliq(i) &
     1165                         *(1.0-EXP(-(zoliq(i)/zneb(i)/zcl   )**2)) *(1.-zfice(i))
     1166                 endif
    11521167!AJ<
    11531168                 IF (.NOT. ice_thermo) THEN
Note: See TracChangeset for help on using the changeset viewer.