Ignore:
Timestamp:
Apr 28, 2025, 2:46:35 PM (6 weeks ago)
Author:
evignon
Message:

small changes related to mixed phase clouds treatment
Etienne and Lea

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/lmdz_lscp_main.f90

    r5614 r5633  
    289289  REAL, DIMENSION(klon) :: zdqsdT_raw
    290290  REAL, DIMENSION(klon) :: gammasat,dgammasatdt                   ! coefficient to make cold condensation at the correct RH and derivative wrt T
    291   REAL, DIMENSION(klon) :: Tbef,Tbefth,qlibef,DT                  ! temperature, humidity and temp. variation during condensation iteration
     291  REAL, DIMENSION(klon) :: Tbef,Tbefth,Tbefthm1,qlibef,DT                  ! temperature, humidity and temp. variation during condensation iteration
    292292  REAL :: num,denom
    293293  REAL :: cste
     
    536536    ENDIF ! (ok_poprecip)
    537537   
    538     ! Calculation of qsat, L/Cp*dqsat/dT and ncoreczq counter
     538    ! Calculation of qsat,L/cp*dqsat/dT and ncoreczq counter
    539539    !-------------------------------------------------------
    540540
     
    653653        qlibef(:)=0.
    654654        Tbefth(:)=tla(:,k)*pspsk(:,k)
     655        IF (k .GT. 1) THEN
     656         Tbefthm1(:)=tla(:,k-1)*pspsk(:,k-1)
     657        ELSE
     658         Tbefthm1(:)=Tbefth(:)       
     659        ENDIF
    655660        zqth=qta(:,k)
    656661
     
    817822                        invtau_e(i) = 0.
    818823                     ENDDO
    819                      CALL icefrac_lscp_turb(klon, dtime, pticefracturb, Tbef, zp, paprs(:,k), paprs(:,k+1), wls(:,k), zqi_ini, ziflcld, qincloud, &
    820                      zcf, tke(:,k), tke_dissip(:,k), sursat_e, invtau_e, zqliq, zqvapcl, zqice, zficeenv, dzficeenv,                   &
    821                      cldfraliq(:,k),sigma2_icefracturb(:,k),mean_icefracturb(:,k))                     
     824                     CALL icefrac_lscp_turb(klon, dtime, pticefracturb, Tbef, zp, paprs(:,k), paprs(:,k+1), wls(:,k), zqi_ini,   &
     825                     ziflcld, znebprecipcld, qincloud, zcf, tke(:,k), tke_dissip(:,k), sursat_e, invtau_e, zqliq, zqvapcl, zqice, &
     826                     zficeenv, dzficeenv, cldfraliq(:,k),sigma2_icefracturb(:,k),mean_icefracturb(:,k))                     
    822827                     DO i=1,klon
    823828                        IF (pticefracturb(i)) THEN
     
    846851                        invtau_e(i)=gamma_mixth*MAX(entr_therm(i,k)-detr_therm(i,k),0.)*RD*Tbef(i)/zp(i)
    847852                     ENDDO
    848                      CALL icefrac_lscp_turb(klon, dtime, pticefracturb, Tbefth, zp, paprs(:,k), paprs(:,k+1), wth(:,k), zqi_ini, zeroklon, qincloud, &
    849                      zcf, zeroklon, zeroklon, sursat_e, invtau_e, zqliqth, zqvapclth, zqiceth, zficeth, dzficeth,                      &
    850                      cldfraliqth(:,k), sigma2_icefracturbth(:,k), mean_icefracturbth(:,k))
     853                     CALL icefrac_lscp_turb(klon, dtime, pticefracturb, Tbefth, zp, paprs(:,k), paprs(:,k+1), wth(:,k), zqi_ini, &
     854                     zeroklon, znebprecipcld, qincloud, zcf, zeroklon, zeroklon, sursat_e, invtau_e, zqliqth, zqvapclth, zqiceth, &
     855                     zficeth, dzficeth,cldfraliqth(:,k), sigma2_icefracturbth(:,k), mean_icefracturbth(:,k))
    851856                     !Environment
    852857                     DO i=1,klon
    853858                        qincloud(i)=zqn(i)/(1.-fraca(i,k))
    854859                        zcf(i)=MIN(MAX(rneb(i,k)-rnebth(i,k), 0.),1.)*(1.-fraca(i,k))
    855                         sursat_e(i)=cloudth_sth(i,k)/zqsith(i)
    856                         invtau_e(i)=gamma_mixth*MAX(detr_therm(i,k)-entr_therm(i,k),0.)*RD*Tbef(i)/zp(i)
     860                        IF (k .GT. 1) THEN
     861                           ! evaluate the mixing sursaturation using saturation deficit at level below
     862                           sursat_e(i)=cloudth_sth(i,k-1)/(zqsith(i)+zdqsith(i)*RCPD/RLSTT*(Tbefthm1(i)-Tbefth(i)))
     863                           invtau_e(i)=gamma_mixth*MAX(detr_therm(i,k)-entr_therm(i,k),0.)*RD*Tbef(i)/zp(i)
     864                        ELSE
     865                           sursat_e(i)=0.
     866                           invtau_e(i)=0.
     867                        ENDIF
    857868                     ENDDO
    858                      CALL icefrac_lscp_turb(klon, dtime, pticefracturb, Tbef, zp, paprs(:,k), paprs(:,k+1), wls(:,k), zqi_ini, ziflcld, qincloud, &
    859                      zcf, tke(:,k), tke_dissip(:,k), sursat_e, invtau_e, zqliq, zqvapcl, zqice, zfice, dzfice,                      &
    860                      cldfraliq(:,k),sigma2_icefracturb(:,k), mean_icefracturb(:,k))
     869                     CALL icefrac_lscp_turb(klon, dtime, pticefracturb, Tbef, zp, paprs(:,k), paprs(:,k+1), wls(:,k), zqi_ini,   &
     870                     ziflcld, znebprecipcld, qincloud, zcf, tke(:,k), tke_dissip(:,k), sursat_e, invtau_e, zqliq, zqvapcl, zqice, &
     871                     zfice, dzfice, cldfraliq(:,k),sigma2_icefracturb(:,k), mean_icefracturb(:,k))
    861872 
    862873                    ! adjust zfice to account for condensates in thermals'fraction
Note: See TracChangeset for help on using the changeset viewer.