Changeset 5170 for LMDZ6/trunk/libf
- Timestamp:
- Aug 31, 2024, 8:28:14 PM (3 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/lmdz_lscp_tools.F90
r5007 r5170 243 243 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 244 244 ! Compute the liquid, ice and vapour content (+ice fraction) based 245 ! on turbulence (see Fields 2014, Furtado 2016) 245 ! on turbulence (see Fields 2014, Furtado 2016, Raillard 2025) 246 ! L.Raillard (30/08/24) 246 247 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 247 248 … … 375 376 376 377 ! Enough TKE 377 ELSE 378 ELSE 379 print*,"MOUCHOIRACTIVE" 378 380 !--------------------------------------------------------- 379 381 !-- ICE SUPERSATURATION PDF … … 403 405 IF ( qiceini_incl .GT. eps ) THEN 404 406 nb_crystals = 1.e3 * 5.94e-5 * ( RTT - temp(i) )**3.33 * naero5**(0.0264*(RTT-temp(i))+0.0033) 405 lambda_PSD = ( (RPI*rho_ice*nb_crystals *24.) / (6.*(qiceini_incl + gamma_snwretro * qsnowcld_incl)) ) ** (1./3.)407 lambda_PSD = ( (RPI*rho_ice*nb_crystals) / (rho_air*(qiceini_incl + gamma_snwretro * qsnowcld_incl)) ) ** (1./3.) 406 408 N0_PSD = nb_crystals * lambda_PSD 407 moment1_PSD = N0_PSD/ 2./lambda_PSD**2409 moment1_PSD = N0_PSD/lambda_PSD**2 408 410 ELSE 409 411 moment1_PSD = 0. … … 456 458 mean_pdf = sursat_env * 1./tau_mixingenv / ( invtau_phaserelax + 1./tau_mixingenv ) 457 459 cldfraliq(i) = 0.5 * (1. - erf( ( sursat_iceliq - mean_pdf) / (SQRT(2.* sigma2_pdf) ) ) ) 458 !IF (cldfraliq(i) .GT. liqfra_max) THEN459 !cldfraliq(i) = liqfra_max460 !ENDIF460 IF (cldfraliq(i) .GT. liqfra_max) THEN 461 cldfraliq(i) = liqfra_max 462 ENDIF 461 463 462 464 qliq_incl = qsati(i) * SQRT(sigma2_pdf) / SQRT(2.*RPI) * EXP( -1.*(sursat_iceliq - mean_pdf)**2. / (2.*sigma2_pdf) ) & … … 464 466 465 467 sigma2_icefracturb(i)= sigma2_pdf 466 mean_icefracturb(i) = mean_pdf 467 !------------ ICE AMOUNT AND WATER CONSERVATION ------------ 468 mean_icefracturb(i) = mean_pdf 469 470 !------------ SPECIFIC VAPOR CONTENT AND WATER CONSERVATION ------------ 468 471 469 472 IF ( (qliq_incl .LE. eps) .OR. (cldfraliq(i) .LE. eps) ) THEN … … 471 474 cldfraliq(i) = 0. 472 475 END IF 473 474 !--Choice for in-cloud vapor : 475 !--1.Weighted mean between qvap in MPC parts and in ice-only parts 476 !--2.Always at ice saturation 476 477 !--Specific humidity is the max between qsati and the weighted mean between 478 !--qv in MPC patches and qv in ice-only parts. We assume that MPC parts are 479 !--always at qsatl and ice-only parts slightly subsaturated (qsati*sursat_iceext+1) 480 !--The whole cloud can therefore be supersaturated but never subsaturated. 481 477 482 qvap_incl = MAX(qsati(i), ( 1. - cldfraliq(i) ) * (sursat_iceext + 1.) * qsati(i) + cldfraliq(i) * qsatl(i) ) 478 483 484 479 485 IF ( qvap_incl .GE. qtot_incl(i) ) THEN 480 486 qvap_incl = qsati(i)
Note: See TracChangeset
for help on using the changeset viewer.