Ignore:
Timestamp:
Sep 25, 2024, 9:47:00 AM (2 months ago)
Author:
abarral
Message:

Merge r5208 r5209

Location:
LMDZ6/branches/Amaury_dev
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev

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

    r5160 r5226  
    542542          ztv, po, zqta, fraca, &
    543543          qcloud, ctot, ctot_vol, zpspsk, paprs, pplay, ztla, zthl, &
    544           ratqs, zqs, t, &
     544          ratqs, sigma_qtherm,zqs, t, &
    545545          cloudth_sth, cloudth_senv, cloudth_sigmath, cloudth_sigmaenv)
    546546
     
    575575    REAL, DIMENSION(ngrid, klev), INTENT(IN) :: ztla
    576576    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
    578578    REAL, DIMENSION(ngrid), INTENT(IN) :: zqs
    579579    REAL, DIMENSION(ngrid, klev), INTENT(IN) :: t
     
    611611              ztv, po, zqta, fraca, &
    612612              qcloud, ctot, ctot_vol, zpspsk, paprs, pplay, ztla, zthl, &
    613               ratqs, zqs, t, &
     613              ratqs, sigma_qtherm, zqs, t, &
    614614              cloudth_sth, cloudth_senv, cloudth_sigmath, cloudth_sigmaenv)
    615615      RETURN
     
    761761          ztv, po, zqta, fraca, &
    762762          qcloud, ctot, ctot_vol, zpspsk, paprs, pplay, ztla, zthl, &
    763           ratqs, zqs, t, &
     763          ratqs, sigma_qtherm, zqs, t, &
    764764          cloudth_sth, cloudth_senv, cloudth_sigmath, cloudth_sigmaenv)
    765765
     
    821821    REAL Tbef, zdelta, qsatbef, zcor
    822822    REAL qlbef
    823     REAL ratqs(ngrid, klev) ! determine la largeur de distribution de vapeur
     823    REAL ratqs(ngrid, klev), sigma_qtherm(ngrid,klev) ! determine la largeur de distribution de vapeur
    824824    ! Change the width of the PDF used for vertical subgrid scale heterogeneity
    825825    ! (J Jouhaud, JL Dufresne, JB Madeleine)
     
    924924        ENDIF
    925925        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
    927928          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
    930933        !      tests
    931934        !      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  
    77  !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    88  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, &
    1010          d_t, d_q, d_ql, d_qi, rneb, rneblsvol, &
    1111          pfraclr, pfracld, &
     
    156156    !------------------------
    157157
    158     REAL, DIMENSION(klon, klev), INTENT(INOUT) :: thl              ! liquid potential temperature [K]
    159     REAL, DIMENSION(klon, klev), INTENT(INOUT) :: ratqs            ! function of pressure that sets the large-scale
     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
    160160
    161161    ! INPUT/OUTPUT condensation and ice supersaturation
     
    809809                  zq, qta, fraca, &
    810810                  qcloud, ctot, ctot_vol, pspsk, paprs, pplay, tla, thl, &
    811                   ratqs, zqs, temp, &
     811                  ratqs, sigma_qtherm, zqs, temp, &
    812812                  cloudth_sth, cloudth_senv, cloudth_sigmath, cloudth_sigmaenv)
    813813
  • LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_lscp_old.F90

    r5158 r5226  
    44MODULE lmdz_lscp_old
    55CONTAINS
    6 SUBROUTINE fisrtilp(klon,klev,dtime,paprs,pplay,t,q,ptconv,ratqs, &
     6SUBROUTINE fisrtilp(klon,klev,dtime,paprs,pplay,t,q,ptconv,ratqs, sigma_qtherm, &
    77     d_t, d_q, d_ql, d_qi, rneb,rneblsvol,radliq, rain, snow,          &
    88     pfrac_impa, pfrac_nucl, pfrac_1nucl,               &
     
    7676
    7777  !  Input/output
    78   REAL, DIMENSION(klon,klev),      INTENT(INOUT):: ratqs  ! determine la largeur de distribution de vapeur
     78  REAL, DIMENSION(klon,klev),      INTENT(INOUT):: ratqs, sigma_qtherm  ! determine la largeur de distribution de vapeur
    7979
    8080  ! Principaux outputs:
     
    787787                   zq,zqta,fraca, &
    788788                   qcloud,ctot,ctot_vol,zpspsk,paprs,pplay,ztla,zthl, &
    789                    ratqs,zqs,t, &
     789                   ratqs,sigma_qtherm,zqs,t, &
    790790                   cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv)
    791791              !----------------------------------
  • LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_ratqs_main.F90

    r5158 r5226  
    1313           omega,tke,tke_dissip,lmix,wprime, &
    1414           t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area,&
    15            ratqs,ratqsc,ratqs_inter_)
     15           ratqs,ratqsc,ratqs_inter_,sigma_qtherm)
    1616
    1717
     
    5252
    5353! Output
    54 REAL, DIMENSION(klon,klev),INTENT(INOUT) :: ratqs,ratqsc,ratqs_inter_
     54REAL, DIMENSION(klon,klev),INTENT(INOUT) :: ratqs,ratqsc,ratqs_inter_,sigma_qtherm
    5555
    5656logical, DIMENSION(klon,klev),INTENT(INOUT) :: ptconvth
     
    190190     
    191191          IF (iflag_ratqs == 10) THEN
    192              ! interactive ratqs in presence of cold pools     
     192             print*,'avant ratqs_inter'
     193            ! interactive ratqs with several sources
    193194             CALL ratqs_inter(klon,klev,iflag_ratqs,pdtphys,paprs, &
    194195                       ratqsbas,wake_deltaq,wake_s,q_seri,qtc_cv, sigt_cv, &
    195196                       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)
    202198             ratqss=ratqss+ratqs_inter_
    203199          ELSE IF (iflag_ratqs == 11) THEN
     
    207203                       ratqsbas,wake_deltaq,wake_s,q_seri,qtc_cv, sigt_cv, &
    208204                       fm_therm,entr_therm,detr_therm,detrain_cv,fm_cv,fqd,fqcomp,sigd, &
    209                        ratqs_inter_)
     205                       ratqs_inter_,sigma_qtherm)
    210206             ratqss=ratqss+ratqs_inter_
    211207          ELSE IF (iflag_ratqs == 12) THEN
  • LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_ratqs_multi.F90

    r5158 r5226  
    2323           ratqsbas, wake_deltaq, wake_s, q_seri,qtc_cv, sigt_cv,     &
    2424           fm_therm,entr_therm,detr_therm,detrain_cv,fm_cv,fqd,fqcomp,sigd, &
    25            ratqs_inter_)
     25           ratqs_inter_,sigma_qtherm)
    2626
    2727USE lmdz_ratqs_ini, ONLY: a_ratqs_cv,tau_var,fac_tau,tau_cumul,a_ratqs_wake, dqimpl
     
    6565REAL, DIMENSION(klon) :: max_sigd, max_dqconv,max_sigt
    6666REAL, 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_therm
     67REAL, DIMENSION(klon,klev) :: var_moy, var_var, var_desc_th,var_det_conv,var_desc_prec,var_desc_conv,sigma_qtherm
    6868
    6969lev_out=0.
     
    193193           IF(q_seri(i,k)>=1E-7) THEN
    194194               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 thermiques
     195               sigma_qtherm(i,k) = abs(varq_therm(i,k))**0.5     ! sigma dans les thermiques
    196196           else
    197197               ratqs_inter_(i,k) = 0. 
    198                sigma_therm(i,k) = 0.
     198               sigma_qtherm(i,k) = 0.
    199199           endif
    200200        enddo
  • LMDZ6/branches/Amaury_dev/libf/phylmd/phys_state_var_mod.F90

    r5224 r5226  
    476476!$OMP THREADPRIVATE(ale_bl_trig)
    477477
    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)
    480480
    481481#ifdef ISO
     
    770770
    771771      ALLOCATE(ale_bl_trig(klon))
    772       ALLOCATE(ratqs_inter_(klon,klev))
     772      ALLOCATE(ratqs_inter_(klon,klev),sigma_qtherm(klon,klev))
    773773      IF (ok_gwd_rando) THEN
    774774        ALLOCATE(du_gwd_rando(klon, klev))
     
    940940      IF (.NOT. ok_hines .AND. ok_gwd_rando) DEALLOCATE(du_gwd_front)
    941941      DEALLOCATE(ale_bl_trig)
    942       DEALLOCATE(ratqs_inter_)
     942      DEALLOCATE(ratqs_inter_,sigma_qtherm)
    943943
    944944      IF (activate_ocean_skin >= 1) THEN
  • LMDZ6/branches/Amaury_dev/libf/phylmd/physiq_mod.F90

    r5225 r5226  
    37493749            omega, pbl_tke(:, :, is_ave), pbl_eps(:, :, is_ave), l_mix_ave, wprime_ave, &
    37503750            t2m, q2m, fm_therm, entr_therm, detr_therm, cell_area, &
    3751             ratqs, ratqsc, ratqs_inter_)
     3751            ratqs, ratqsc, ratqs_inter_,sigma_qtherm)
    37523752
    37533753    ! Appeler le processus de condensation a grande echelle
     
    37683768
    37693769      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, &
    37713771              d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, rneblsvol, &
    37723772              pfraclr, pfracld, cldfraliq, sigma2_icefracturb, mean_icefracturb, &
     
    37913791
    37923792      CALL fisrtilp(klon, klev, phys_tstep, paprs, pplay, &
    3793               t_seri, q_seri, ptconv, ratqs, &
     3793              t_seri, q_seri, ptconv, ratqs,sigma_qtherm, &
    37943794              d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, rneblsvol, radocond, &
    37953795              rain_lsc, snow_lsc, &
  • LMDZ6/branches/Amaury_dev/libf/phylmdiso/lmdz_lscp_old.F90

    r5158 r5226  
    66  USE lmdz_abort_physic, ONLY: abort_physic
    77CONTAINS
    8 SUBROUTINE fisrtilp(dtime,paprs,pplay,t,q,ptconv,ratqs, &
     8SUBROUTINE fisrtilp(dtime,paprs,pplay,t,q,ptconv,ratqs,sigma_qtherm, &
    99     d_t, d_q, d_ql, d_qi, rneb, radliq, rain, snow,          &
    1010     pfrac_impa, pfrac_nucl, pfrac_1nucl,               &
     
    119119
    120120  !  Input/output
    121   REAL, DIMENSION(klon,klev),      INTENT(INOUT):: ratqs  ! determine la largeur de distribution de vapeur
     121  REAL, DIMENSION(klon,klev),      INTENT(INOUT):: ratqs,sigma_qtherm  ! determine la largeur de distribution de vapeur
    122122
    123123  ! Principaux outputs:
     
    11321132                   zq,zqta,fraca, &
    11331133                   qcloud,ctot,ctot_vol,zpspsk,paprs,pplay,ztla,zthl, &
    1134                    ratqs,zqs,t, &
     1134                   ratqs,sigma_qtherm,zqs,t, &
    11351135                   cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv)
    11361136
  • LMDZ6/branches/Amaury_dev/libf/phylmdiso/physiq_mod.F90

    r5224 r5226  
    49424942         omega,pbl_tke(:,:,is_ave),pbl_eps(:,:,is_ave),l_mix_ave,wprime_ave, &
    49434943         t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area, &
    4944          ratqs,ratqsc,ratqs_inter_)
     4944         ratqs,ratqsc,ratqs_inter_,sigma_qtherm)
    49454945
    49464946    ! Appeler le processus de condensation a grande echelle
     
    50425042
    50435043    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, &
    50455045         d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, rneblsvol, &
    50465046         pfraclr, pfracld, cldfraliq, sigma2_icefracturb, mean_icefracturb,  &
     
    50675067    ! Camille Risi mai 2024: on ne met pas à jour ici pour ne pas s'mbêter à modifier fisrtilp
    50685068    CALL fisrtilp(phys_tstep,paprs,pplay, &
    5069          t_seri, q_seri,ptconv,ratqs, &
     5069         t_seri, q_seri,ptconv,ratqs,sigma_qtherm, &
    50705070         d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, radocond, &
    50715071         rain_lsc, snow_lsc, &
Note: See TracChangeset for help on using the changeset viewer.