Ignore:
Timestamp:
Sep 9, 2024, 11:03:45 AM (3 months ago)
Author:
abarral
Message:

Merge r5169, r5170, r5171

Location:
LMDZ6/branches/Amaury_dev
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev

  • LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_lscp_tools.F90

    r5153 r5174  
    233233    !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    234234    ! 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)
    236237    !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    237238
     
    363364            ! Enough TKE
    364365          ELSE
     366            print*,"MOUCHOIRACTIVE"
    365367            !---------------------------------------------------------
    366368            !--               ICE SUPERSATURATION PDF
     
    390392            IF (qiceini_incl > eps) THEN
    391393              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.)
    393395              N0_PSD = nb_crystals * lambda_PSD
    394               moment1_PSD = N0_PSD / 2. / lambda_PSD**2
     396              moment1_PSD = N0_PSD / lambda_PSD**2
    395397            ELSE
    396398              moment1_PSD = 0.
     
    443445            mean_pdf = sursat_env * 1. / tau_mixingenv / (invtau_phaserelax + 1. / tau_mixingenv)
    444446            cldfraliq(i) = 0.5 * (1. - erf((sursat_iceliq - mean_pdf) / (SQRT(2. * sigma2_pdf))))
    445             !IF (cldfraliq(i) .GT. liqfra_max) THEN
    446             !    cldfraliq(i) = liqfra_max
    447             !ENDIF
     447            IF (cldfraliq(i) .GT. liqfra_max) THEN
     448                cldfraliq(i) = liqfra_max
     449            ENDIF
    448450
    449451            qliq_incl = qsati(i) * SQRT(sigma2_pdf) / SQRT(2. * RPI) * EXP(-1. * (sursat_iceliq - mean_pdf)**2. / (2. * sigma2_pdf))  &
     
    452454            sigma2_icefracturb(i) = sigma2_pdf
    453455            mean_icefracturb(i) = mean_pdf
    454             !------------ ICE AMOUNT AND WATER CONSERVATION  ------------
     456            !------------ SPECIFIC VAPOR CONTENT AND WATER CONSERVATION  ------------
    455457
    456458            IF ((qliq_incl <= eps) .OR. (cldfraliq(i) <= eps)) THEN
     
    459461            END IF
    460462
    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.
    464467            qvap_incl = MAX(qsati(i), (1. - cldfraliq(i)) * (sursat_iceext + 1.) * qsati(i) + cldfraliq(i) * qsatl(i))
    465468
  • LMDZ6/branches/Amaury_dev/libf/phylmd/pbl_surface_mod.F90

    r5160 r5174  
    27012701          yt1_new = (1. / RCPD) * (AcoefH(j) + BcoefH(j) * y_flux_t1(j) * dtime)
    27022702          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
    27042709
    27052710        DO j = 1, knon
Note: See TracChangeset for help on using the changeset viewer.