Changeset 5208 for LMDZ6/trunk/libf
- Timestamp:
- Sep 20, 2024, 4:45:58 PM (2 months ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/lmdz_cloudth.F90
r4910 r5208 583 583 & ztv,po,zqta,fraca, & 584 584 & qcloud,ctot,ctot_vol,zpspsk,paprs,pplay,ztla,zthl, & 585 & ratqs, zqs,t, &585 & ratqs,sigma_qtherm,zqs,t, & 586 586 & cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv) 587 587 … … 617 617 real, dimension(ngrid,klev), intent(in) :: ztla 618 618 real, dimension(ngrid,klev), intent(inout) :: zthl 619 real, dimension(ngrid,klev), intent(in) :: ratqs 619 real, dimension(ngrid,klev), intent(in) :: ratqs,sigma_qtherm 620 620 real, dimension(ngrid), intent(in) :: zqs 621 621 real, dimension(ngrid,klev), intent(in) :: t … … 655 655 & ztv,po,zqta,fraca, & 656 656 & qcloud,ctot,ctot_vol,zpspsk,paprs,pplay,ztla,zthl, & 657 & ratqs, zqs,t, &657 & ratqs,sigma_qtherm,zqs,t, & 658 658 & cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv) 659 659 RETURN … … 810 810 & ztv,po,zqta,fraca, & 811 811 & qcloud,ctot,ctot_vol,zpspsk,paprs,pplay,ztla,zthl, & 812 & ratqs, zqs,t, &812 & ratqs,sigma_qtherm,zqs,t, & 813 813 & cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv) 814 814 … … 872 872 REAL Tbef,zdelta,qsatbef,zcor 873 873 REAL qlbef 874 REAL ratqs(ngrid,klev) ! determine la largeur de distribution de vapeur874 REAL ratqs(ngrid,klev),sigma_qtherm(ngrid,klev) ! determine la largeur de distribution de vapeur 875 875 ! Change the width of the PDF used for vertical subgrid scale heterogeneity 876 876 ! (J Jouhaud, JL Dufresne, JB Madeleine) … … 978 978 ENDIF 979 979 sigma1s = sigma1s_fraca + sigma1s_ratqs 980 IF (iflag_ratqs.eq.11) then 980 sigma2s=(sigma2s_factor*(((sth-senv)**2)**0.5)/((fraca(ind1,ind2)+0.02)**sigma2s_power))+0.002*zqta(ind1,ind2) 981 IF (iflag_ratqs.eq.10.or.iflag_ratqs.eq.11) then 981 982 sigma1s = ratqs(ind1,ind2)*po(ind1)*aenv 983 IF (iflag_ratqs.eq.10.and.sigma_qtherm(ind1,ind2).ne.0) then 984 sigma2s = sigma_qtherm(ind1,ind2)*ath 985 ENDIF 982 986 ENDIF 983 sigma2s=(sigma2s_factor*(((sth-senv)**2)**0.5)/((fraca(ind1,ind2)+0.02)**sigma2s_power))+0.002*zqta(ind1,ind2)987 984 988 ! tests 985 989 ! sigma1s=(0.92**0.5)*(fraca(ind1,ind2)**0.5)/(1-fraca(ind1,ind2))*((sth-senv)**2)**0.5+ratqs(ind1,ind2)*po(ind1) -
LMDZ6/trunk/libf/phylmd/lmdz_lscp.F90
r5204 r5208 7 7 !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 8 8 SUBROUTINE lscp(klon,klev,dtime,missing_val, & 9 paprs,pplay,temp,qt,qice_save,ptconv,ratqs, 9 paprs,pplay,temp,qt,qice_save,ptconv,ratqs,sigma_qtherm, & 10 10 d_t, d_q, d_ql, d_qi, rneb, rneblsvol, & 11 11 pfraclr, pfracld, & … … 157 157 !------------------------ 158 158 159 REAL, DIMENSION(klon,klev), INTENT(INOUT) :: thl ! liquid potential temperature [K] 160 REAL, DIMENSION(klon,klev), INTENT(INOUT) :: ratqs ! function of pressure that sets the large-scale 159 REAL, DIMENSION(klon,klev), INTENT(INOUT) :: thl ! liquid potential temperature [K] 160 REAL, DIMENSION(klon,klev), INTENT(INOUT) :: ratqs,sigma_qtherm ! function of pressure that sets the large-scale 161 161 162 162 163 ! INPUT/OUTPUT condensation and ice supersaturation … … 814 815 zq,qta,fraca, & 815 816 qcloud,ctot,ctot_vol,pspsk,paprs,pplay,tla,thl, & 816 ratqs, zqs,temp, &817 ratqs,sigma_qtherm,zqs,temp, & 817 818 cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv) 818 819 -
LMDZ6/trunk/libf/phylmd/lmdz_lscp_old.F90
r4830 r5208 4 4 MODULE lmdz_lscp_old 5 5 CONTAINS 6 SUBROUTINE fisrtilp(klon,klev,dtime,paprs,pplay,t,q,ptconv,ratqs, &6 SUBROUTINE fisrtilp(klon,klev,dtime,paprs,pplay,t,q,ptconv,ratqs,sigma_qtherm, & 7 7 d_t, d_q, d_ql, d_qi, rneb,rneblsvol,radliq, rain, snow, & 8 8 pfrac_impa, pfrac_nucl, pfrac_1nucl, & … … 79 79 ! 80 80 ! Input/output 81 REAL, DIMENSION(klon,klev), INTENT(INOUT):: ratqs ! determine la largeur de distribution de vapeur81 REAL, DIMENSION(klon,klev), INTENT(INOUT):: ratqs,sigma_qtherm ! determine la largeur de distribution de vapeur 82 82 ! 83 83 ! Principaux outputs: … … 795 795 zq,zqta,fraca, & 796 796 qcloud,ctot,ctot_vol,zpspsk,paprs,pplay,ztla,zthl, & 797 ratqs, zqs,t, &797 ratqs,sigma_qtherm,zqs,t, & 798 798 cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv) 799 799 !---------------------------------- -
LMDZ6/trunk/libf/phylmd/lmdz_ratqs_main.F90
r4812 r5208 13 13 omega,tke,tke_dissip,lmix,wprime, & 14 14 t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area,& 15 ratqs,ratqsc,ratqs_inter_ )15 ratqs,ratqsc,ratqs_inter_,sigma_qtherm) 16 16 17 17 … … 52 52 53 53 ! Output 54 real, dimension(klon,klev),intent(inout) :: ratqs,ratqsc,ratqs_inter_ 54 real, dimension(klon,klev),intent(inout) :: ratqs,ratqsc,ratqs_inter_,sigma_qtherm 55 55 56 56 logical, dimension(klon,klev),intent(inout) :: ptconvth … … 194 194 195 195 if (iflag_ratqs .EQ. 10) then 196 ! interactive ratqs in presence of cold pools 196 print*,'avant ratqs_inter' 197 ! interactive ratqs with several sources 197 198 call ratqs_inter(klon,klev,iflag_ratqs,pdtphys,paprs, & 198 199 ratqsbas,wake_deltaq,wake_s,q_seri,qtc_cv, sigt_cv, & 199 200 fm_therm,entr_therm,detr_therm,detrain_cv,fm_cv,fqd,fqcomp,sigd, & 200 ratqs_inter_) 201 do k=1,klev 202 do i=1,klon 203 ratqs_inter_(i,k)=ratqs_inter_(i,k)-0.5*ratqs_inter_(i,k)*(tanh((ratqsp0-pplay(i,k))/ratqsdp)+1.) 204 enddo 205 enddo 201 ratqs_inter_,sigma_qtherm) 206 202 ratqss=ratqss+ratqs_inter_ 207 203 else if (iflag_ratqs .EQ. 11) then … … 211 207 ratqsbas,wake_deltaq,wake_s,q_seri,qtc_cv, sigt_cv, & 212 208 fm_therm,entr_therm,detr_therm,detrain_cv,fm_cv,fqd,fqcomp,sigd, & 213 ratqs_inter_ )209 ratqs_inter_,sigma_qtherm) 214 210 ratqss=ratqss+ratqs_inter_ 215 211 else if (iflag_ratqs .EQ. 12) then -
LMDZ6/trunk/libf/phylmd/lmdz_ratqs_multi.F90
r4812 r5208 28 28 ratqsbas, wake_deltaq, wake_s, q_seri,qtc_cv, sigt_cv, & 29 29 fm_therm,entr_therm,detr_therm,detrain_cv,fm_cv,fqd,fqcomp,sigd, & 30 ratqs_inter_ )30 ratqs_inter_,sigma_qtherm) 31 31 32 32 USE lmdz_ratqs_ini, ONLY : a_ratqs_cv,tau_var,fac_tau,tau_cumul,a_ratqs_wake, dqimpl … … 70 70 real, dimension(klon) :: max_sigd, max_dqconv,max_sigt 71 71 real, dimension(klon,klev) :: zoa,zocarrea,pdocarreadj,pocarre,po,pdoadj,varq_therm 72 real, dimension(klon,klev) :: var_moy, var_var, var_desc_th,var_det_conv,var_desc_prec,var_desc_conv,sigma_ therm72 real, dimension(klon,klev) :: var_moy, var_var, var_desc_th,var_det_conv,var_desc_prec,var_desc_conv,sigma_qtherm 73 73 74 74 lev_out=0. … … 198 198 if(q_seri(i,k).ge.1E-7) then 199 199 ratqs_inter_(i,k) = abs(povariance(i,k))**0.5/q_seri(i,k) 200 sigma_ therm(i,k) = abs(varq_therm(i,k))**0.5 ! sigma dans les thermiques200 sigma_qtherm(i,k) = abs(varq_therm(i,k))**0.5 ! sigma dans les thermiques 201 201 else 202 202 ratqs_inter_(i,k) = 0. 203 sigma_ therm(i,k) = 0.203 sigma_qtherm(i,k) = 0. 204 204 endif 205 205 enddo -
LMDZ6/trunk/libf/phylmd/phys_state_var_mod.F90
r5204 r5208 479 479 !$OMP THREADPRIVATE(ale_bl_trig) 480 480 481 REAL,SAVE,ALLOCATABLE :: ratqs_inter_(:,:) 482 !$OMP THREADPRIVATE(ratqs_inter_ )481 REAL,SAVE,ALLOCATABLE :: ratqs_inter_(:,:),sigma_qtherm(:,:) 482 !$OMP THREADPRIVATE(ratqs_inter_,sigma_qtherm) 483 483 484 484 #ifdef ISO … … 773 773 774 774 ALLOCATE(ale_bl_trig(klon)) 775 ALLOCATE(ratqs_inter_(klon,klev) )775 ALLOCATE(ratqs_inter_(klon,klev),sigma_qtherm(klon,klev)) 776 776 IF (ok_gwd_rando) THEN 777 777 ALLOCATE(du_gwd_rando(klon, klev)) … … 942 942 if (.not. ok_hines .and. ok_gwd_rando) DEALLOCATE(du_gwd_front) 943 943 DEALLOCATE(ale_bl_trig) 944 DEALLOCATE(ratqs_inter_ )944 DEALLOCATE(ratqs_inter_,sigma_qtherm) 945 945 946 946 if (activate_ocean_skin >= 1) then -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r5206 r5208 1838 1838 mr_ozone_cosp0,cldtau_cosp0, cldemi_cosp0) 1839 1839 #endif 1840 endif ! ok_cosp1840 ENDIF 1841 1841 1842 1842 ! … … 3841 3841 omega,pbl_tke(:,:,is_ave),pbl_eps(:,:,is_ave),l_mix_ave,wprime_ave, & 3842 3842 t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area, & 3843 ratqs,ratqsc,ratqs_inter_ )3843 ratqs,ratqsc,ratqs_inter_,sigma_qtherm) 3844 3844 3845 3845 ! … … 3862 3862 3863 3863 CALL lscp(klon,klev,phys_tstep,missing_val,paprs,pplay, & 3864 t_seri, q_seri,qs_ini,ptconv,ratqs, &3864 t_seri, q_seri,qs_ini,ptconv,ratqs,sigma_qtherm, & 3865 3865 d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, rneblsvol, & 3866 3866 pfraclr, pfracld, cldfraliq, sigma2_icefracturb, mean_icefracturb, & … … 3886 3886 3887 3887 CALL fisrtilp(klon,klev,phys_tstep,paprs,pplay, & 3888 t_seri, q_seri,ptconv,ratqs, &3888 t_seri, q_seri,ptconv,ratqs,sigma_qtherm, & 3889 3889 d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, rneblsvol, radocond, & 3890 3890 rain_lsc, snow_lsc, &
Note: See TracChangeset
for help on using the changeset viewer.