Changeset 4613


Ignore:
Timestamp:
Jul 7, 2023, 4:01:37 AM (11 months ago)
Author:
fhourdin
Message:

Integration/replay_isation travail Louis (ratqs)

Location:
LMDZ6/trunk/libf
Files:
2 added
19 edited
4 moved

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dynphy_lonlat/phylmd/etat0phys_netcdf.F90

    r4089 r4613  
    9494  USE init_ssrf_m, ONLY: start_init_subsurf
    9595  USE phys_state_var_mod, ONLY: beta_aridity, delta_tsurf, awake_dens, cv_gen, &
    96        ratqs_inter, rneb_ancien
     96       ratqs_inter_, rneb_ancien
    9797  !use ioipsl_getincom
    9898  IMPLICIT NONE
     
    143143                   fact_cldcon, facttemps,ok_newmicro,iflag_radia,      &
    144144                   iflag_cldcon,                                        &
    145                    iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs,            &
     145                   ratqsbas,ratqshaut,tau_ratqs,            &
    146146                   ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, flag_volc_surfstrat,     &
    147147                   aerosol_couple, chemistry_couple, flag_aerosol, flag_aerosol_strat,  &
     
    285285  end IF
    286286
    287   ratqs_inter = 0.002
     287  ratqs_inter_ = 0.002
    288288  rneb_ancien = 0.
    289289  CALL phyredem( "startphy.nc" )
  • LMDZ6/trunk/libf/phylmd/cloudth_mod.F90

    r4593 r4613  
    3030      INTEGER itap,ind1,ind2
    3131      INTEGER ngrid,klev,klon,l,ig
     32      INTEGER iflag_ratqs
    3233     
    3334      REAL ztv(ngrid,klev)
     
    274275      INTEGER itap,ind1,ind2
    275276      INTEGER ngrid,klev,klon,l,ig
     277      INTEGER iflag_ratqs
    276278     
    277279      REAL ztv(ngrid,klev)
     
    613615      INTEGER itap,ind1,ind2
    614616      INTEGER ngrid,klev,klon,l,ig
     617      INTEGER iflag_ratqs
    615618     
    616619      REAL ztv(ngrid,klev)
     
    835838      INTEGER itap,ind1,ind2
    836839      INTEGER ngrid,klev,klon,l,ig
     840      INTEGER iflag_ratqs
    837841     
    838842      REAL ztv(ngrid,klev)
     
    10221026      ENDIF
    10231027      sigma1s = sigma1s_fraca + sigma1s_ratqs
     1028           IF (iflag_ratqs.eq.11) then
     1029              sigma1s = ratqs(ind1,ind2)*po(ind1)*aenv
     1030           ENDIF
    10241031      sigma2s=(sigma2s_factor*(((sth-senv)**2)**0.5)/((fraca(ind1,ind2)+0.02)**sigma2s_power))+0.002*zqta(ind1,ind2)
    10251032!      tests
     
    16001607
    16011608      INTEGER itap,ind1,l,ig,iter,k
     1609      INTEGER iflag_ratqs
    16021610      INTEGER iflag_topthermals, niter
    16031611      LOGICAL falseklon(klon)
     
    18941902 
    18951903           sigma1s = sigma1s_fraca + sigma1s_ratqs
     1904           IF (iflag_ratqs.eq.11) then
     1905              sigma1s = ratqs(ind1,ind2)*po(ind1)*aenv
     1906           ENDIF
    18961907           sigma2s=(sigma2s_factor*(((sth-senv)**2)**0.5)/((fraca(ind1,ind2)+0.02)**sigma2s_power))+0.002*zqta(ind1,ind2)
    18971908
     
    21362147
    21372148            sigma1s = sigma1s_fraca + sigma1s_ratqs
     2149           IF (iflag_ratqs.eq.11) then
     2150              sigma1s = ratqs(ind1,ind2)*po(ind1)*aenv
     2151           ENDIF
     2152           IF (iflag_ratqs.eq.11) then
     2153              sigma1s = ratqs(ind1,ind2)*po(ind1)*aenvl
     2154           ENDIF
    21382155            deltasenv=aenvl*vert_alpha*sigma1s
    21392156            xenv1=-(senvl+deltasenv)/(sqrt(2.)*sigma1s)
  • LMDZ6/trunk/libf/phylmd/concvl.F90

    r3496 r4613  
    33                  t, q, t_wake, q_wake, s_wake, u, v, tra, ntra, &
    44                  Ale, Alp, sig1, w01, &
    5                   d_t, d_q, d_u, d_v, d_tra, &
     5                  d_t, d_q, d_qcomp, d_u, d_v, d_tra, &
    66                  rain, snow, kbas, ktop, sigd, &
    77                  cbmf, plcl, plfc, wbeff, convoccur, &
     
    1616                  dd_t, dd_q, lalim_conv, wght_th, &                 ! RomP
    1717                  evap, ep, epmlmMm, eplaMm, &                       ! RomP
    18                   wdtrainA, wdtrainS, wdtrainM, wght, qtc, sigt, &
     18                  wdtrainA, wdtrainS, wdtrainM, wght, qtc, sigt, detrain, &
    1919                  tau_cld_cv, coefw_cld_cv, &                           ! RomP+RL, AJ
    2020!RomP <<<
     
    105105  REAL, DIMENSION(klon,klev),   INTENT(INOUT)   :: sig1, w01
    106106
    107   REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: d_t, d_q, d_u, d_v
     107  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: d_t, d_q, d_qcomp, d_u, d_v
    108108  REAL, DIMENSION(klon,klev, nbtr),INTENT(OUT)  :: d_tra
    109109  REAL, DIMENSION(klon),        INTENT(OUT)     :: rain, snow
     
    145145  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: wght                       !RL
    146146  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: qtc
    147   REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: sigt
     147  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: sigt, detrain
    148148  REAL,                         INTENT(OUT)     :: tau_cld_cv, coefw_cld_cv
    149149  REAL, DIMENSION(klon),        INTENT(OUT)     :: epmax_diag                ! epmax_cape
     
    429429                    Ale, Alp, omega, &
    430430                    em_sig1feed, em_sig2feed, em_wght, &
    431                     iflag, d_t, d_q, d_u, d_v, d_tra, rain, kbas, ktop, &
     431                    iflag, d_t, d_q, d_qcomp, d_u, d_v, d_tra, rain, kbas, ktop, &
    432432                    cbmf, plcl, plfc, wbeff, sig1, w01, ptop2, sigd, &
    433433                    Ma, mip, Vprecip, Vprecipi, upwd, dnwd, dnwdbis, qcondc, wd, &
     
    440440                    da, phi, mp, phii, d1a, dam, sij, wght, &           ! RomP+RL
    441441                    qta, clw, elij, evap, ep, epmlmMm, eplaMm, &        ! RomP+RL
    442                     wdtrainA, wdtrainS, wdtrainM, qtc, sigt, &
     442                    wdtrainA, wdtrainS, wdtrainM, qtc, sigt, detrain, &
    443443                    tau_cld_cv, coefw_cld_cv, &                         ! RomP,AJ
    444444!AC!+!RomP+jyg
  • LMDZ6/trunk/libf/phylmd/conf_phys_m.F90

    r4552 r4613  
    1616       fact_cldcon, facttemps,ok_newmicro,iflag_radia,&
    1717       iflag_cld_th, &
    18        iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, &
     18       ratqsbas,ratqshaut,tau_ratqs, &
    1919       ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, flag_volc_surfstrat, aerosol_couple, &
    2020       chemistry_couple, flag_aerosol, flag_aerosol_strat, flag_aer_feedback, &
     
    8585    REAL                 :: fact_cldcon, facttemps,ratqsbas,ratqshaut,tau_ratqs
    8686    INTEGER              :: iflag_cld_th
    87     INTEGER              :: iflag_ratqs
     87     
    8888
    8989    CHARACTER (len = 6), SAVE  :: type_ocean_omp, version_ocean_omp, ocean_omp
  • LMDZ6/trunk/libf/phylmd/cv3_routines.F90

    r4076 r4613  
    34483448                     tv, tvp, wghti, &
    34493449                     iflag, precip, Vprecip, Vprecipi, &     ! jyg: Vprecipi
    3450                      ft, fr, fu, fv, ftra, &                 ! jyg
     3450                     ft, fr, fr_comp, fu, fv, ftra, &                 ! jyg
    34513451                     cbmf, upwd, dnwd, dnwd0, ma, mip, &
    34523452!!                     tls, tps,                             ! useless . jyg
    34533453                     qcondc, wd, &
    3454                      ftd, fqd, qta, qtc, sigt, tau_cld_cv, coefw_cld_cv)
     3454                     ftd, fqd, qta, qtc, sigt, detrain, tau_cld_cv, coefw_cld_cv)
    34553455
    34563456    USE print_control_mod, ONLY: lunout, prt_level
     
    35053505!outputs:
    35063506      REAL, DIMENSION (nloc), INTENT (OUT)               :: precip
    3507       REAL, DIMENSION (nloc, nd), INTENT (OUT)           :: ft, fr, fu, fv
     3507      REAL, DIMENSION (nloc, nd), INTENT (OUT)           :: ft, fr, fu, fv , fr_comp
    35083508      REAL, DIMENSION (nloc, nd), INTENT (OUT)           :: ftd, fqd
    35093509      REAL, DIMENSION (nloc, nd, ntra), INTENT (OUT)     :: ftra
     
    35153515      REAL, DIMENSION (nloc, nd), INTENT (OUT)           :: qcondc                      ! cld
    35163516      REAL, DIMENSION (nloc, nd), INTENT (OUT)           :: qtc, sigt                   ! cld
     3517      REAL, DIMENSION (nloc, nd), INTENT (OUT)           :: detrain                     ! Louis : pour le calcul de Klein du terme de variance qui détraine dans lenvironnement
    35173518      REAL, DIMENSION (nloc), INTENT (OUT)               :: wd                          ! gust
    35183519      REAL, DIMENSION (nloc), INTENT (OUT)               :: cbmf
     
    35413542      REAL, DIMENSION (nloc)                             :: sument
    35423543      REAL, DIMENSION (nloc, nd)                         :: sigment, qtment             ! cld
     3544      REAL, DIMENSION (nloc, nd, nd)                     :: qdet
    35433545      REAL sumdq !jyg
    35443546!
     
    35703572      ft(il, i) = 0.0
    35713573      fr(il, i) = 0.0
     3574      fr_comp(il,i) = 0.0
    35723575      fu(il, i) = 0.0
    35733576      fv(il, i) = 0.0
     
    35803583      sigment(il, i) = 0.0 ! cld
    35813584      sigt(il, i) = 0.0 ! cld
     3585      qdet(il,i,:) = 0.0 ! cld
     3586      detrain(il, i) = 0.0 ! cld
    35823587      nqcond(il, i) = 0.0 ! cld
    35833588    END DO
     
    38113816      IF (j<=inb(il) .AND. iflag(il)<=1) THEN
    38123817        fr(il, 1) = fr(il, 1) + 0.01*grav*work(il)*ment(il, j, 1)*(qent(il,j,1)-rr(il,1))
     3818        fr_comp(il,1) = fr_comp(il,1) + 0.01*grav*work(il)*ment(il, j, 1)*(qent(il,j,1)-rr(il,1))
    38133819        fu(il, 1) = fu(il, 1) + 0.01*grav*work(il)*ment(il, j, 1)*(uent(il,j,1)-u(il,1))
    38143820        fv(il, 1) = fv(il, 1) + 0.01*grav*work(il)*ment(il, j, 1)*(vent(il,j,1)-v(il,1))
     
    42134219          fr(il, i) = fr(il, i) + 0.01*grav*dpinv*ment(il, k, i) * &
    42144220                                                       (qent(il,k,i)-awat(il)-rr(il,i))
     4221          fr_comp(il,i) = fr_comp(il,i) + 0.01*grav*dpinv*ment(il, k, i)*(qent(il,k,i)-awat(il)-rr(il,i))
    42154222          fu(il, i) = fu(il, i) + 0.01*grav*dpinv*ment(il, k, i)*(uent(il,k,i)-u(il,i))
    42164223          fv(il, i) = fv(il, i) + 0.01*grav*dpinv*ment(il, k, i)*(vent(il,k,i)-v(il,i))
     
    42184225! (saturated updrafts resulting from mixing)                                   ! cld
    42194226          qcond(il, i) = qcond(il, i) + (elij(il,k,i)-awat(il))                ! cld
     4227          qdet(il,k,i) = (qent(il,k,i)-awat(il))                               ! cld Louis : specific humidity in detraining water
    42204228          qtment(il, i) = qtment(il, i) + qent(il,k,i)                         ! cld
    42214229          nqcond(il, i) = nqcond(il, i) + 1.                                   ! cld
     
    42984306! (saturated downdrafts resulting from mixing)                                 ! cld
    42994307          qcond(il, i) = qcond(il, i) + elij(il, k, i)                         ! cld
     4308          qdet(il,k,i) = qent(il,k,i)                                          ! cld Louis : specific humidity in detraining water
    43004309          qtment(il, i) = qent(il,k,i) + qtment(il,i)                          ! cld
    43014310          nqcond(il, i) = nqcond(il, i) + 1.                                   ! cld
     
    43164325!      PROBLEM: Should not qent(il,i,i) be taken into account even if nent(il,i)/=0?
    43174326!!        qtment(il, i) = qent(il,k,i) + qtment(il,i)                            ! cld
     4327        qdet(il,i,i) = qent(il,i,i)                                            ! cld Louis : specific humidity in detraining water
    43184328        qtment(il, i) = qent(il,i,i) + qtment(il,i)                            ! cld
    43194329!>jyg
     
    48874897        IF  (k<=inb(il) .AND. i<=inb(il) .AND. iflag(il)<=1) THEN   ! cld
    48884898          sument(il) =sument(il) + abs(ment(il,k,i))
     4899          detrain(il,i) = detrain(il,i) + abs(ment(il,k,i))*(qdet(il,k,i) - rr(il,i))*(qdet(il,k,i) - rr(il,i)) ! Louis terme de détrainement dans le bilan de variance
    48894900        ENDIF
    48904901      ENDDO     ! il
  • LMDZ6/trunk/libf/phylmd/cv3a_uncompress.F90

    r3496 r4613  
    22                           iflag, kbas, ktop, &
    33                           precip, cbmf, plcl, plfc, wbeff, sig, w0, ptop2, &
    4                            ft, fq, fu, fv, ftra,  &
     4                           ft, fq, fqcomp, fu, fv, ftra,  &
    55                           sigd, ma, mip, vprecip, vprecipi, upwd, dnwd, dnwd0, &
    66                           qcondc, wd, cape, cin, &
     
    1212                           qta, clw, elij, evap, ep, epmlmMm, eplaMm, &         ! RomP+jyg
    1313                           wdtrainA, wdtrainS, wdtrainM, &                      ! RomP
    14                            qtc, sigt,          &
     14                           qtc, sigt, detrain,         &
    1515                           epmax_diag, & ! epmax_cape
    1616                           iflag1, kbas1, ktop1, &
    1717                           precip1, cbmf1, plcl1, plfc1, wbeff1, sig1, w01, ptop21, &
    18                            ft1, fq1, fu1, fv1, ftra1, &
     18                           ft1, fq1, fqcomp1, fu1, fv1, ftra1, &
    1919                           sigd1, ma1, mip1, vprecip1, vprecipi1, upwd1, dnwd1, dnwd01, &
    2020                           qcondc1, wd1, cape1, cin1, &
     
    2626                           qta1, clw1, elij1, evap1, ep1, epmlmMm1, eplaMm1, &  ! RomP+jyg
    2727                           wdtrainA1, wdtrainS1, wdtrainM1, &                   ! RomP
    28                            qtc1, sigt1, &
     28                           qtc1, sigt1, detrain1, &
    2929                           epmax_diag1) ! epmax_cape
    3030
     
    5454  REAL, DIMENSION (nloc), INTENT (IN)                :: ptop2
    5555  REAL, DIMENSION (nloc), INTENT (IN)                :: epmax_diag
    56   REAL, DIMENSION (nloc, nd), INTENT (IN)            :: ft, fq, fu, fv
     56  REAL, DIMENSION (nloc, nd), INTENT (IN)            :: ft, fq, fqcomp, fu, fv
    5757  REAL, DIMENSION (nloc, nd, ntra), INTENT (IN)      :: ftra
    5858  REAL, DIMENSION (nloc), INTENT (IN)                :: sigd
     
    8181  REAL, DIMENSION (nloc, nd, nd), INTENT (IN)        :: epmlmMm                !RomP+jyg
    8282  REAL, DIMENSION (nloc, nd), INTENT (IN)            :: eplamM                 !RomP+jyg
    83   REAL, DIMENSION (nloc, nd), INTENT (IN)            :: qtc, sigt              !RomP
     83  REAL, DIMENSION (nloc, nd), INTENT (IN)            :: qtc, sigt, detrain              !RomP
    8484  REAL, DIMENSION (nloc, nd), INTENT (IN)            :: wdtrainA, wdtrainS, wdtrainM     !RomP
    8585
     
    9191  REAL, DIMENSION (len), INTENT (OUT)                :: epmax_diag1 ! epmax_cape
    9292  REAL, DIMENSION (len), INTENT (OUT)                :: ptop21
    93   REAL, DIMENSION (len, nd), INTENT (OUT)            :: ft1, fq1, fu1, fv1
     93  REAL, DIMENSION (len, nd), INTENT (OUT)            :: ft1, fq1, fqcomp1, fu1, fv1
    9494  REAL, DIMENSION (len, nd, ntra), INTENT (OUT)      :: ftra1
    9595  REAL, DIMENSION (len), INTENT (OUT)                :: sigd1
     
    118118  REAL, DIMENSION (len, nd, nd), INTENT (OUT)        :: epmlmMm1               !RomP+jyg
    119119  REAL, DIMENSION (len, nd), INTENT (OUT)            :: eplamM1                !RomP+jyg
    120   REAL, DIMENSION (len, nd), INTENT (OUT)            :: qtc1, sigt1            !RomP
     120  REAL, DIMENSION (len, nd), INTENT (OUT)            :: qtc1, sigt1, detrain1            !RomP
    121121  REAL, DIMENSION (len, nd), INTENT (OUT)            :: wdtrainA1, wdtrainS1, wdtrainM1   !RomP
    122122
     
    158158        ft1(idcum(i), k) = ft(i, k)
    159159        fq1(idcum(i), k) = fq(i, k)
     160        fqcomp1(idcum(i), k) = fqcomp(i, k)
    160161        fu1(idcum(i), k) = fu(i, k)
    161162        fv1(idcum(i), k) = fv(i, k)
     
    187188        qtc1(idcum(i), k) = qtc(i, k)
    188189        sigt1(idcum(i), k) = sigt(i, k)
     190        detrain1(idcum(i), k) = detrain(i, k)
    189191   
    190192      END DO
     
    285287      ft1(:, 1:nl) = ft(:, 1:nl)
    286288      fq1(:, 1:nl) = fq(:, 1:nl)
     289      fqcomp1(:, 1:nl) = fqcomp(:, 1:nl)
    287290      fu1(:, 1:nl) = fu(:, 1:nl)
    288291      fv1(:, 1:nl) = fv(:, 1:nl)
     
    314317      qtc1(:, 1:nl) = qtc(:, 1:nl)
    315318      sigt1(:, 1:nl) = sigt(:, 1:nl)
     319      detrain1(:, 1:nl) = detrain(:, 1:nl)
    316320!
    317321      ma1(:, nlp) = 0.
  • LMDZ6/trunk/libf/phylmd/cva_driver.F90

    r3670 r4613  
    1111                      Ale1, Alp1, omega1, &
    1212                      sig1feed1, sig2feed1, wght1, &
    13                       iflag1, ft1, fq1, fu1, fv1, ftra1, &
     13                      iflag1, ft1, fq1, fqcomp1, fu1, fv1, ftra1, &
    1414                      precip1, kbas1, ktop1, &
    1515                      cbmf1, plcl1, plfc1, wbeff1, &
     
    2626                      da1, phi1, mp1, phi21, d1a1, dam1, sigij1, wghti1, & ! RomP, RL
    2727                      qta1, clw1, elij1, evap1, ep1, epmlmMm1, eplaMm1, &  ! RomP, RL
    28                       wdtrainA1, wdtrainS1, wdtrainM1, qtc1, sigt1, tau_cld_cv, &     !!jygprl
     28                      wdtrainA1, wdtrainS1, wdtrainM1, qtc1, sigt1, detrain1, tau_cld_cv, &     !!jygprl
    2929                      coefw_cld_cv, &                                      ! RomP, AJ
    3030                      epmax_diag1)  ! epmax_cape
     
    8888! ft1           Real           Output       temp tend
    8989! fq1           Real           Output       spec hum tend
     90! fqcomp1       Real           Output       spec hum tend (only mixed draughts)
    9091! fu1           Real           Output       u-wind tend
    9192! fv1           Real           Output       v-wind tend
     
    135136! qtc1          Real           Output     specific humidity in convection
    136137! sigt1         Real           Output     surface fraction in adiabatic updrafts                                         
     138! detrain1      Real           Output     detrainment terme klein
    137139! phi21         Real           Output     used in tracer transport (cvltr)
    138140                                         
     
    209211  REAL, DIMENSION (len, nd), INTENT (OUT)            :: ft1
    210212  REAL, DIMENSION (len, nd), INTENT (OUT)            :: fq1
     213  REAL, DIMENSION (len, nd), INTENT (OUT)            :: fqcomp1
    211214  REAL, DIMENSION (len, nd), INTENT (OUT)            :: fu1
    212215  REAL, DIMENSION (len, nd), INTENT (OUT)            :: fv1
     
    248251  REAL, DIMENSION (len, nd), INTENT (OUT)            :: qtc1    ! in cloud water content (intensive)   ! cld
    249252  REAL, DIMENSION (len, nd), INTENT (OUT)            :: sigt1   ! fract. cloud area (intensive)        ! cld
     253  REAL, DIMENSION (len, nd), INTENT (OUT)            :: detrain1   ! detrainement term of mixed draughts in environment
    250254
    251255! RomP >>>
     
    502506  REAL, DIMENSION(len,nd)     :: ice, fondue, b
    503507  REAL, DIMENSION(len,nd)     :: frac_a, frac_s, faci               !!jygprl
    504   REAL ft(nloc, nd), fq(nloc, nd)
     508  REAL ft(nloc, nd), fq(nloc, nd), fqcomp(nloc, nd)
    505509  REAL ftd(nloc, nd), fqd(nloc, nd)
    506510  REAL fu(nloc, nd), fv(nloc, nd)
     
    528532  REAL qtc(nloc, nd)         ! cld
    529533  REAL sigt(nloc, nd)        ! cld
     534  REAL detrain(nloc, nd)     ! cld
    530535 
    531536! RomP >>>
     
    593598  ft1(:, :) = 0.0
    594599  fq1(:, :) = 0.0
     600  fqcomp1(:, :) = 0.0
    595601  fu1(:, :) = 0.0
    596602  fv1(:, :) = 0.0
     
    646652! RomP >>>
    647653  sigt1(:, :) = 0.
     654  detrain1(:, :) = 0.
    648655  qtc1(:, :) = 0.
    649656  wdtrainA1(:, :) = 0.
     
    11391146                     nent, elij, traent, sig, &
    11401147                     tv, tvp, wghti, &
    1141                      iflag, precip, Vprecip, Vprecipi, ft, fq, fu, fv, ftra, &      ! jyg
     1148                     iflag, precip, Vprecip, Vprecipi, ft, fq, fqcomp, fu, fv, ftra, &      ! jyg
    11421149                     cbmf, upwd, dnwd, dnwd0, ma, mip, &
    11431150!!                     tls, tps, &                            ! useless . jyg
    11441151                     qcondc, wd, &
    11451152!!                     ftd, fqd, qnk, qtc, sigt, tau_cld_cv, coefw_cld_cv)
    1146                      ftd, fqd, qta, qtc, sigt, tau_cld_cv, coefw_cld_cv)         !!jygprl
     1153                     ftd, fqd, qta, qtc, sigt, detrain, tau_cld_cv, coefw_cld_cv)         !!jygprl
    11471154!
    11481155!         Test conseravtion de l'eau
     
    12041211                           iflag, icb, inb, &
    12051212                           precip, cbmf, plcl, plfc, wbeff, sig, w0, ptop2, &
    1206                            ft, fq, fu, fv, ftra, &
     1213                           ft, fq, fqcomp, fu, fv, ftra, &
    12071214                           sigd, ma, mip, vprecip, vprecipi, upwd, dnwd, dnwd0, &
    12081215                           qcondc, wd, cape, cin, &
     
    12141221                           qta, clw, elij, evap, ep, epmlmMm, eplaMm, &  ! RomP
    12151222                           wdtrainA, wdtrainS, wdtrainM, &                         ! RomP
    1216                            qtc, sigt, epmax_diag, & ! epmax_cape
     1223                           qtc, sigt, detrain, epmax_diag, & ! epmax_cape
    12171224                           iflag1, kbas1, ktop1, &
    12181225                           precip1, cbmf1, plcl1, plfc1, wbeff1, sig1, w01, ptop21, &
    1219                            ft1, fq1, fu1, fv1, ftra1, &
     1226                           ft1, fq1, fqcomp1, fu1, fv1, ftra1, &
    12201227                           sigd1, ma1, mip1, vprecip1, vprecipi1, upwd1, dnwd1, dnwd01, &
    12211228                           qcondc1, wd1, cape1, cin1, &
     
    12271234                           qta1, clw1, elij1, evap1, ep1, epmlmMm1, eplaMm1, & ! RomP
    12281235                           wdtrainA1, wdtrainS1, wdtrainM1,                  & ! RomP
    1229                            qtc1, sigt1, epmax_diag1) ! epmax_cape
     1236                           qtc1, sigt1, detrain1, epmax_diag1) ! epmax_cape
    12301237!   
    12311238      IF (prt_level >= 10) THEN
  • LMDZ6/trunk/libf/phylmd/lmdz_ratqs_main.F90

    r4612 r4613  
    1 SUBROUTINE calcratqs(klon,klev,prt_level,lunout,       &
     1MODULE lmdz_ratqs_main
     2
     3CONTAINS
     4
     5SUBROUTINE ratqs_main(klon,klev,nbsrf,prt_level,lunout,       &
    26           iflag_ratqs,iflag_con,iflag_cld_th,pdtphys, &
    37           ratqsbas,ratqshaut,ratqsp0,ratqsdp, &
     8           pctsrf,s_pblh,zstd, &
    49           tau_ratqs,fact_cldcon,wake_s, wake_deltaq,   &
    510           ptconv,ptconvth,clwcon0th, rnebcon0th,       &
    611           paprs,pplay,t_seri,q_seri,                   &
    7            qtc_cv, sigt_cv, zqsat,             &
    8            tke,tke_dissip,lmix,wprime, &
    9            t2m,q2m,fm_therm,cell_area,&
    10            ratqs,ratqsc,ratqs_inter)
    11 
    12 
    13 USE indice_sol_mod
    14 USE phys_state_var_mod, ONLY: pctsrf
    15 USE calcratqs_multi_mod, ONLY: calcratqs_inter, calcratqs_oro, calcratqs_hetero, calcratqs_tke
     12           qtc_cv, sigt_cv,detrain_cv,fm_cv,fqd,fqcomp,sigd,zqsat,             &
     13           omega,tke,tke_dissip,lmix,wprime, &
     14           t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area,&
     15           ratqs,ratqsc,ratqs_inter_)
     16
     17
     18USE lmdz_ratqs_multi,   ONLY: ratqs_inter, ratqs_oro, ratqs_hetero, ratqs_tke
    1619
    1720implicit none
     
    2730
    2831! Input
    29 integer,intent(in) :: klon,klev,prt_level,lunout
     32integer,intent(in) :: klon,klev,nbsrf,prt_level,lunout
    3033integer,intent(in) :: iflag_con,iflag_cld_th,iflag_ratqs
    3134real,intent(in) :: pdtphys,ratqsbas,ratqshaut,fact_cldcon,tau_ratqs
    3235real,intent(in) :: ratqsp0, ratqsdp
     36real, dimension(klon,klev),intent(in) :: omega
    3337real, dimension(klon,klev+1),intent(in) :: paprs,tke,tke_dissip,lmix,wprime
    34 real, dimension(klon,klev),intent(in) :: pplay,t_seri,q_seri,zqsat,fm_therm, qtc_cv, sigt_cv
     38real, dimension(klon,klev),intent(in) :: pplay,t_seri,q_seri,zqsat
     39real, dimension(klon,klev),intent(in) :: entr_therm,detr_therm,qtc_cv, sigt_cv
     40real, dimension(klon,klev) :: detrain_cv,fm_cv,fqd,fqcomp
     41real, dimension(klon) :: sigd
     42
     43real, dimension(klon,klev+1),intent(in) :: fm_therm
    3544logical, dimension(klon,klev),intent(in) :: ptconv
    3645real, dimension(klon,klev),intent(in) :: rnebcon0th,clwcon0th
     
    3847real, dimension(klon,nbsrf),intent(in) :: t2m,q2m
    3948real, dimension(klon), intent(in) :: cell_area
     49real, dimension(klon,nbsrf),intent(in) :: pctsrf
     50real, dimension(klon),intent(in) :: s_pblh
     51real, dimension(klon),intent(in) :: zstd
     52
    4053! Output
    41 real, dimension(klon,klev),intent(inout) :: ratqs,ratqsc,ratqs_inter
     54real, dimension(klon,klev),intent(inout) :: ratqs,ratqsc,ratqs_inter_
    4255
    4356logical, dimension(klon,klev),intent(inout) :: ptconvth
     
    4760real, dimension(klon,klev) :: ratqss
    4861real facteur,zfratqs1,zfratqs2
    49 real, dimension(klon,klev) :: ratqs_hetero,ratqs_oro,ratqs_tke
     62real, dimension(klon,klev) :: ratqs_hetero_,ratqs_oro_,ratqs_tke_
    5063real resol,resolmax,fact
    5164
     
    173186              *( tanh( (ratqsp0-pplay(i,k))/ratqsdp) + 1.)
    174187              ratqss(i,k)=max(ratqss(i,k),0.0)
    175 
    176               ratqs_hetero(i,k)=0.
    177               ratqs_oro(i,k)=0.
    178               ratqs_tke(i,k)=0.
    179               ratqs_inter(i,k)=0
     188              ratqs_hetero_(i,k)=0.
     189              ratqs_oro_(i,k)=0.
     190              ratqs_tke_(i,k)=0.
     191              ratqs_inter_(i,k)=0
    180192             enddo
    181193          enddo
     
    183195          if (iflag_ratqs .EQ. 10) then
    184196             ! interactive ratqs in presence of cold pools     
    185              call calcratqs_inter(klon,klev,iflag_ratqs,pdtphys,ratqsbas,wake_deltaq,wake_s,q_seri,qtc_cv, sigt_cv,ratqs_inter)
     197             call ratqs_inter(klon,klev,iflag_ratqs,pdtphys,paprs, &
     198                       ratqsbas,wake_deltaq,wake_s,q_seri,qtc_cv, sigt_cv, &
     199                       fm_therm,entr_therm,detr_therm,detrain_cv,fm_cv,fqd,fqcomp,sigd, &
     200                       ratqs_inter_)
    186201             do k=1,klev
    187202                do i=1,klon
    188                     ratqs_inter(i,k)=ratqs_inter(i,k)-0.5*ratqs_inter(i,k)*(tanh((ratqsp0-pplay(i,k))/ratqsdp)+1.)
     203                    ratqs_inter_(i,k)=ratqs_inter_(i,k)-0.5*ratqs_inter_(i,k)*(tanh((ratqsp0-pplay(i,k))/ratqsdp)+1.)
    189204                enddo
    190205             enddo
    191              ratqss=ratqss+ratqs_inter
     206             ratqss=ratqss+ratqs_inter_
    192207          else if (iflag_ratqs .EQ. 11) then
     208            print*,'avant ratqs_inter'
    193209            ! interactive ratqs with several sources
    194             call calcratqs_inter(klon,klev,iflag_ratqs,pdtphys,ratqsbas,wake_deltaq,wake_s,q_seri,qtc_cv, sigt_cv,ratqs_inter)
    195              ratqss=ratqss+ratqs_inter
     210             call ratqs_inter(klon,klev,iflag_ratqs,pdtphys,paprs, &
     211                       ratqsbas,wake_deltaq,wake_s,q_seri,qtc_cv, sigt_cv, &
     212                       fm_therm,entr_therm,detr_therm,detrain_cv,fm_cv,fqd,fqcomp,sigd, &
     213                       ratqs_inter_)
     214             ratqss=ratqss+ratqs_inter_
    196215          else if (iflag_ratqs .EQ. 12) then
    197216             ! contribution of surface heterogeneities to ratqs
    198              call calcratqs_hetero(klon,klev,t2m,q2m,t_seri,q_seri,pplay,paprs,ratqs_hetero)
    199              ratqss=ratqss+ratqs_hetero
     217             call ratqs_hetero(klon,klev,pctsrf,s_pblh,t2m,q2m,t_seri,q_seri,pplay,paprs,ratqs_hetero_)
     218             ratqss=ratqss+ratqs_hetero_
    200219          else if (iflag_ratqs .EQ. 13) then
    201220             ! contribution of ubgrid orography to ratqs
    202              call calcratqs_oro(klon,klev,zqsat,t_seri,pplay,paprs,ratqs_oro)
    203              ratqss=ratqss+ratqs_oro
     221             call ratqs_oro(klon,klev,pctsrf,zstd,zqsat,t_seri,pplay,paprs,ratqs_oro_)
     222             ratqss=ratqss+ratqs_oro_
    204223          else if (iflag_ratqs .EQ. 14) then
    205224             ! effect of subgrid-scale TKE on ratqs (in development)
    206              call calcratqs_tke(klon,klev,pdtphys,t_seri,q_seri,zqsat,pplay,paprs,tke,tke_dissip,lmix,wprime,ratqs_tke)     
    207              ratqss=ratqss+ratqs_tke
     225             call ratqs_tke(klon,klev,pdtphys,t_seri,q_seri,zqsat,pplay,paprs,omega,tke,tke_dissip,lmix,wprime,ratqs_tke_)     
     226             ratqss=ratqss+ratqs_tke_
    208227          endif
    209228         
     
    222241         do k=1,klev
    223242            do i=1,klon
    224                if ((fm_therm(i,k).gt.1.e-10)) then
     243               if ((fm_therm(i,k)>1.e-10)) then
    225244                  ratqsc(i,k)=sqrt(ratqsc(i,k)**2+0.05**2)
    226245               endif
     
    262281
    263282return
    264 end
     283END SUBROUTINE ratqs_main
     284
     285END MODULE lmdz_ratqs_main
  • LMDZ6/trunk/libf/phylmd/lmdz_ratqs_multi.F90

    r4612 r4613  
    1 MODULE calcratqs_multi_mod
     1MODULE lmdz_ratqs_multi
     2
     3!=============================================
     4! A FAIRE :
     5! Traiter le probleme de USE lscp_tools_mod, ONLY: CALC_QSAT_ECMWF
     6!=============================================
    27
    38!=============================================
     
    1419!=============================================
    1520    INCLUDE "YOETHF.h"
    16     INCLUDE "YOMCST.h"
    1721
    1822
     
    2125
    2226!========================================================================   
    23 SUBROUTINE calcratqs_inter(klon,klev,iflag_ratqs,pdtphys, &
     27SUBROUTINE ratqs_inter(klon,klev,iflag_ratqs,pdtphys,paprs, &
    2428           ratqsbas, wake_deltaq, wake_s, q_seri,qtc_cv, sigt_cv,     &
    25            ratqs_inter)
    26 USE ioipsl_getin_p_mod, ONLY : getin_p
     29           fm_therm,entr_therm,detr_therm,detrain_cv,fm_cv,fqd,fqcomp,sigd, &
     30           ratqs_inter_)
     31
     32USE lmdz_ratqs_ini, ONLY : a_ratqs_cv,tau_var,fac_tau,tau_cumul,a_ratqs_wake, dqimpl
     33USE lmdz_ratqs_ini, ONLY : RG
     34USE lmdz_ratqs_ini, ONLY : povariance, var_conv
     35USE lmdz_thermcell_dq,  ONLY : thermcell_dq
     36
    2737implicit none
    2838
    2939!========================================================================
    3040! L. d'Alençon, 25/02/2021
    31 ! Cette subroutine calcule une valeur de ratqsbas interactive dépendant de la présence de poches froides dans l'environnement.
    32 ! Elle est appelée par la subroutine calcratqs lorsque iflag_ratqs = 10.
     41! Cette subroutine calcule une valeur de ratqsbas interactive
     42! Elle est appelée par la subroutine ratqs lorsque iflag_ratqs = 11.
    3343!========================================================================
    3444
    3545! Declarations
    36 
    37 
    38 LOGICAL, SAVE :: first = .TRUE.
    39 !$OMP THREADPRIVATE(first)
    4046! Input
    4147integer,intent(in) :: klon,klev,iflag_ratqs
    4248real,intent(in) :: pdtphys,ratqsbas
     49real, dimension(klon,klev+1),intent(in) :: paprs
    4350real, dimension(klon,klev),intent(in) :: wake_deltaq, q_seri,qtc_cv, sigt_cv
    4451real, dimension(klon),intent(in) :: wake_s
     52real, dimension(klon,klev+1),intent(in) :: fm_therm
     53real, dimension(klon,klev),intent(in) :: entr_therm,detr_therm,detrain_cv,fm_cv,fqd,fqcomp
     54real, dimension(klon),intent(in) :: sigd
    4555
    4656! Output
    47 real, dimension(klon,klev),intent(inout) :: ratqs_inter
     57real, dimension(klon,klev),intent(inout) :: ratqs_inter_
    4858
    4959! local
     60LOGICAL :: klein = .false.
     61LOGICAL :: klein_conv = .true.
     62REAL :: taup0 = 70000
     63REAL :: taudp = 500
     64integer :: lev_out=10
     65REAL, DIMENSION (klon,klev) :: zmasse,entr0,detr0,detraincv,dqp,detrain_p,q0,qd0,tau_diss
     66REAL, DIMENSION (klon,klev+1) :: fm0
    5067integer i,k
    5168real, dimension(klon,klev) :: wake_dq
    52 REAL, SAVE             :: a_ratqs_cv
    53 !$OMP THREADPRIVATE(a_ratqs_cv)
    54 REAL, SAVE             :: tau_ratqs_wake
    55 !$OMP THREADPRIVATE(tau_ratqs_wake)
    56 REAL, SAVE             :: a_ratqs_wake
    57 !$OMP THREADPRIVATE(a_ratqs_wake)
    58 real, dimension(klon) :: max_wake_dq, max_dqconv,max_sigt
    59 !-------------------------------------------------------------------------
    60 !  Caclul de ratqs_inter
    61 !-------------------------------------------------------------------------
    62 
    63 
    64       if (first) then
    65          tau_ratqs_wake = 3600. ! temps de relaxation de la variabilité
    66          a_ratqs_wake = 3.    ! paramètre pilotant l'importance du terme dépendant des poches froides
    67          a_ratqs_cv = 0.5
    68          CALL getin_p('tau_ratqs_wake', tau_ratqs_wake)
    69          CALL getin_p('a_ratqs_wake', a_ratqs_wake)
    70          CALL getin_p('a_ratqs_cv', a_ratqs_cv)         
    71          first=.false.
    72       endif       
    73       max_wake_dq(:) = 0.
    74       max_dqconv (:) = 0
    75       max_sigt(:)    = 0.
    76       if (iflag_ratqs.eq.10) then
    77         do k=1,klev
    78           do i=1,klon
    79            max_wake_dq(i) = max(abs(wake_deltaq(i,k)),max_wake_dq(i))
    80            max_sigt(i) = max(abs(sigt_cv(i,k)),max_sigt(i))
    81            max_dqconv(i) = max(abs(q_seri(i,k) - qtc_cv(i,k)),max_dqconv(i))
    82           enddo
     69
     70
     71real, dimension(klon) :: max_sigd, max_dqconv,max_sigt
     72real, dimension(klon,klev) :: zoa,zocarrea,pdocarreadj,pocarre,po,pdoadj,varq_therm
     73
     74
     75lev_out=0.
     76
     77print*,'ratqs_inter'
     78
     79!-----------------------------------------------------------------------
     80!   Calcul des masses
     81!-----------------------------------------------------------------------
     82
     83      do k=1,klev
     84         zmasse(:,k)=(paprs(:,k)-paprs(:,k+1))/RG
     85      enddo
     86!-------------------------------------------------------------------------
     87!  Caclul du terme de détrainement de la variance pour les thermiques
     88!-------------------------------------------------------------------------
     89
     90! initialisations
     91
     92
     93      do k=1,klev
     94         do i=1,klon
     95            tau_diss(i,k)=tau_var +0.5*fac_tau*tau_var*(tanh((taup0-paprs(i,k))/taudp) + 1.)
     96         enddo
     97      enddo
     98       
     99                   
     100     
     101      entr0(:,:) = entr_therm(:,:)
     102      fm0(:,:) = fm_therm(:,:) 
     103      detr0(:,:) = detr_therm(:,:)
     104
     105! calcul du carré de l'humidité spécifique
     106      po(:,:) = q_seri(:,:)
     107      call thermcell_dq(klon,klev,dqimpl,pdtphys,fm0,entr0,zmasse,  &
     108     &                   po,pdoadj,zoa,lev_out)
     109      do k=1,klev
     110         do i=1,klon
     111            pocarre(i,k)=po(i,k)*po(i,k) + povariance(i,k)
     112         enddo
     113      enddo
     114      call thermcell_dq(klon,klev,dqimpl,pdtphys,fm0,entr0,zmasse,  &
     115      &                   pocarre,pdocarreadj,zocarrea,lev_out)
     116
     117     
     118      do k=1,klev
     119         do i=1,klon     
     120            varq_therm(i,k)=zocarrea(i,k)-zoa(i,k)*zoa(i,k)
     121         enddo
     122      enddo
     123
     124     
     125      if (klein) then
     126         do k=1,klev-1
     127            do i=1,klon
     128              qd0(:,:) = 0.0
     129              if (sigd(i).ne.0) then
     130                qd0(i,k) = fqd(i,k)*tau_cumul/sigd(i)
     131              endif
     132            enddo
     133         enddo
     134         do k=1,klev-1
     135            do i=1,klon     
     136               povariance(i,k)= (detr0(i,k)*((zoa(i,k)-po(i,k))**2 + (varq_therm(i,k)-povariance(i,k)))/zmasse(i,k) + fm0(i,k+1)*povariance(i,k+1)/zmasse(i,k) -  &
     137               fm0(i,k)*povariance(i,k)/zmasse(i,k) +  &
     138               a_ratqs_cv*(detrain_cv(i,k)/zmasse(i,k)) +  sigd(i)*(1-sigd(i))*qd0(i,k)**2/tau_cumul  &   
     139                + ((povariance(i,k+1)-povariance(i,k))*(fm_cv(i,k)/zmasse(i,k))))*pdtphys + povariance(i,k)
     140               povariance(i,k)= povariance(i,k)*exp(-pdtphys/tau_diss(i,k))
     141            enddo
     142         enddo
     143         povariance(:,klev) = povariance(:,klev-1)
     144         
     145      else ! calcul direct     
     146         qd0(:,:) = 0.0
     147         q0(:,:) = 0.0
     148         do k=1,klev-1
     149            do i=1,klon
     150               if (sigd(i).ne.0) then
     151                 qd0(i,k) = fqd(i,k)*tau_cumul/sigd(i)
     152               endif
     153               if (sigt_cv(i,k).ne.0) then
     154                 q0(i,k) = fqcomp(i,k)*tau_cumul/sigt_cv(i,k)
     155               endif
     156            enddo
     157         enddo
     158         do k=1,klev-1
     159            do i=1,klon     
     160               povariance(i,k)= (pdocarreadj(i,k)-2.*po(i,k)*pdoadj(i,k) +  &
     161               a_ratqs_cv*(sigt_cv(i,k)*(1-sigt_cv(i,k))*q0(i,k)**2/tau_cumul + sigd(i)*(1-sigd(i))*qd0(i,k)**2/tau_cumul) +  &
     162               ((povariance(i,k+1)-povariance(i,k))*(fm_cv(i,k)/zmasse(i,k))))*pdtphys + povariance(i,k)
     163               povariance(i,k)=povariance(i,k)*exp(-pdtphys/tau_diss(i,k))
     164            enddo
     165         enddo
     166         povariance(:,klev) = povariance(:,klev-1)
     167!         fqd(:,:)=sigt_cv(:,:)*(1-sigt_cv(:,:))*q0(:,:)**2/tau_cumul
     168      endif
     169     
     170!-------------------------------------------------------------------------
     171!  Caclul du terme de détrainement de la variance pour la convection (version fausse avec deux calculs de variance indépendants)
     172!-------------------------------------------------------------------------
     173
     174!      if (klein_conv) then
     175!        detrain_p(:,:) = 0.
     176!        detraincv(:,:) = 0.
     177!        dqp(:,:)    = 0.
     178     
     179!        do k=1,klev-1
     180!          do i=1,klon
     181!           dqp(i,k) = q_seri(i,k) - qp(i,k)
     182!           detraincv(i,k) = abs(detrain_cv(i,k))
     183         
     184!         if ((mp(i,k)-mp(i,k+1)).le.0) then
     185!            detrain_p(i,k) = (mp(i,k+1)-mp(i,k))
     186!         endif
     187!          enddo
     188!        enddo
     189
     190!        do k=1,klev-1
     191!          do i=1,klon
     192!            qd0(:,:) = 0.0
     193!            if (sigd(i).ne.0) then
     194!              qd0(i,k) = fqd(i,k)*tau_cumul/sigd(i)
     195!            endif
     196!          enddo
     197!        enddo
     198
     199!        do k=1,klev-1
     200!          do i=1,klon           
     201!            var_conv(i,k)= var_conv(i,k)*exp(-pdtphys/tau_conv) +  &
     202!                (a_ratqs_cv*(detraincv(i,k)/zmasse(i,k)) +  sigd(i)*(1-sigd(i))*qd0(i,k)**2/tau_cumul  &   
     203!                + ((var_conv(i,k+1)-var_conv(i,k))*(fm_cv(i,k)/zmasse(i,k))))* &
     204!              ((dqp(i,k)**2)*(detrain_p(i,k)/zmasse(i,k))))* & ! les termes de descentes précipitantes qui seront traités autrement
     205!              (((mp(i,k)-mp(i,k+1))/zmasse(i,k))*dqp(i,k)**2) + (2*mp(i,k)*dqp(i,k)*(qp(i,k+1)-qp(i,k))/zmasse(i,k)))* &
     206!                (1.-exp(-pdtphys/tau_conv))/(1/tau_conv)     
     207!          enddo
     208!        enddo
     209!        var_conv(:,klev) = var_conv(:,klev-1)
     210!        fqd(:,:) = var_conv(:,:)
     211!      else
     212
     213
     214!        do k=1,klev-1
     215!          do i=1,klon           
     216!            var_conv(i,k)= var_conv(i,k)*exp(-pdtphys/tau_conv) +  &
     217!                (a_ratqs_cv*(sigt_cv(i,k)*(1-sigt_cv(i,k))*q0(i,k)**2/pdtphys + sigd(i)*(1-sigd(i))*qd0(i,k)**2/tau_cumul) +  &   ! somme des contributions des descentes précipitantes et des flux mélangés
     218!                + ((var_conv(i,k+1)-var_conv(i,k))*(fm_cv(i,k)/zmasse(i,k))))* & ! flux compensatoires dans l'environnement
     219!                (1.-exp(-pdtphys/tau_conv))/(1/tau_conv)
     220!             ((var_conv(i,k+1)-var_conv(i,k))*(fm_cv(i,k)/zmasse(i,k))) 
     221!          enddo
     222!        enddo
     223!        var_conv(:,klev) = var_conv(:,klev-1)
     224!      endif
     225
     226!-------------------------------------------------------------------------
     227!  Caclul du ratqs_inter_
     228!-------------------------------------------------------------------------
     229
     230      do k=1,klev
     231        do i=1,klon
     232           if(q_seri(i,k).ge.1E-7) then
     233               ratqs_inter_(i,k) = abs(povariance(i,k))**0.5/q_seri(i,k)
     234           else
     235               ratqs_inter_(i,k) = 0. 
     236           endif
    83237        enddo
    84      
    85         do k=1,klev
    86           do i=1,klon
    87            ratqs_inter(i,k)= ratqs_inter(i,k)*exp(-pdtphys/tau_ratqs_wake) +   &
    88            a_ratqs_wake*(max_wake_dq(i)*(wake_s(i)**0.5/(1.-wake_s(i))))*(1.-exp(-pdtphys/tau_ratqs_wake))/q_seri(i,1)   
    89            if (ratqs_inter(i,k)<ratqsbas) then
    90               ratqs_inter(i,k) = ratqsbas
    91            endif       
    92           enddo
    93         enddo
    94       endif
    95 
    96       if (iflag_ratqs.eq.11) then
    97         do k=1,klev
    98           do i=1,klon
    99            max_wake_dq(i) = max(abs(wake_deltaq(i,k)),max_wake_dq(i))
    100            max_sigt(i) = max(abs(sigt_cv(i,k)),max_sigt(i))
    101            max_dqconv(i) = max(abs(q_seri(i,k) - qtc_cv(i,k)),max_dqconv(i))
    102           enddo
    103         enddo
    104      
    105         do k=1,klev
    106           do i=1,klon
    107            ratqs_inter(i,k)= ratqs_inter(i,k)*exp(-pdtphys/tau_ratqs_wake) +   &
    108            a_ratqs_wake*(max_wake_dq(i)*(wake_s(i)**0.5/(1.-wake_s(i))))*(1.-exp(-pdtphys/tau_ratqs_wake))/q_seri(i,1)  +   &
    109            a_ratqs_cv*max_dqconv(i)*max_sigt(i)*(1.-exp(-pdtphys/tau_ratqs_wake))/q_seri(i,1)
    110 !           if (ratqs_inter(i,k)>0) then
    111 !              ratqs_inter(i,k) = abs(q_seri(i,k) - qtc_cv(i,k))
    112 !           endif       
    113           enddo
    114         enddo
    115       endif
     238      enddo
     239     
    116240return
    117 end         
    118 
     241end             
    119242
    120243!------------------------------------------------------------------
    121 SUBROUTINE calcratqs_oro(klon,klev,qsat,temp,pplay,paprs,ratqs_oro)
     244SUBROUTINE ratqs_oro(klon,klev,pctsrf,zstd,qsat,temp,pplay,paprs,ratqs_oro_)
    122245
    123246! Etienne Vignon, November 2021: effect of subgrid orography on ratqs
    124247
    125 USE phys_state_var_mod, ONLY: zstd
    126 USE phys_state_var_mod, ONLY: pctsrf
    127 USE indice_sol_mod, only: nbsrf, is_lic, is_ter
     248USE lmdz_ratqs_ini, ONLY : RG,RV,RD,RLSTT,RLVTT,RTT,nbsrf,is_lic,is_ter
    128249
    129250IMPLICIT NONE
     
    136257INTEGER, INTENT(IN) :: klon                       ! number of horizontal grid points
    137258INTEGER, INTENT(IN) :: klev                       ! number of vertical layers
     259REAL, DIMENSION(klon,nbsrf) :: pctsrf
    138260REAL, DIMENSION(klon,klev), INTENT(IN) :: qsat    ! saturation specific humidity [kg/kg]
     261REAL, DIMENSION(klon), INTENT(IN) :: zstd    ! sub grid orography standard deviation
    139262REAL, DIMENSION(klon,klev), INTENT(IN) :: temp    ! air temperature [K]
    140263REAL, DIMENSION(klon,klev), INTENT(IN) :: pplay    ! air pressure, layer's center [Pa]
     
    143266! OUTPUTS
    144267
    145 REAL, DIMENSION(klon,klev), INTENT(out) :: ratqs_oro ! ratqs profile due to subgrid orography
     268REAL, DIMENSION(klon,klev), INTENT(out) :: ratqs_oro_ ! ratqs profile due to subgrid orography
    146269
    147270
     
    172295    ENDIF
    173296    xsi0(i)=zstd(i)*ABS(orogradT(i))*Lvs/temp0/temp0/RV
    174     ratqs_oro(i,1)=xsi0(i)
     297    ratqs_oro_(i,1)=xsi0(i)
    175298END DO
    176299
     
    187310               /paprs(i,k)*(pplay(i,k-1)-pplay(i,k))/RG
    188311               
    189       ratqs_oro(i,k)=MAX(0.0,pctsrf(i,is_ter)*xsi0(i)*exp(-zlay(i,k)/MAX(zstd(i),1.)))   
     312      ratqs_oro_(i,k)=MAX(0.0,pctsrf(i,is_ter)*xsi0(i)*exp(-zlay(i,k)/MAX(zstd(i),1.)))   
    190313    END DO
    191314END DO
     
    194317
    195318
    196 END SUBROUTINE calcratqs_oro
    197 
    198 !=============================================
    199 
    200 SUBROUTINE calcratqs_hetero(klon,klev,t2m,q2m,temp,q,pplay,paprs,ratqs_hetero)
     319END SUBROUTINE ratqs_oro
     320
     321!=============================================
     322
     323SUBROUTINE ratqs_hetero(klon,klev,pctsrf,s_pblh,t2m,q2m,temp,q,pplay,paprs,ratqs_hetero_)
    201324
    202325! Etienne Vignon, November 2021
    203326! Effect of subgrid surface heterogeneities on ratqs
    204327
    205 USE phys_local_var_mod, ONLY: s_pblh
    206 USE phys_state_var_mod, ONLY: pctsrf
    207 USE indice_sol_mod
    208328USE lscp_tools_mod, ONLY: CALC_QSAT_ECMWF
    209329
     330USE lmdz_ratqs_ini, ONLY : RG,RD,RTT,nbsrf
     331
    210332IMPLICIT NONE
    211 
    212 include "YOMCST.h"
    213333
    214334! INPUTS
     
    217337INTEGER, INTENT(IN) :: klon                       ! number of horizontal grid points
    218338INTEGER, INTENT(IN) :: klev                       ! number of vertical layers
     339REAL, DIMENSION(klon)                   :: s_pblh ! height of the planetary boundary layer(HPBL)
     340REAL, DIMENSION(klon,nbsrf)             :: pctsrf ! Fractional cover of subsurfaces
    219341REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: t2m    ! 2m temperature for each tile [K]
    220342REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: q2m    ! 2m specific humidity for each tile [kg/kg]
     
    226348! OUTPUTS
    227349
    228 REAL, DIMENSION(klon,klev), INTENT(out) :: ratqs_hetero ! ratsq profile due to surface heterogeneities
     350REAL, DIMENSION(klon,klev), INTENT(out) :: ratqs_hetero_ ! ratsq profile due to surface heterogeneities
    229351
    230352
     
    259381zlay(:,1)= RD*temp(:,1)/(0.5*(paprs(:,1)+pplay(:,1))) &
    260382           *(paprs(:,1)-pplay(:,1))/RG
    261 ratqs_hetero(:,1)=xsi0(:)
     383ratqs_hetero_(:,1)=xsi0(:)
    262384
    263385DO k=2,klev
     
    266388               /paprs(i,k)*(pplay(i,k-1)-pplay(i,k))/RG
    267389               
    268       ratqs_hetero(i,k)=MAX(xsi0(i)*exp(-zlay(i,k)/(s_pblh(i)+1.0)),0.0)   
     390      ratqs_hetero_(i,k)=MAX(xsi0(i)*exp(-zlay(i,k)/(s_pblh(i)+1.0)),0.0)   
    269391    END DO
    270392END DO
    271393
    272 END SUBROUTINE calcratqs_hetero
    273 
    274 !=============================================
    275 
    276 SUBROUTINE calcratqs_tke(klon,klev,pdtphys,temp,q,qsat,pplay,paprs,tke,tke_dissip,lmix,wprime,ratqs_tke)
     394END SUBROUTINE ratqs_hetero
     395
     396!=============================================
     397
     398SUBROUTINE ratqs_tke(klon,klev,pdtphys,temp,q,qsat,pplay,paprs,omega,tke,tke_dissip,lmix,wprime,ratqs_tke_)
    277399
    278400! References:
     
    287409! model. J. Atmos. Sci. 73, 279–291. https://doi.org/10.1175/JAS-D-15-0021.
    288410
    289 USE phys_local_var_mod, ONLY: omega
     411USE lmdz_ratqs_ini, ONLY : RG,RV,RD,RCPD,RLSTT,RLVTT,RTT
    290412
    291413IMPLICIT NONE
     
    301423REAL, DIMENSION(klon,klev), INTENT(IN) :: pplay         ! air pressure, layer's center [Pa]
    302424REAL, DIMENSION(klon,klev+1), INTENT(IN) :: paprs       ! air pressure, lower inteface [Pa]
     425REAL, DIMENSION(klon,klev), INTENT(IN) :: omega       ! air pressure, lower inteface [Pa]
    303426REAL, DIMENSION(klon,klev+1), INTENT(IN) :: tke         ! Turbulent Kinetic Energy [m2/s2]
    304427REAL, DIMENSION(klon,klev+1), INTENT(IN) :: tke_dissip  ! Turbulent Kinetic Energy Dissipation rate [m2/s3]
     
    308431! OUTPUTS
    309432
    310 REAL, DIMENSION(klon,klev), INTENT(out) :: ratqs_tke  ! ratsq profile due to subgrid TKE
     433REAL, DIMENSION(klon,klev), INTENT(out) :: ratqs_tke_  ! ratsq profile due to subgrid TKE
    311434
    312435! LOCAL
     
    333456! Calculation of ratqs
    334457!---------------------------------------------------------------
    335 ratqs_tke(:,1)=ratqsmin ! set to a very low value to avoid division by 0 in order parts
     458ratqs_tke_(:,1)=ratqsmin ! set to a very low value to avoid division by 0 in order parts
    336459                        ! of the code
    337460DO k=2,klev ! we start from second model level since TKE is not defined at k=1
     
    353476       VARLOG=AAprime/2./DD
    354477       VARLOG=MIN(VARLOG,maxvarlog)
    355        ratqs_tke(i,k)=SQRT(MAX(EXP(VARLOG)-1.0,ratqsmin))
     478       ratqs_tke_(i,k)=SQRT(MAX(EXP(VARLOG)-1.0,ratqsmin))
    356479       END DO
    357480END DO
    358 END SUBROUTINE calcratqs_tke
    359 
    360 
    361 
    362 
    363 
    364 END MODULE calcratqs_multi_mod
     481END SUBROUTINE ratqs_tke
     482
     483END MODULE lmdz_ratqs_multi
  • LMDZ6/trunk/libf/phylmd/nuage.h

    r4535 r4613  
    66      REAL tau_cld_cv,coefw_cld_cv
    77      REAL tmax_fonte_cv
    8       INTEGER iflag_cld_cv
     8      INTEGER iflag_cld_cv, iflag_ratqs
    99      INTEGER iflag_rei
    1010      LOGICAL ok_icefra_lscp
     
    1313     &                  rei_min,rei_max,                                &
    1414     &                  tau_cld_cv,coefw_cld_cv,                        &
    15      &                  tmax_fonte_cv,                                  &
     15     &                  tmax_fonte_cv,iflag_ratqs,                      &
    1616     &                  iflag_cld_cv,                                   &
    1717     &                  ok_icefra_lscp,                                 &
  • LMDZ6/trunk/libf/phylmd/phyetat0_mod.F90

    r4581 r4613  
    2828       zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl, u10m, v10m, treedrg, &
    2929       ale_wake, ale_bl_stat, ds_ns, dt_ns, delta_sst, delta_sal, dter, dser, &
    30        dt_ds, ratqs_inter
     30       dt_ds, ratqs_inter_
    3131!FC
    3232  USE geometry_mod,     ONLY: longitude_deg, latitude_deg
     
    491491
    492492! fisrtilp/Clouds 0.002 could be ratqsbas. But can stay like this as well
    493   found=phyetat0_get(ratqs_inter,"RATQS_INTER","Relative width of the lsc sugrid scale water",0.002)
     493  found=phyetat0_get(ratqs_inter_,"RATQS_INTER","Relative width of the lsc sugrid scale water",0.002)
    494494
    495495!===========================================
  • LMDZ6/trunk/libf/phylmd/phyredem.F90

    r4551 r4613  
    3030                                du_gwd_rando, du_gwd_front, u10m, v10m, &
    3131                                treedrg, solswfdiff, delta_sal, ds_ns, dt_ns, &
    32                                 delta_sst, ratqs_inter, dter, dser, dt_ds
     32                                delta_sst, ratqs_inter_, dter, dser, dt_ds
    3333
    3434  USE geometry_mod, ONLY : longitude_deg, latitude_deg
     
    334334
    335335    ! fisrtilp/clouds
    336     CALL put_field(pass,"RATQS_INTER","Relative width of the lsc sugrid scale water",ratqs_inter)
     336    CALL put_field(pass,"RATQS_INTER","Relative width of the lsc sugrid scale water",ratqs_inter_)
    337337
    338338
  • LMDZ6/trunk/libf/phylmd/phys_state_var_mod.F90

    r4556 r4613  
    102102      REAL, ALLOCATABLE, SAVE :: rneb_ancien(:,:)
    103103!$OMP THREADPRIVATE(rneb_ancien)
    104       REAL, ALLOCATABLE, SAVE :: qtc_cv(:,:),sigt_cv(:,:)
    105 !$OMP THREADPRIVATE(qtc_cv,sigt_cv)
     104      REAL, ALLOCATABLE, SAVE :: qtc_cv(:,:),sigt_cv(:,:),detrain_cv(:,:),fm_cv(:,:)
     105!$OMP THREADPRIVATE(qtc_cv,sigt_cv,detrain_cv,fm_cv)
    106106      REAL, ALLOCATABLE, SAVE :: ratqs(:,:)
    107107!$OMP THREADPRIVATE(ratqs)
     
    229229!$OMP THREADPRIVATE(ftd)
    230230! fqd : convective moistening due to unsaturated downdraughts
    231       REAL,ALLOCATABLE,SAVE :: fqd(:,:)     
    232 !$OMP THREADPRIVATE(fqd)
     231      REAL,ALLOCATABLE,SAVE :: fqd(:,:),fqcomp(:,:)     
     232!$OMP THREADPRIVATE(fqd,fqcomp)
    233233#ifdef ISO
    234234      REAL, ALLOCATABLE, SAVE :: fxtd(:,:,:)
     
    454454!$OMP THREADPRIVATE(ale_bl_trig)
    455455
    456       REAL,SAVE,ALLOCATABLE :: ratqs_inter(:,:)
    457 !$OMP THREADPRIVATE(ratqs_inter)
     456      REAL,SAVE,ALLOCATABLE :: ratqs_inter_(:,:)
     457!$OMP THREADPRIVATE(ratqs_inter_)
    458458
    459459#ifdef ISO
     
    567567      ALLOCATE(clwcon(klon,klev),rnebcon(klon,klev))
    568568      ALLOCATE(rneb_ancien(klon,klev))
    569       ALLOCATE(qtc_cv(klon,klev),sigt_cv(klon,klev))
     569      ALLOCATE(qtc_cv(klon,klev),sigt_cv(klon,klev),detrain_cv(klon,klev),fm_cv(klon,klev))
    570570      ALLOCATE(ratqs(klon,klev))
    571571      ALLOCATE(pbl_tke(klon,klev+1,nbsrf+1))
     
    638638      ALLOCATE(sigd(klon))
    639639      ALLOCATE(cin(klon), ALE(klon), ALP(klon))
    640       ALLOCATE(ftd(klon,klev), fqd(klon,klev))
     640      ALLOCATE(ftd(klon,klev), fqd(klon,klev),fqcomp(klon,klev))
    641641      ALLOCATE(Ale_bl(klon))
    642642      ALLOCATE(ale_wake(klon))
     
    733733
    734734      ALLOCATE(ale_bl_trig(klon))
    735       ALLOCATE(ratqs_inter(klon,klev))
     735      ALLOCATE(ratqs_inter_(klon,klev))
    736736      IF (ok_gwd_rando) THEN
    737737        ALLOCATE(du_gwd_rando(klon, klev))
     
    773773      DEALLOCATE(qs_ancien, ql_ancien, qbs_ancien, rneb_ancien)
    774774      DEALLOCATE(prw_ancien, prlw_ancien, prsw_ancien, prbsw_ancien)
    775       DEALLOCATE(qtc_cv,sigt_cv)
     775      DEALLOCATE(qtc_cv,sigt_cv,detrain_cv,fm_cv)
    776776      DEALLOCATE(u_ancien, v_ancien)
    777777      DEALLOCATE(tr_ancien)                           !RomP
     
    821821      DEALLOCATE(wd, sigd)
    822822      DEALLOCATE(cin, ALE, ALP)
    823       DEALLOCATE(ftd, fqd)
     823      DEALLOCATE(ftd, fqd, fqcomp)
    824824      DEALLOCATE(Ale_bl, Alp_bl)
    825825      DEALLOCATE(ale_wake)
     
    886886      if (.not. ok_hines .and. ok_gwd_rando) DEALLOCATE(du_gwd_front)
    887887      DEALLOCATE(ale_bl_trig)
    888       DEALLOCATE(ratqs_inter)
     888      DEALLOCATE(ratqs_inter_)
    889889
    890890      if (activate_ocean_skin >= 1) then
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r4608 r4613  
    8787    USE blowing_snow_ini_mod, ONLY : blowing_snow_ini , qbst_bs
    8888    USE lscp_ini_mod, ONLY : lscp_ini
     89    USE lmdz_ratqs_main, ONLY : ratqs_main
     90    USE lmdz_ratqs_ini, ONLY : ratqs_ini
    8991
    9092    !USE cmp_seri_mod
     
    458460    SAVE seuil_inversion
    459461    !$OMP THREADPRIVATE(seuil_inversion)
    460     INTEGER iflag_ratqs
    461     SAVE iflag_ratqs
    462     !$OMP THREADPRIVATE(iflag_ratqs)
     462   
     463   
     464   
    463465    real facteur
    464466
     
    13341336            solarlong0,seuil_inversion, &
    13351337            fact_cldcon, facttemps,ok_newmicro,iflag_radia, &
    1336             iflag_cld_th,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, &
     1338            iflag_cld_th,ratqsbas,ratqshaut,tau_ratqs, &
    13371339            ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, flag_volc_surfstrat, aerosol_couple, &
    13381340            chemistry_couple, flag_aerosol, flag_aerosol_strat, flag_aer_feedback, &
     
    18011803       CALL thermcell_ini(iflag_thermals,prt_level,tau_thermals,lunout, &
    18021804   &    RG,RD,RCPD,RKAPPA,RLVTT,RETV)
     1805       CALL ratqs_ini(klon,klev,iflag_thermals,lunout,nbsrf,is_lic,is_ter,RG,RV,RD,RCPD,RLSTT,RLVTT,RTT)
    18031806       CALL lscp_ini(pdtphys,ok_ice_sursat, RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT,RD,RG)
    18041807       CALL blowing_snow_ini(prt_level,lunout, &
     
    31263129               ALE,ALP, &
    31273130               sig1,w01, &
    3128                d_t_con,d_q_con,d_u_con,d_v_con,d_tr, &
     3131               d_t_con,d_q_con,fqcomp,d_u_con,d_v_con,d_tr, &
    31293132               rain_con, snow_con, ibas_con, itop_con, sigd, &
    31303133               ema_cbmf,plcl,plfc,wbeff,convoccur,upwd,dnwd,dnwd0, &
     
    31373140               ftd,fqd,lalim_conv,wght_th, &
    31383141               ev, ep,epmlmMm,eplaMm, &
    3139                wdtrainA, wdtrainS, wdtrainM,wght_cvfd,qtc_cv,sigt_cv, &
     3142               wdtrainA, wdtrainS, wdtrainM,wght_cvfd,qtc_cv,sigt_cv,detrain_cv, &
    31403143               tau_cld_cv,coefw_cld_cv,epmax_diag)
    31413144
     
    31493152          clwcon0=qcondc
    31503153          pmfu(:,:)=upwd(:,:)+dnwd(:,:)
     3154          fm_cv(:,:)=upwd(:,:)+dnwd(:,:)+dnwd0(:,:)
    31513155          !
    31523156          !jyg<
     
    36993703    ENDDO
    37003704
    3701     CALL  calcratqs(klon,klev,prt_level,lunout,        &
     3705    CALL ratqs_main(klon,klev,nbsrf,prt_level,lunout,        &
    37023706         iflag_ratqs,iflag_con,iflag_cld_th,pdtphys,  &
    37033707         ratqsbas,ratqshaut,ratqsp0, ratqsdp, &
     3708         pctsrf,s_pblh,zstd, &
    37043709         tau_ratqs,fact_cldcon,wake_s, wake_deltaq,   &
    37053710         ptconv,ptconvth,clwcon0th, rnebcon0th,     &
    3706          paprs,pplay,t_seri,q_seri, qtc_cv, sigt_cv, zqsat, &
    3707          pbl_tke(:,:,is_ave),tke_dissip_ave,l_mix_ave,wprime_ave,t2m,q2m,fm_therm,cell_area, &
    3708          ratqs,ratqsc,ratqs_inter)
     3711         paprs,pplay,t_seri,q_seri, &
     3712         qtc_cv, sigt_cv,detrain_cv,fm_cv,fqd,fqcomp,sigd,zqsat, &
     3713         omega,pbl_tke(:,:,is_ave),tke_dissip_ave,l_mix_ave,wprime_ave, &
     3714         t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area, &
     3715         ratqs,ratqsc,ratqs_inter_)
    37093716
    37103717    !
     
    52135220    !ENDIF    ! (iflag_phytrac=1)
    52145221
    5215 
    5216 #ifndef INCA
    52175222    IF (offline) THEN
    52185223
     
    52305235
    52315236    ENDIF
    5232 #endif
     5237
    52335238    !
    52345239    ! Calculer le transport de l'eau et de l'energie (diagnostique)
     
    55495554         ok_sync, ptconv, read_climoz, clevSTD,          &
    55505555         ptconvth, d_u, d_t, qx, d_qx, zmasse,           &
    5551          flag_aerosol, flag_aerosol_strat, ok_cdnc, t, u1, v1 )
     5556         flag_aerosol, flag_aerosol_strat, ok_cdnc,t, u1, v1)
    55525557#endif
    55535558
  • LMDZ6/trunk/libf/phylmdiso/concvl.F90

    r4143 r4613  
    33                  t, q, t_wake, q_wake, s_wake, u, v, tra, ntra, &
    44                  Ale, Alp, sig1, w01, &
    5                   d_t, d_q, d_u, d_v, d_tra, &
     5                  d_t, d_q, d_qcomp, d_u, d_v, d_tra, &
    66                  rain, snow, kbas, ktop, sigd, &
    77                  cbmf, plcl, plfc, wbeff, convoccur, &
     
    1616                  dd_t, dd_q, lalim_conv, wght_th, &                 ! RomP
    1717                  evap, ep, epmlmMm, eplaMm, &                       ! RomP
    18                   wdtrainA, wdtrainS, wdtrainM, wght, qtc, sigt, &
     18                  wdtrainA, wdtrainS, wdtrainM, wght, qtc, sigt, detrain, &
    1919                  tau_cld_cv, coefw_cld_cv, &                           ! RomP+RL, AJ
    2020!RomP <<<
     
    138138  REAL, DIMENSION(klon,klev),   INTENT(INOUT)   :: sig1, w01
    139139
    140   REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: d_t, d_q, d_u, d_v
     140  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: d_t, d_q, d_qcomp, d_u, d_v
    141141  REAL, DIMENSION(klon,klev, nbtr),INTENT(OUT)  :: d_tra
    142142  REAL, DIMENSION(klon),        INTENT(OUT)     :: rain, snow
     
    186186  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: wght                       !RL
    187187  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: qtc
    188   REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: sigt
     188  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: sigt, detrain
    189189  REAL,                         INTENT(OUT)     :: tau_cld_cv, coefw_cld_cv
    190190  REAL, DIMENSION(klon),        INTENT(OUT)     :: epmax_diag                ! epmax_cape
     
    588588                    Ale, Alp, omega, &
    589589                    em_sig1feed, em_sig2feed, em_wght, &
    590                     iflag, d_t, d_q, d_u, d_v, d_tra, rain, kbas, ktop, &
     590                    iflag, d_t, d_q, d_qcomp, d_u, d_v, d_tra, rain, kbas, ktop, &
    591591                    cbmf, plcl, plfc, wbeff, sig1, w01, ptop2, sigd, &
    592592                    Ma, mip, Vprecip, Vprecipi, upwd, dnwd, dnwdbis, qcondc, wd, &
     
    599599                    da, phi, mp, phii, d1a, dam, sij, wght, &           ! RomP+RL
    600600                    qta, clw, elij, evap, ep, epmlmMm, eplaMm, &        ! RomP+RL
    601                     wdtrainA, wdtrainS, wdtrainM, qtc, sigt, &
     601                    wdtrainA, wdtrainS, wdtrainM, qtc, sigt, detrain, &
    602602                    tau_cld_cv, coefw_cld_cv, &                         ! RomP,AJ
    603603!AC!+!RomP+jyg
  • LMDZ6/trunk/libf/phylmdiso/cv3_routines.F90

    r4143 r4613  
    47204720                     tv, tvp, wghti, &
    47214721                     iflag, precip, Vprecip, Vprecipi, &     ! jyg: Vprecipi
    4722                      ft, fr, fu, fv, ftra, &                 ! jyg
     4722                     ft, fr, fr_comp, fu, fv, ftra, &                 ! jyg
    47234723                     cbmf, upwd, dnwd, dnwd0, ma, mip, &
    47244724!!                     tls, tps,                             ! useless . jyg
    47254725                     qcondc, wd, &
    4726                      ftd, fqd, qta, qtc, sigt, tau_cld_cv, coefw_cld_cv &
     4726                     ftd, fqd, qta, qtc, sigt, detrain, tau_cld_cv, coefw_cld_cv &
    47274727#ifdef ISO
    47284728     &                    ,xt,xt_wake,xtclw,xtp,xtwater,xtice,xtevap &
     
    48164816!outputs:
    48174817      REAL, DIMENSION (nloc), INTENT (OUT)               :: precip
    4818       REAL, DIMENSION (nloc, nd), INTENT (OUT)           :: ft, fr, fu, fv
     4818      REAL, DIMENSION (nloc, nd), INTENT (OUT)           :: ft, fr, fu, fv , fr_comp
    48194819      REAL, DIMENSION (nloc, nd), INTENT (OUT)           :: ftd, fqd
    48204820      REAL, DIMENSION (nloc, nd, ntra), INTENT (OUT)     :: ftra
     
    48264826      REAL, DIMENSION (nloc, nd), INTENT (OUT)           :: qcondc                      ! cld
    48274827      REAL, DIMENSION (nloc, nd), INTENT (OUT)           :: qtc, sigt                   ! cld
     4828      REAL, DIMENSION (nloc, nd), INTENT (OUT)           :: detrain                     ! Louis : pour le calcul de Klein du terme de variance qui détraine dans lenvironnement
    48284829      REAL, DIMENSION (nloc), INTENT (OUT)               :: wd                          ! gust
    48294830      REAL, DIMENSION (nloc), INTENT (OUT)               :: cbmf
     
    48524853      REAL, DIMENSION (nloc)                             :: esum, fsum, gsum, hsum
    48534854      REAL, DIMENSION (nloc, nd)                         :: th_wake
     4855      REAL, DIMENSION (nloc, nd, nd)                     :: qdet
    48544856      REAL, DIMENSION (nloc)                             :: alpha_qpos, alpha_qpos1
    48554857      REAL, DIMENSION (nloc, nd)                         :: qcond, nqcond, wa           ! cld
     
    49404942      ft(il, i) = 0.0
    49414943      fr(il, i) = 0.0
     4944      fr_comp(il,i) = 0.0
    49424945      fu(il, i) = 0.0
    49434946      fv(il, i) = 0.0
     
    49504953      sigment(il, i) = 0.0 ! cld
    49514954      sigt(il, i) = 0.0 ! cld
     4955      qdet(il,i,:) = 0.0 ! cld
     4956      detrain(il, i) = 0.0 ! cld
    49524957      nqcond(il, i) = 0.0 ! cld
    49534958#ifdef ISO
     
    53585363      IF (j<=inb(il) .AND. iflag(il)<=1) THEN
    53595364        fr(il, 1) = fr(il, 1) + 0.01*grav*work(il)*ment(il, j, 1)*(qent(il,j,1)-rr(il,1))
     5365        fr_comp(il,1) = fr_comp(il,1) + 0.01*grav*work(il)*ment(il, j, 1)*(qent(il,j,1)-rr(il,1))
    53605366
    53615367#ifdef ISO
     
    56275633      IF (i<=inb(il) .AND. iflag(il)<=1) num1 = num1 + 1
    56285634    END DO
     5635        qdet(il,i,i) = qent(il,i,i)                                            ! cld Louis : specific humidity in detraining water
    56295636    IF (num1<=0) GO TO 500
    56305637
     
    62436250          fr(il, i) = fr(il, i) + 0.01*grav*dpinv*ment(il, k, i) * &
    62446251                                                       (qent(il,k,i)-awat(il)-rr(il,i))
     6252          fr_comp(il,i) = fr_comp(il,i) + 0.01*grav*dpinv*ment(il, k, i)*(qent(il,k,i)-awat(il)-rr(il,i))
    62456253
    62466254#ifdef ISO
     
    63136321! (saturated updrafts resulting from mixing)                                   ! cld
    63146322          qcond(il, i) = qcond(il, i) + (elij(il,k,i)-awat(il))                ! cld
     6323          qdet(il,k,i) = (qent(il,k,i)-awat(il))                               ! cld Louis : specific humidity in detraining water
    63156324          qtment(il, i) = qtment(il, i) + qent(il,k,i)                         ! cld
    63166325          nqcond(il, i) = nqcond(il, i) + 1.                                   ! cld
     
    64606469! (saturated downdrafts resulting from mixing)                                 ! cld
    64616470          qcond(il, i) = qcond(il, i) + elij(il, k, i)                         ! cld
     6471          qdet(il,k,i) = qent(il,k,i)                                          ! cld Louis : specific humidity in detraining water
    64626472          qtment(il, i) = qent(il,k,i) + qtment(il,i)                          ! cld
    64636473          nqcond(il, i) = nqcond(il, i) + 1.                                   ! cld
     
    72557265        IF  (k<=inb(il) .AND. i<=inb(il) .AND. iflag(il)<=1) THEN   ! cld
    72567266          sument(il) =sument(il) + abs(ment(il,k,i))
     7267          detrain(il,i) = detrain(il,i) + abs(ment(il,k,i))*(qdet(il,k,i) - rr(il,i))*(qdet(il,k,i) - rr(il,i)) ! Louis terme de détrainement dans le bilan de variance
    72577268        ENDIF
    72587269      ENDDO     ! il
  • LMDZ6/trunk/libf/phylmdiso/cv3a_uncompress.F90

    r4143 r4613  
    22                           iflag, kbas, ktop, &
    33                           precip, cbmf, plcl, plfc, wbeff, sig, w0, ptop2, &
    4                            ft, fq, fu, fv, ftra,  &
     4                           ft, fq, fqcomp, fu, fv, ftra,  &
    55                           sigd, ma, mip, vprecip, vprecipi, upwd, dnwd, dnwd0, &
    66                           qcondc, wd, cape, cin, &
     
    1212                           qta, clw, elij, evap, ep, epmlmMm, eplaMm, &         ! RomP+jyg
    1313                           wdtrainA, wdtrainS, wdtrainM, &                      ! RomP
    14                            qtc, sigt,          &
     14                           qtc, sigt, detrain,         &
    1515                           epmax_diag, & ! epmax_cape
    1616                           iflag1, kbas1, ktop1, &
    1717                           precip1, cbmf1, plcl1, plfc1, wbeff1, sig1, w01, ptop21, &
    18                            ft1, fq1, fu1, fv1, ftra1, &
     18                           ft1, fq1, fqcomp1, fu1, fv1, ftra1, &
    1919                           sigd1, ma1, mip1, vprecip1, vprecipi1, upwd1, dnwd1, dnwd01, &
    2020                           qcondc1, wd1, cape1, cin1, &
     
    2626                           qta1, clw1, elij1, evap1, ep1, epmlmMm1, eplaMm1, &  ! RomP+jyg
    2727                           wdtrainA1, wdtrainS1, wdtrainM1, &                   ! RomP
    28                            qtc1, sigt1, &
     28                           qtc1, sigt1, detrain1, &
    2929                           epmax_diag1  & ! epmax_cape
    3030#ifdef ISO
     
    7272  REAL, DIMENSION (nloc), INTENT (IN)                :: ptop2
    7373  REAL, DIMENSION (nloc), INTENT (IN)                :: epmax_diag
    74   REAL, DIMENSION (nloc, nd), INTENT (IN)            :: ft, fq, fu, fv
     74  REAL, DIMENSION (nloc, nd), INTENT (IN)            :: ft, fq, fqcomp, fu, fv
    7575  REAL, DIMENSION (nloc, nd, ntra), INTENT (IN)      :: ftra
    7676  REAL, DIMENSION (nloc), INTENT (IN)                :: sigd
     
    9999  REAL, DIMENSION (nloc, nd, nd), INTENT (IN)        :: epmlmMm                !RomP+jyg
    100100  REAL, DIMENSION (nloc, nd), INTENT (IN)            :: eplamM                 !RomP+jyg
    101   REAL, DIMENSION (nloc, nd), INTENT (IN)            :: qtc, sigt              !RomP
     101  REAL, DIMENSION (nloc, nd), INTENT (IN)            :: qtc, sigt, detrain              !RomP
    102102  REAL, DIMENSION (nloc, nd), INTENT (IN)            :: wdtrainA, wdtrainS, wdtrainM     !RomP
    103103
     
    120120  REAL, DIMENSION (len), INTENT (OUT)                :: epmax_diag1 ! epmax_cape
    121121  REAL, DIMENSION (len), INTENT (OUT)                :: ptop21
    122   REAL, DIMENSION (len, nd), INTENT (OUT)            :: ft1, fq1, fu1, fv1
     122  REAL, DIMENSION (len, nd), INTENT (OUT)            :: ft1, fq1, fqcomp1, fu1, fv1
    123123  REAL, DIMENSION (len, nd, ntra), INTENT (OUT)      :: ftra1
    124124  REAL, DIMENSION (len), INTENT (OUT)                :: sigd1
     
    147147  REAL, DIMENSION (len, nd, nd), INTENT (OUT)        :: epmlmMm1               !RomP+jyg
    148148  REAL, DIMENSION (len, nd), INTENT (OUT)            :: eplamM1                !RomP+jyg
    149   REAL, DIMENSION (len, nd), INTENT (OUT)            :: qtc1, sigt1            !RomP
     149  REAL, DIMENSION (len, nd), INTENT (OUT)            :: qtc1, sigt1, detrain1            !RomP
    150150  REAL, DIMENSION (len, nd), INTENT (OUT)            :: wdtrainA1, wdtrainS1, wdtrainM1   !RomP
    151151
     
    244244        ft1(idcum(i), k) = ft(i, k)
    245245        fq1(idcum(i), k) = fq(i, k)
     246        fqcomp1(idcum(i), k) = fqcomp(i, k)
    246247        fu1(idcum(i), k) = fu(i, k)
    247248        fv1(idcum(i), k) = fv(i, k)
     
    273274        qtc1(idcum(i), k) = qtc(i, k)
    274275        sigt1(idcum(i), k) = sigt(i, k)
     276        detrain1(idcum(i), k) = detrain(i, k)
    275277   
    276278#ifdef ISO
     
    418420      ft1(:, 1:nl) = ft(:, 1:nl)
    419421      fq1(:, 1:nl) = fq(:, 1:nl)
     422      fqcomp1(:, 1:nl) = fqcomp(:, 1:nl)
    420423      fu1(:, 1:nl) = fu(:, 1:nl)
    421424      fv1(:, 1:nl) = fv(:, 1:nl)
     
    447450      qtc1(:, 1:nl) = qtc(:, 1:nl)
    448451      sigt1(:, 1:nl) = sigt(:, 1:nl)
     452      detrain1(:, 1:nl) = detrain(:, 1:nl)
    449453!
    450454      ma1(:, nlp) = 0.
  • LMDZ6/trunk/libf/phylmdiso/cva_driver.F90

    r4143 r4613  
    1111                      Ale1, Alp1, omega1, &
    1212                      sig1feed1, sig2feed1, wght1, &
    13                       iflag1, ft1, fq1, fu1, fv1, ftra1, &
     13                      iflag1, ft1, fq1, fqcomp1, fu1, fv1, ftra1, &
    1414                      precip1, kbas1, ktop1, &
    1515                      cbmf1, plcl1, plfc1, wbeff1, &
     
    2626                      da1, phi1, mp1, phi21, d1a1, dam1, sigij1, wghti1, & ! RomP, RL
    2727                      qta1, clw1, elij1, evap1, ep1, epmlmMm1, eplaMm1, &  ! RomP, RL
    28                       wdtrainA1, wdtrainS1, wdtrainM1, qtc1, sigt1, tau_cld_cv, &     !!jygprl
     28                      wdtrainA1, wdtrainS1, wdtrainM1, qtc1, sigt1, detrain1, tau_cld_cv, &     !!jygprl
    2929                      coefw_cld_cv, &                                      ! RomP, AJ
    3030                      epmax_diag1 &  ! epmax_cape
     
    8888! ntra          Integer        Input        number of tracors
    8989! nloc          Integer        Input        dimension of arrays for compressed fields
     90! fqcomp1       Real           Output       spec hum tend (only mixed draughts)
    9091! k_upper       Integer        Input        upmost level for vertical loops
    9192! iflag_con     Integer        Input        version of convect (3/4)
     
    135136! upwd1         Real           Output       total upward mass flux (adiab+mixed)
    136137! dnwd1         Real           Output       saturated downward mass flux (mixed)
     138! detrain1      Real           Output     detrainment terme klein
    137139! dnwd01        Real           Output       unsaturated downward mass flux
    138140! qcondc1       Real           Output       in-cld mixing ratio of condensed water
     
    209211  LOGICAL, INTENT (IN)                               :: ok_conserv_q
    210212  REAL, INTENT (IN)                                  :: tau_cld_cv
     213  REAL, DIMENSION (len, nd), INTENT (OUT)            :: fqcomp1
    211214  REAL, INTENT (IN)                                  :: coefw_cld_cv
    212215  REAL, INTENT (IN)                                  :: delt
     
    248251  REAL, DIMENSION (len), INTENT (OUT)                :: cbmf1
    249252  REAL, DIMENSION (len), INTENT (OUT)                :: plcl1
     253  REAL, DIMENSION (len, nd), INTENT (OUT)            :: detrain1   ! detrainement term of mixed draughts in environment
    250254  REAL, DIMENSION (len), INTENT (OUT)                :: plfc1
    251255  REAL, DIMENSION (len), INTENT (OUT)                :: wbeff1
     
    572576  REAL, DIMENSION(len,nd)     :: ice, fondue, b
    573577  REAL, DIMENSION(len,nd)     :: frac_a, frac_s, faci               !!jygprl
    574   REAL ft(nloc, nd), fq(nloc, nd)
     578  REAL ft(nloc, nd), fq(nloc, nd), fqcomp(nloc, nd)
    575579  REAL ftd(nloc, nd), fqd(nloc, nd)
    576580  REAL fu(nloc, nd), fv(nloc, nd)
     
    598602  REAL qtc(nloc, nd)         ! cld
    599603  REAL sigt(nloc, nd)        ! cld
     604  REAL detrain(nloc, nd)     ! cld
    600605 
    601606! RomP >>>
     
    706711  ft1(:, :) = 0.0
    707712  fq1(:, :) = 0.0
     713  fqcomp1(:, :) = 0.0
    708714  fu1(:, :) = 0.0
    709715  fv1(:, :) = 0.0
     
    766772! RomP >>>
    767773  sigt1(:, :) = 0.
     774  detrain1(:, :) = 0.
    768775  qtc1(:, :) = 0.
    769776  wdtrainA1(:, :) = 0.
     
    15611568        if (prt_level >= 9) &
    15621569             PRINT *, 'cva_driver -> cv3_yield'
     1570
    15631571      CALL cv3_yield(nloc, ncum, nd, nd, ntra, ok_conserv_q, &                      ! na->nd
    15641572                     icb, inb, delt, &
     
    15701578                     nent, elij, traent, sig, &
    15711579                     tv, tvp, wghti, &
    1572                      iflag, precip, Vprecip, Vprecipi, ft, fq, fu, fv, ftra, &      ! jyg
     1580                     iflag, precip, Vprecip, Vprecipi, ft, fq, fqcomp, fu, fv, ftra, &      ! jyg
    15731581                     cbmf, upwd, dnwd, dnwd0, ma, mip, &
    15741582!!                     tls, tps, &                            ! useless . jyg
    15751583                     qcondc, wd, &
    15761584!!                     ftd, fqd, qnk, qtc, sigt, tau_cld_cv, coefw_cld_cv)
    1577                      ftd, fqd, qta, qtc, sigt, tau_cld_cv, coefw_cld_cv &  !!jygprl
     1585                     ftd, fqd, qta, qtc, sigt,detrain,tau_cld_cv, coefw_cld_cv &  !!jygprl
    15781586#ifdef ISO
    15791587     &                     ,xt,xt_wake,xtclw,xtp,xtwater,xtice,xtevap &
     
    16731681                           iflag, icb, inb, &
    16741682                           precip, cbmf, plcl, plfc, wbeff, sig, w0, ptop2, &
    1675                            ft, fq, fu, fv, ftra, &
     1683                           ft, fq, fqcomp, fu, fv, ftra, &
    16761684                           sigd, ma, mip, vprecip, vprecipi, upwd, dnwd, dnwd0, &
    16771685                           qcondc, wd, cape, cin, &
     
    16831691                           qta, clw, elij, evap, ep, epmlmMm, eplaMm, &  ! RomP
    16841692                           wdtrainA, wdtrainS, wdtrainM, &                         ! RomP
    1685                            qtc, sigt, epmax_diag, & ! epmax_cape
     1693                           qtc, sigt, detrain, epmax_diag, & ! epmax_cape
    16861694                           iflag1, kbas1, ktop1, &
    16871695                           precip1, cbmf1, plcl1, plfc1, wbeff1, sig1, w01, ptop21, &
    1688                            ft1, fq1, fu1, fv1, ftra1, &
     1696                           ft1, fq1, fqcomp1, fu1, fv1, ftra1, &
    16891697                           sigd1, ma1, mip1, vprecip1, vprecipi1, upwd1, dnwd1, dnwd01, &
    16901698                           qcondc1, wd1, cape1, cin1, &
     
    16961704                           qta1, clw1, elij1, evap1, ep1, epmlmMm1, eplaMm1, & ! RomP
    16971705                           wdtrainA1, wdtrainS1, wdtrainM1,                  & ! RomP
    1698                            qtc1, sigt1, epmax_diag1 & ! epmax_cape
     1706                           qtc1, sigt1,detrain1,epmax_diag1 & ! epmax_cape
    16991707#ifdef ISO
    17001708     &          ,xtprecip,fxt,fxtd, xtVprecip,xtVprecipi, xtclw,xtevap,xtwdtraina       &
  • LMDZ6/trunk/libf/phylmdiso/lmdz_ratqs_main.F90

    r4612 r4613  
    1 link ../phylmd/calcratqs.F90
     1link ../phylmd/lmdz_ratqs_main.F90
  • LMDZ6/trunk/libf/phylmdiso/lmdz_ratqs_multi.F90

    r4612 r4613  
    1 link ../phylmd/calcratqs_multi_mod.F90
     1link ../phylmd/lmdz_ratqs_multi.F90
  • LMDZ6/trunk/libf/phylmdiso/phyetat0_mod.F90

    r4581 r4613  
    3636       zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl, u10m, v10m, treedrg, &
    3737       ale_wake, ale_bl_stat, ds_ns, dt_ns, delta_sst, delta_sal, dter, dser, &
    38        dt_ds, ratqs_inter
     38       dt_ds, ratqs_inter_
    3939!FC
    4040  USE geometry_mod,     ONLY: longitude_deg, latitude_deg
     
    510510
    511511! fisrtilp/Clouds 0.002 could be ratqsbas. But can stay like this as well
    512   found=phyetat0_get(ratqs_inter,"RATQS_INTER","Relative width of the lsc sugrid scale water",0.002)
     512  found=phyetat0_get(ratqs_inter_,"RATQS_INTER","Relative width of the lsc sugrid scale water",0.002)
    513513
    514514!===========================================
  • LMDZ6/trunk/libf/phylmdiso/phyredem.F90

    r4523 r4613  
    3030                                du_gwd_rando, du_gwd_front, u10m, v10m, &
    3131                                treedrg, solswfdiff, delta_sal, ds_ns, dt_ns, &
    32                                 delta_sst, ratqs_inter, dter, dser, dt_ds
     32                                delta_sst, ratqs_inter_, dter, dser, dt_ds
    3333#ifdef ISO
    3434  USE phys_state_var_mod, ONLY: xtsol, fxtevap,xtrain_fall, xtsnow_fall,     &
     
    347347
    348348    ! fisrtilp/clouds
    349     CALL put_field(pass,"RATQS_INTER","Relative width of the lsc sugrid scale water",ratqs_inter)
     349    CALL put_field(pass,"RATQS_INTER","Relative width of the lsc sugrid scale water",ratqs_inter_)
    350350
    351351
  • LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90

    r4612 r4613  
    8787    USE blowing_snow_ini_mod, ONLY : blowing_snow_ini , qbst_bs
    8888    USE lscp_ini_mod, ONLY : lscp_ini
     89    USE lmdz_ratqs_main, ONLY : ratqs_main
     90    USE lmdz_ratqs_ini, ONLY : ratqs_ini
    8991
    9092    !USE cmp_seri_mod
     
    519521    SAVE seuil_inversion
    520522    !$OMP THREADPRIVATE(seuil_inversion)
    521     INTEGER iflag_ratqs
    522     SAVE iflag_ratqs
    523     !$OMP THREADPRIVATE(iflag_ratqs)
     523   
     524   
     525   
    524526    real facteur
    525527
     
    14011403            solarlong0,seuil_inversion, &
    14021404            fact_cldcon, facttemps,ok_newmicro,iflag_radia, &
    1403             iflag_cld_th,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, &
     1405            iflag_cld_th,ratqsbas,ratqshaut,tau_ratqs, &
    14041406            ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, flag_volc_surfstrat, aerosol_couple, &
    14051407            chemistry_couple, flag_aerosol, flag_aerosol_strat, flag_aer_feedback, &
     
    19171919       CALL thermcell_ini(iflag_thermals,prt_level,tau_thermals,lunout, &
    19181920   &    RG,RD,RCPD,RKAPPA,RLVTT,RETV)
     1921       CALL ratqs_ini(klon,klev,iflag_thermals,lunout,nbsrf,is_lic,is_ter,RG,RV,RD,RCPD,RLSTT,RLVTT,RTT)
    19191922       CALL lscp_ini(pdtphys,ok_ice_sursat,RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT,RD,RG)
    19201923       CALL blowing_snow_ini(prt_level,lunout, &
     
    37773780               ALE,ALP, &
    37783781               sig1,w01, &
    3779                d_t_con,d_q_con,d_u_con,d_v_con,d_tr, &
     3782               d_t_con,d_q_con,fqcomp,d_u_con,d_v_con,d_tr, &
    37803783               rain_con, snow_con, ibas_con, itop_con, sigd, &
    37813784               ema_cbmf,plcl,plfc,wbeff,convoccur,upwd,dnwd,dnwd0, &
     
    37883791               ftd,fqd,lalim_conv,wght_th, &
    37893792               ev, ep,epmlmMm,eplaMm, &
    3790                wdtrainA, wdtrainS, wdtrainM,wght_cvfd,qtc_cv,sigt_cv, &
     3793               wdtrainA, wdtrainS, wdtrainM,wght_cvfd,qtc_cv,sigt_cv,detrain_cv, &
    37913794               tau_cld_cv,coefw_cld_cv,epmax_diag &
    37923795#ifdef ISO
     
    38403843          clwcon0=qcondc
    38413844          pmfu(:,:)=upwd(:,:)+dnwd(:,:)
     3845          fm_cv(:,:)=upwd(:,:)+dnwd(:,:)+dnwd0(:,:)
    38423846          !
    38433847          !jyg<
     
    46884692    ENDDO
    46894693
    4690     CALL  calcratqs(klon,klev,prt_level,lunout,        &
     4694    CALL ratqs_main(klon,klev,nbsrf,prt_level,lunout,        &
    46914695         iflag_ratqs,iflag_con,iflag_cld_th,pdtphys,  &
    46924696         ratqsbas,ratqshaut,ratqsp0, ratqsdp, &
     4697         pctsrf,s_pblh,zstd, &
    46934698         tau_ratqs,fact_cldcon,wake_s, wake_deltaq,   &
    46944699         ptconv,ptconvth,clwcon0th, rnebcon0th,     &
    4695          paprs,pplay,t_seri,q_seri, qtc_cv, sigt_cv, zqsat, &
    4696          pbl_tke(:,:,is_ave),tke_dissip_ave,l_mix_ave,wprime_ave,t2m,q2m,fm_therm,cell_area, &
    4697          ratqs,ratqsc,ratqs_inter)
     4700         paprs,pplay,t_seri,q_seri, &
     4701         qtc_cv, sigt_cv,detrain_cv,fm_cv,fqd,fqcomp,sigd,zqsat, &
     4702         omega,pbl_tke(:,:,is_ave),tke_dissip_ave,l_mix_ave,wprime_ave, &
     4703         t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area, &
     4704         ratqs,ratqsc,ratqs_inter_)
    46984705
    46994706    !
     
    62066213#endif
    62076214
     6215
    62086216!===============================================================
    62096217!            Additional tendency of TKE due to orography
Note: See TracChangeset for help on using the changeset viewer.