Changeset 5633 for LMDZ6/trunk/libf/phylmd/lmdz_lscp_main.f90
- Timestamp:
- Apr 28, 2025, 2:46:35 PM (6 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/lmdz_lscp_main.f90
r5614 r5633 289 289 REAL, DIMENSION(klon) :: zdqsdT_raw 290 290 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 iteration291 REAL, DIMENSION(klon) :: Tbef,Tbefth,Tbefthm1,qlibef,DT ! temperature, humidity and temp. variation during condensation iteration 292 292 REAL :: num,denom 293 293 REAL :: cste … … 536 536 ENDIF ! (ok_poprecip) 537 537 538 ! Calculation of qsat, L/Cp*dqsat/dT and ncoreczq counter538 ! Calculation of qsat,L/cp*dqsat/dT and ncoreczq counter 539 539 !------------------------------------------------------- 540 540 … … 653 653 qlibef(:)=0. 654 654 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 655 660 zqth=qta(:,k) 656 661 … … 817 822 invtau_e(i) = 0. 818 823 ENDDO 819 CALL icefrac_lscp_turb(klon, dtime, pticefracturb, Tbef, zp, paprs(:,k), paprs(:,k+1), wls(:,k), zqi_ini, ziflcld, qincloud,&820 z cf, 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)) 822 827 DO i=1,klon 823 828 IF (pticefracturb(i)) THEN … … 846 851 invtau_e(i)=gamma_mixth*MAX(entr_therm(i,k)-detr_therm(i,k),0.)*RD*Tbef(i)/zp(i) 847 852 ENDDO 848 CALL icefrac_lscp_turb(klon, dtime, pticefracturb, Tbefth, zp, paprs(:,k), paprs(:,k+1), wth(:,k), zqi_ini, zeroklon, qincloud,&849 z cf, 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)) 851 856 !Environment 852 857 DO i=1,klon 853 858 qincloud(i)=zqn(i)/(1.-fraca(i,k)) 854 859 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 857 868 ENDDO 858 CALL icefrac_lscp_turb(klon, dtime, pticefracturb, Tbef, zp, paprs(:,k), paprs(:,k+1), wls(:,k), zqi_ini, ziflcld, qincloud,&859 z cf, 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)) 861 872 862 873 ! adjust zfice to account for condensates in thermals'fraction
Note: See TracChangeset
for help on using the changeset viewer.