Changeset 5226 for LMDZ6/branches/Amaury_dev
- Timestamp:
- Sep 25, 2024, 9:47:00 AM (2 months ago)
- Location:
- LMDZ6/branches/Amaury_dev
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev
- Property svn:mergeinfo changed
/LMDZ6/trunk merged: 5208-5209
- Property svn:mergeinfo changed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_cloudth.F90
r5160 r5226 542 542 ztv, po, zqta, fraca, & 543 543 qcloud, ctot, ctot_vol, zpspsk, paprs, pplay, ztla, zthl, & 544 ratqs, zqs, t, &544 ratqs, sigma_qtherm,zqs, t, & 545 545 cloudth_sth, cloudth_senv, cloudth_sigmath, cloudth_sigmaenv) 546 546 … … 575 575 REAL, DIMENSION(ngrid, klev), INTENT(IN) :: ztla 576 576 REAL, DIMENSION(ngrid, klev), INTENT(INOUT) :: zthl 577 REAL, DIMENSION(ngrid, klev), INTENT(IN) :: ratqs 577 REAL, DIMENSION(ngrid, klev), INTENT(IN) :: ratqs, sigma_qtherm 578 578 REAL, DIMENSION(ngrid), INTENT(IN) :: zqs 579 579 REAL, DIMENSION(ngrid, klev), INTENT(IN) :: t … … 611 611 ztv, po, zqta, fraca, & 612 612 qcloud, ctot, ctot_vol, zpspsk, paprs, pplay, ztla, zthl, & 613 ratqs, zqs, t, &613 ratqs, sigma_qtherm, zqs, t, & 614 614 cloudth_sth, cloudth_senv, cloudth_sigmath, cloudth_sigmaenv) 615 615 RETURN … … 761 761 ztv, po, zqta, fraca, & 762 762 qcloud, ctot, ctot_vol, zpspsk, paprs, pplay, ztla, zthl, & 763 ratqs, zqs, t, &763 ratqs, sigma_qtherm, zqs, t, & 764 764 cloudth_sth, cloudth_senv, cloudth_sigmath, cloudth_sigmaenv) 765 765 … … 821 821 REAL Tbef, zdelta, qsatbef, zcor 822 822 REAL qlbef 823 REAL ratqs(ngrid, klev) ! determine la largeur de distribution de vapeur823 REAL ratqs(ngrid, klev), sigma_qtherm(ngrid,klev) ! determine la largeur de distribution de vapeur 824 824 ! Change the width of the PDF used for vertical subgrid scale heterogeneity 825 825 ! (J Jouhaud, JL Dufresne, JB Madeleine) … … 924 924 ENDIF 925 925 sigma1s = sigma1s_fraca + sigma1s_ratqs 926 IF (iflag_ratqs==11) THEN 926 sigma2s=(sigma2s_factor*(((sth-senv)**2)**0.5)/((fraca(ind1,ind2)+0.02)**sigma2s_power))+0.002*zqta(ind1,ind2) 927 IF (iflag_ratqs==10.or.iflag_ratqs==11) THEN 927 928 sigma1s = ratqs(ind1, ind2) * po(ind1) * aenv 928 ENDIF 929 sigma2s = (sigma2s_factor * (((sth - senv)**2)**0.5) / ((fraca(ind1, ind2) + 0.02)**sigma2s_power)) + 0.002 * zqta(ind1, ind2) 929 IF (iflag_ratqs==10.and.sigma_qtherm(ind1, ind2) /= 0) then 930 sigma2s = sigma_qtherm(ind1, ind2)*ath 931 ENDIF 932 ENDIF 930 933 ! tests 931 934 ! 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/branches/Amaury_dev/libf/phylmd/lmdz_lscp.F90
r5224 r5226 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, & … … 156 156 !------------------------ 157 157 158 REAL, DIMENSION(klon, klev), INTENT(INOUT) :: thl 159 REAL, DIMENSION(klon, klev), INTENT(INOUT) :: ratqs 158 REAL, DIMENSION(klon, klev), INTENT(INOUT) :: thl ! liquid potential temperature [K] 159 REAL, DIMENSION(klon, klev), INTENT(INOUT) :: ratqs, sigma_qtherm ! function of pressure that sets the large-scale 160 160 161 161 ! INPUT/OUTPUT condensation and ice supersaturation … … 809 809 zq, qta, fraca, & 810 810 qcloud, ctot, ctot_vol, pspsk, paprs, pplay, tla, thl, & 811 ratqs, zqs, temp, &811 ratqs, sigma_qtherm, zqs, temp, & 812 812 cloudth_sth, cloudth_senv, cloudth_sigmath, cloudth_sigmaenv) 813 813 -
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_lscp_old.F90
r5158 r5226 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, & … … 76 76 77 77 ! Input/output 78 REAL, DIMENSION(klon,klev), INTENT(INOUT):: ratqs ! determine la largeur de distribution de vapeur78 REAL, DIMENSION(klon,klev), INTENT(INOUT):: ratqs, sigma_qtherm ! determine la largeur de distribution de vapeur 79 79 80 80 ! Principaux outputs: … … 787 787 zq,zqta,fraca, & 788 788 qcloud,ctot,ctot_vol,zpspsk,paprs,pplay,ztla,zthl, & 789 ratqs, zqs,t, &789 ratqs,sigma_qtherm,zqs,t, & 790 790 cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv) 791 791 !---------------------------------- -
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_ratqs_main.F90
r5158 r5226 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 … … 190 190 191 191 IF (iflag_ratqs == 10) THEN 192 ! interactive ratqs in presence of cold pools 192 print*,'avant ratqs_inter' 193 ! interactive ratqs with several sources 193 194 CALL ratqs_inter(klon,klev,iflag_ratqs,pdtphys,paprs, & 194 195 ratqsbas,wake_deltaq,wake_s,q_seri,qtc_cv, sigt_cv, & 195 196 fm_therm,entr_therm,detr_therm,detrain_cv,fm_cv,fqd,fqcomp,sigd, & 196 ratqs_inter_) 197 DO k=1,klev 198 DO i=1,klon 199 ratqs_inter_(i,k)=ratqs_inter_(i,k)-0.5*ratqs_inter_(i,k)*(tanh((ratqsp0-pplay(i,k))/ratqsdp)+1.) 200 enddo 201 enddo 197 ratqs_inter_,sigma_qtherm) 202 198 ratqss=ratqss+ratqs_inter_ 203 199 ELSE IF (iflag_ratqs == 11) THEN … … 207 203 ratqsbas,wake_deltaq,wake_s,q_seri,qtc_cv, sigt_cv, & 208 204 fm_therm,entr_therm,detr_therm,detrain_cv,fm_cv,fqd,fqcomp,sigd, & 209 ratqs_inter_ )205 ratqs_inter_,sigma_qtherm) 210 206 ratqss=ratqss+ratqs_inter_ 211 207 ELSE IF (iflag_ratqs == 12) THEN -
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_ratqs_multi.F90
r5158 r5226 23 23 ratqsbas, wake_deltaq, wake_s, q_seri,qtc_cv, sigt_cv, & 24 24 fm_therm,entr_therm,detr_therm,detrain_cv,fm_cv,fqd,fqcomp,sigd, & 25 ratqs_inter_ )25 ratqs_inter_,sigma_qtherm) 26 26 27 27 USE lmdz_ratqs_ini, ONLY: a_ratqs_cv,tau_var,fac_tau,tau_cumul,a_ratqs_wake, dqimpl … … 65 65 REAL, DIMENSION(klon) :: max_sigd, max_dqconv,max_sigt 66 66 REAL, DIMENSION(klon,klev) :: zoa,zocarrea,pdocarreadj,pocarre,po,pdoadj,varq_therm 67 REAL, DIMENSION(klon,klev) :: var_moy, var_var, var_desc_th,var_det_conv,var_desc_prec,var_desc_conv,sigma_ therm67 REAL, DIMENSION(klon,klev) :: var_moy, var_var, var_desc_th,var_det_conv,var_desc_prec,var_desc_conv,sigma_qtherm 68 68 69 69 lev_out=0. … … 193 193 IF(q_seri(i,k)>=1E-7) THEN 194 194 ratqs_inter_(i,k) = abs(povariance(i,k))**0.5/q_seri(i,k) 195 sigma_ therm(i,k) = abs(varq_therm(i,k))**0.5 ! sigma dans les thermiques195 sigma_qtherm(i,k) = abs(varq_therm(i,k))**0.5 ! sigma dans les thermiques 196 196 else 197 197 ratqs_inter_(i,k) = 0. 198 sigma_ therm(i,k) = 0.198 sigma_qtherm(i,k) = 0. 199 199 endif 200 200 enddo -
LMDZ6/branches/Amaury_dev/libf/phylmd/phys_state_var_mod.F90
r5224 r5226 476 476 !$OMP THREADPRIVATE(ale_bl_trig) 477 477 478 REAL,SAVE,ALLOCATABLE :: ratqs_inter_(:,:) 479 !$OMP THREADPRIVATE(ratqs_inter_ )478 REAL,SAVE,ALLOCATABLE :: ratqs_inter_(:,:),sigma_qtherm(:,:) 479 !$OMP THREADPRIVATE(ratqs_inter_,sigma_qtherm) 480 480 481 481 #ifdef ISO … … 770 770 771 771 ALLOCATE(ale_bl_trig(klon)) 772 ALLOCATE(ratqs_inter_(klon,klev) )772 ALLOCATE(ratqs_inter_(klon,klev),sigma_qtherm(klon,klev)) 773 773 IF (ok_gwd_rando) THEN 774 774 ALLOCATE(du_gwd_rando(klon, klev)) … … 940 940 IF (.NOT. ok_hines .AND. ok_gwd_rando) DEALLOCATE(du_gwd_front) 941 941 DEALLOCATE(ale_bl_trig) 942 DEALLOCATE(ratqs_inter_ )942 DEALLOCATE(ratqs_inter_,sigma_qtherm) 943 943 944 944 IF (activate_ocean_skin >= 1) THEN -
LMDZ6/branches/Amaury_dev/libf/phylmd/physiq_mod.F90
r5225 r5226 3749 3749 omega, pbl_tke(:, :, is_ave), pbl_eps(:, :, is_ave), l_mix_ave, wprime_ave, & 3750 3750 t2m, q2m, fm_therm, entr_therm, detr_therm, cell_area, & 3751 ratqs, ratqsc, ratqs_inter_ )3751 ratqs, ratqsc, ratqs_inter_,sigma_qtherm) 3752 3752 3753 3753 ! Appeler le processus de condensation a grande echelle … … 3768 3768 3769 3769 CALL lscp(klon, klev, phys_tstep, missing_val, paprs, pplay, & 3770 t_seri, q_seri, qs_ini, ptconv, ratqs, &3770 t_seri, q_seri, qs_ini, ptconv, ratqs,sigma_qtherm, & 3771 3771 d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, rneblsvol, & 3772 3772 pfraclr, pfracld, cldfraliq, sigma2_icefracturb, mean_icefracturb, & … … 3791 3791 3792 3792 CALL fisrtilp(klon, klev, phys_tstep, paprs, pplay, & 3793 t_seri, q_seri, ptconv, ratqs, &3793 t_seri, q_seri, ptconv, ratqs,sigma_qtherm, & 3794 3794 d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, rneblsvol, radocond, & 3795 3795 rain_lsc, snow_lsc, & -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/lmdz_lscp_old.F90
r5158 r5226 6 6 USE lmdz_abort_physic, ONLY: abort_physic 7 7 CONTAINS 8 SUBROUTINE fisrtilp(dtime,paprs,pplay,t,q,ptconv,ratqs, &8 SUBROUTINE fisrtilp(dtime,paprs,pplay,t,q,ptconv,ratqs,sigma_qtherm, & 9 9 d_t, d_q, d_ql, d_qi, rneb, radliq, rain, snow, & 10 10 pfrac_impa, pfrac_nucl, pfrac_1nucl, & … … 119 119 120 120 ! Input/output 121 REAL, DIMENSION(klon,klev), INTENT(INOUT):: ratqs ! determine la largeur de distribution de vapeur121 REAL, DIMENSION(klon,klev), INTENT(INOUT):: ratqs,sigma_qtherm ! determine la largeur de distribution de vapeur 122 122 123 123 ! Principaux outputs: … … 1132 1132 zq,zqta,fraca, & 1133 1133 qcloud,ctot,ctot_vol,zpspsk,paprs,pplay,ztla,zthl, & 1134 ratqs, zqs,t, &1134 ratqs,sigma_qtherm,zqs,t, & 1135 1135 cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv) 1136 1136 -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/physiq_mod.F90
r5224 r5226 4942 4942 omega,pbl_tke(:,:,is_ave),pbl_eps(:,:,is_ave),l_mix_ave,wprime_ave, & 4943 4943 t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area, & 4944 ratqs,ratqsc,ratqs_inter_ )4944 ratqs,ratqsc,ratqs_inter_,sigma_qtherm) 4945 4945 4946 4946 ! Appeler le processus de condensation a grande echelle … … 5042 5042 5043 5043 CALL lscp(klon,klev,phys_tstep,missing_val,paprs,pplay, & 5044 t_seri, q_seri,qs_ini,ptconv,ratqs, &5044 t_seri, q_seri,qs_ini,ptconv,ratqs,sigma_qtherm, & 5045 5045 d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, rneblsvol, & 5046 5046 pfraclr, pfracld, cldfraliq, sigma2_icefracturb, mean_icefracturb, & … … 5067 5067 ! Camille Risi mai 2024: on ne met pas à jour ici pour ne pas s'mbêter à modifier fisrtilp 5068 5068 CALL fisrtilp(phys_tstep,paprs,pplay, & 5069 t_seri, q_seri,ptconv,ratqs, &5069 t_seri, q_seri,ptconv,ratqs,sigma_qtherm, & 5070 5070 d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, radocond, & 5071 5071 rain_lsc, snow_lsc, &
Note: See TracChangeset
for help on using the changeset viewer.