Changeset 5174 for LMDZ6/branches/Amaury_dev/libf
- Timestamp:
- Sep 9, 2024, 11:03:45 AM (3 months ago)
- Location:
- LMDZ6/branches/Amaury_dev
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev
- Property svn:mergeinfo changed
/LMDZ6/trunk merged: 5170-5171
- Property svn:mergeinfo changed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_lscp_tools.F90
r5153 r5174 233 233 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 234 234 ! Compute the liquid, ice and vapour content (+ice fraction) based 235 ! on turbulence (see Fields 2014, Furtado 2016) 235 ! on turbulence (see Fields 2014, Furtado 2016, Raillard 2025) 236 ! L.Raillard (30/08/24) 236 237 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 237 238 … … 363 364 ! Enough TKE 364 365 ELSE 366 print*,"MOUCHOIRACTIVE" 365 367 !--------------------------------------------------------- 366 368 !-- ICE SUPERSATURATION PDF … … 390 392 IF (qiceini_incl > eps) THEN 391 393 nb_crystals = 1.e3 * 5.94e-5 * (RTT - temp(i))**3.33 * naero5**(0.0264 * (RTT - temp(i)) + 0.0033) 392 lambda_PSD = ((RPI * rho_ice * nb_crystals * 24.) / (6.* (qiceini_incl + gamma_snwretro * qsnowcld_incl))) ** (1. / 3.)394 lambda_PSD = ((RPI * rho_ice * nb_crystals ) / (rho_air * (qiceini_incl + gamma_snwretro * qsnowcld_incl))) ** (1. / 3.) 393 395 N0_PSD = nb_crystals * lambda_PSD 394 moment1_PSD = N0_PSD / 2. /lambda_PSD**2396 moment1_PSD = N0_PSD / lambda_PSD**2 395 397 ELSE 396 398 moment1_PSD = 0. … … 443 445 mean_pdf = sursat_env * 1. / tau_mixingenv / (invtau_phaserelax + 1. / tau_mixingenv) 444 446 cldfraliq(i) = 0.5 * (1. - erf((sursat_iceliq - mean_pdf) / (SQRT(2. * sigma2_pdf)))) 445 !IF (cldfraliq(i) .GT. liqfra_max) THEN446 !cldfraliq(i) = liqfra_max447 !ENDIF447 IF (cldfraliq(i) .GT. liqfra_max) THEN 448 cldfraliq(i) = liqfra_max 449 ENDIF 448 450 449 451 qliq_incl = qsati(i) * SQRT(sigma2_pdf) / SQRT(2. * RPI) * EXP(-1. * (sursat_iceliq - mean_pdf)**2. / (2. * sigma2_pdf)) & … … 452 454 sigma2_icefracturb(i) = sigma2_pdf 453 455 mean_icefracturb(i) = mean_pdf 454 !------------ ICE AMOUNT AND WATER CONSERVATION ------------456 !------------ SPECIFIC VAPOR CONTENT AND WATER CONSERVATION ------------ 455 457 456 458 IF ((qliq_incl <= eps) .OR. (cldfraliq(i) <= eps)) THEN … … 459 461 END IF 460 462 461 !--Choice for in-cloud vapor : 462 !--1.Weighted mean between qvap in MPC parts and in ice-only parts 463 !--2.Always at ice saturation 463 !--Specific humidity is the max between qsati and the weighted mean between 464 !--qv in MPC patches and qv in ice-only parts. We assume that MPC parts are 465 !--always at qsatl and ice-only parts slightly subsaturated (qsati*sursat_iceext+1) 466 !--The whole cloud can therefore be supersaturated but never subsaturated. 464 467 qvap_incl = MAX(qsati(i), (1. - cldfraliq(i)) * (sursat_iceext + 1.) * qsati(i) + cldfraliq(i) * qsatl(i)) 465 468 -
LMDZ6/branches/Amaury_dev/libf/phylmd/pbl_surface_mod.F90
r5160 r5174 2701 2701 yt1_new = (1. / RCPD) * (AcoefH(j) + BcoefH(j) * y_flux_t1(j) * dtime) 2702 2702 ytsurf_new(j) = yt1_new - y_flux_t1(j) / (Kech_h(j) * RCPD) 2703 ENDDO 2703 ! for cases forced in flux and for which forcing in Ts is needed 2704 ! to prevent the latter to reach unrealistic value (even if not used, 2705 ! Ts is calculated and hgardfou can appear during the calculation 2706 ! of surface saturation humidity for example 2707 if (ok_forc_tsurf) ytsurf_new(j)=tg 2708 ENDDO 2704 2709 2705 2710 DO j = 1, knon
Note: See TracChangeset
for help on using the changeset viewer.