Changeset 5999
- Timestamp:
- Jan 6, 2026, 9:22:21 AM (6 days ago)
- Location:
- LMDZ6/trunk/libf
- Files:
-
- 6 edited
-
phylmd/lmdz_lscp_main.f90 (modified) (1 diff)
-
phylmd/lmdz_lscp_phase.f90 (modified) (1 diff)
-
phylmd/lmdz_ratqs_main.f90 (modified) (6 diffs)
-
phylmd/lmdz_ratqs_multi.f90 (modified) (4 diffs)
-
phylmd/physiq_mod.F90 (modified) (1 diff)
-
phylmdiso/physiq_mod.F90 (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/lmdz_lscp_main.f90
r5996 r5999 25 25 cf_seri, rvc_seri, u_seri, v_seri, & 26 26 qsub, qissr, qcld, subfra, issrfra, gamma_cond, & 27 dcf_sub, dcf_con, dcf_mix, &27 dcf_sub, dcf_con, dcf_mix, & 28 28 dqi_adj, dqi_sub, dqi_con, dqi_mix, dqvc_adj, & 29 29 dqvc_sub, dqvc_con, dqvc_mix, qsatl, qsati, & -
LMDZ6/trunk/libf/phylmd/lmdz_lscp_phase.f90
r5996 r5999 169 169 USE lmdz_lscp_ini, ONLY : naero5, gamma_snwretro, gamma_taud, capa_crystal, rho_ice 170 170 USE lmdz_lscp_ini, ONLY : eps, snow_fallspeed 171 USE lmdz_lscp_tools, ONLY: calc_qsat_ecmwf 171 172 172 173 IMPLICIT NONE -
LMDZ6/trunk/libf/phylmd/lmdz_ratqs_main.f90
r5995 r5999 38 38 qtc_cv, sigt_cv,detrain_cv,fm_cv,fqd,fqcomp,sigd,zqsat, & 39 39 omega, & 40 t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area,&40 fm_therm,entr_therm,detr_therm,cell_area,& 41 41 ratqs,ratqsc,ratqs_inter_,sigma_qtherm) 42 42 43 43 44 44 USE clouds_gno_mod, ONLY: clouds_gno 45 USE lmdz_ratqs_multi, ONLY: ratqs_inter, ratqs_oro , ratqs_hetero45 USE lmdz_ratqs_multi, ONLY: ratqs_inter, ratqs_oro 46 46 47 47 implicit none … … 73 73 real, dimension(klon,klev),intent(in) :: wake_deltaq 74 74 real, dimension(klon),intent(in) :: wake_s 75 real, dimension(klon,nbsrf),intent(in) :: t2m,q2m76 75 real, dimension(klon), intent(in) :: cell_area 77 76 real, dimension(klon,nbsrf),intent(in) :: pctsrf … … 88 87 real, dimension(klon,klev) :: ratqss 89 88 real facteur,zfratqs1,zfratqs2 90 real, dimension(klon,klev) :: ratqs_ hetero_,ratqs_oro_89 real, dimension(klon,klev) :: ratqs_oro_ 91 90 real :: resol, fact 92 91 … … 202 201 else if (iflag_ratqs .GT. 9) then 203 202 204 ! interactive ratqs calculations that depend on cold pools, orography , surface heterogeneity and small-scale turbulence203 ! interactive ratqs calculations that depend on cold pools, orography 205 204 ! This should help getting a more realistic ratqs in the low and mid troposphere 206 205 ! We however need a "background" ratqs to account for subgrid distribution of qt (or qt/qs) … … 213 212 *( tanh( (ratqsp0-pplay(i,k))/ratqsdp) + 1.) 214 213 ratqss(i,k)=max(ratqss(i,k),0.0) 215 ratqs_hetero_(i,k)=0.216 214 ratqs_oro_(i,k)=0. 217 215 ratqs_inter_(i,k)=0 … … 234 232 ratqss=ratqss+ratqs_inter_ 235 233 else if (iflag_ratqs .EQ. 12) then 236 ! contribution of surface heterogeneities to ratqs 237 call ratqs_hetero(klon,klev,pctsrf,s_pblh,t2m,q2m,t_seri,q_seri,pplay,paprs,ratqs_hetero_) 238 ratqss=ratqss+ratqs_hetero_ 239 else if (iflag_ratqs .EQ. 13) then 240 ! contribution of ubgrid orography to ratqs 234 ! contribution of subgrid orography to ratqs 241 235 call ratqs_oro(klon,klev,pctsrf,zstd,zqsat,t_seri,pplay,paprs,ratqs_oro_) 242 236 ratqss=ratqss+ratqs_oro_ -
LMDZ6/trunk/libf/phylmd/lmdz_ratqs_multi.f90
r5995 r5999 2 2 3 3 !============================================= 4 ! A FAIRE :5 ! Traiter le probleme de USE lmdz_lscp_tools, ONLY: CALC_QSAT_ECMWF6 !=============================================7 8 !=============================================9 4 ! module containing subroutines that take 10 ! into account the effect of convection, orography, 11 ! surface heterogeneities and subgrid-scale 12 ! turbulence on ratqs, i.e. on the width of the 5 ! into account the effect of convection and orography 6 ! i.e. on the width of the 13 7 ! total water subgrid distribution. 14 8 !============================================= … … 40 34 ! L. d'Alencon, 25/02/2021 41 35 ! Cette subroutine calcule une valeur de ratqsbas interactive 42 ! Elle est appel ??e par la subroutine ratqs lorsque iflag_ratqs = 11.36 ! Elle est appelee par la subroutine ratqs lorsque iflag_ratqs = 11. 43 37 !======================================================================== 44 38 … … 74 68 lev_out=0. 75 69 76 print*,'ratqs_inter'77 78 70 !----------------------------------------------------------------------- 79 71 ! Calcul des masses … … 289 281 !============================================= 290 282 291 SUBROUTINE ratqs_hetero(klon,klev,pctsrf,s_pblh,t2m,q2m,temp,q,pplay,paprs,ratqs_hetero_)292 293 ! Etienne Vignon, November 2021294 ! Effect of subgrid surface heterogeneities on ratqs295 296 USE lmdz_lscp_tools, ONLY: CALC_QSAT_ECMWF297 298 USE lmdz_ratqs_ini, ONLY : RG,RD,RTT,nbsrf299 300 IMPLICIT NONE301 302 ! INPUTS303 304 305 INTEGER, INTENT(IN) :: klon ! number of horizontal grid points306 INTEGER, INTENT(IN) :: klev ! number of vertical layers307 REAL, DIMENSION(klon) :: s_pblh ! height of the planetary boundary layer(HPBL)308 REAL, DIMENSION(klon,nbsrf) :: pctsrf ! Fractional cover of subsurfaces309 REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: t2m ! 2m temperature for each tile [K]310 REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: q2m ! 2m specific humidity for each tile [kg/kg]311 REAL, DIMENSION(klon,klev), INTENT(IN) :: temp ! air temperature [K]312 REAL, DIMENSION(klon,klev), INTENT(IN) :: q ! specific humidity [kg/kg]313 REAL, DIMENSION(klon,klev), INTENT(IN) :: pplay ! air pressure, layer's center [Pa]314 REAL, DIMENSION(klon,klev+1), INTENT(IN) :: paprs ! air pressure, lower inteface [Pa]315 316 ! OUTPUTS317 318 REAL, DIMENSION(klon,klev), INTENT(out) :: ratqs_hetero_ ! ratsq profile due to surface heterogeneities319 320 321 INTEGER :: i,k,nsrf322 REAL, DIMENSION(klon) :: xsi0, ratiom, qsat2m, dqsatdT323 REAL, DIMENSION (klon,klev) :: zlay324 325 326 327 ! Calculation of near-surface surface ratqs328 !-------------------------------------------329 330 331 ratiom(:)=0.332 xsi0(:)=0.333 334 DO nsrf=1,nbsrf335 CALL CALC_QSAT_ECMWF(klon,t2m(:,nsrf),q2m(:,nsrf),paprs(:,1),RTT,0,.false.,qsat2m,dqsatdT)336 ratiom(:)=ratiom(:)+pctsrf(:,nsrf)*(q2m(:,nsrf)/qsat2m(:))337 xsi0(:)=xsi0(:)+pctsrf(:,nsrf)*((q2m(:,nsrf)/qsat2m(:)-ratiom(:))**2)338 END DO339 340 xsi0(:)=sqrt(xsi0(:))/(ratiom(:)+1E-6)341 342 343 344 ! Vertical profile of ratqs assuming an exponential decrease with height345 !------------------------------------------------------------------------346 347 ! calculation of geop. height AGL348 349 zlay(:,1)= RD*temp(:,1)/(0.5*(paprs(:,1)+pplay(:,1))) &350 *(paprs(:,1)-pplay(:,1))/RG351 ratqs_hetero_(:,1)=xsi0(:)352 353 DO k=2,klev354 DO i = 1, klon355 zlay(i,k)= zlay(i,k-1)+RD*0.5*(temp(i,k-1)+temp(i,k)) &356 /paprs(i,k)*(pplay(i,k-1)-pplay(i,k))/RG357 358 ratqs_hetero_(i,k)=MAX(xsi0(i)*exp(-zlay(i,k)/(s_pblh(i)+1.0)),0.0)359 END DO360 END DO361 362 END SUBROUTINE ratqs_hetero363 364 !=============================================365 366 283 END MODULE lmdz_ratqs_multi -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r5998 r5999 3956 3956 qtc_cv, sigt_cv,detrain_cv,fm_cv,fqd,fqcomp,sigd,zqsat, & 3957 3957 omega, & 3958 t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area, &3958 fm_therm,entr_therm,detr_therm,cell_area, & 3959 3959 ratqs,ratqsc,ratqs_inter_,sigma_qtherm) 3960 3960 -
LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90
r5998 r5999 5115 5115 qtc_cv, sigt_cv,detrain_cv,fm_cv,fqd,fqcomp,sigd,zqsat, & 5116 5116 omega, & 5117 t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area, &5117 fm_therm,entr_therm,detr_therm,cell_area, & 5118 5118 ratqs,ratqsc,ratqs_inter_,sigma_qtherm) 5119 5119
Note: See TracChangeset
for help on using the changeset viewer.
