Changeset 2201


Ignore:
Timestamp:
Feb 10, 2015, 3:23:19 PM (9 years ago)
Author:
crio
Message:

Expérience du tube de dentifrice: Ajout d'un terme de grande-échelle dans
la fermeture du schéma de convection. La fraction de la convergence
grande-échelle de masse au LFC ajoutée au flux de masse à la base calculé
par la fermeture en ALP est controlée par coef_clos_ls lu dans physiq.def
(valeur comprise entre 0 et 1, 0 par défaut).
Tube of toothpaste experiment: Additional large-scale term in the closure
formulation of the deep convection scheme. The fraction of the large-scale
convergence of mass at LFC additioned to the cloud-base mass-flux given by
the ALP closure is controlled by coef_clos_ls read in physiq.def (value
between 0 and 1, 0 by default).

Location:
LMDZ5/trunk/libf/phylmd
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/YOMCST2.h

    r1907 r2201  
    33      REAL  gammas, alphas, betas, Fmax, qqa1, qqa2, qqa3, scut
    44      REAL  Qcoef1max,Qcoef2max,Supcrit1,Supcrit2
     5      REAL coef_clos_ls
    56!
    67      COMMON/YOMCST2/gammas,    alphas, betas, Fmax, scut,              &
     
    89     &               Qcoef1max,Qcoef2max,                               &
    910     &               Supcrit1, Supcrit2,                                &
    10      &               choice,iflag_mix
     11     &               choice,iflag_mix,coef_clos_ls
    1112!$OMP THREADPRIVATE(/YOMCST2/)
    1213!    --------------------------------------------------------------------
  • LMDZ5/trunk/libf/phylmd/concvl.F90

    r2007 r2201  
    2929  USE dimphy
    3030  USE infotrac, ONLY: nbtr
     31  USE phys_local_var_mod, ONLY: omega
    3132  IMPLICIT NONE
    3233! ======================================================================
     
    398399                    t, q, qs, t_wake, q_wake, qs_wake, s_wake, u, v, tra, &
    399400                    em_p, em_ph, &
    400                     Ale, Alp, &
     401                    Ale, Alp, omega, &
    401402                    em_sig1feed, em_sig2feed, em_wght, &
    402403                    iflag, d_t, d_q, d_u, d_v, d_tra, rain, kbas, ktop, &
  • LMDZ5/trunk/libf/phylmd/conf_phys_m.F90

    r2179 r2201  
    132132    integer,SAVE :: iflag_coupl_omp,iflag_clos_omp,iflag_wake_omp
    133133    integer,SAVE :: iflag_cvl_sigd_omp
     134    REAL, SAVE :: coef_clos_ls_omp
    134135    REAL, SAVE :: supcrit1_omp, supcrit2_omp
    135136    INTEGER, SAVE :: iflag_mix_omp
     
    13431344    iflag_clos_omp = 1
    13441345    call getin('iflag_clos',iflag_clos_omp)
     1346    !
     1347    !Config Key  = coef_clos_ls
     1348    !Config Desc = 
     1349    !Config Def  = 0
     1350    !Config Help =
     1351    !
     1352    coef_clos_ls_omp = 0.
     1353    call getin('coef_clos_ls',coef_clos_ls_omp)
     1354
    13451355    !
    13461356    !Config Key  = iflag_cvl_sigd
     
    19461956    iflag_clos = iflag_clos_omp
    19471957    iflag_wake = iflag_wake_omp
     1958    coef_clos_ls = coef_clos_ls_omp
    19481959    alp_offset = alp_offset_omp
    19491960    iflag_cvl_sigd = iflag_cvl_sigd_omp
     
    21352146    write(lunout,*)' iflag_thermals_closure = ', iflag_thermals_closure
    21362147    write(lunout,*)' iflag_clos = ', iflag_clos
     2148    write(lunout,*)' coef_clos_ls = ', coef_clos_ls
    21372149    write(lunout,*)' type_run = ',type_run
    21382150    write(lunout,*)' ok_cosp = ',ok_cosp
  • LMDZ5/trunk/libf/phylmd/cv3a_compress.F90

    r1992 r2201  
    44    th1_wake, tra1, h1, lv1, lf1, cpn1, p1, ph1, tv1, tp1, tvp1, clw1, &
    55    h1_wake, lv1_wake, lf1_wake, cpn1_wake, tv1_wake, sig1, w01, ptop21, &
    6     ale1, alp1, iflag, nk, icb, icbs, plcl, tnk, qnk, gznk, hnk, unk, vnk, &
     6    ale1, alp1, omega1, iflag, nk, icb, icbs, plcl, tnk, qnk, gznk, hnk, unk, vnk, &
    77    wghti, pbase, buoybase, t, q, qs, t_wake, q_wake, qs_wake, s_wake, u, v, &
    88    gz, th, th_wake, tra, h, lv, lf, cpn, p, ph, tv, tp, tvp, clw, h_wake, &
    9     lv_wake, lf_wake, cpn_wake, tv_wake, sig, w0, ptop2, ale, alp)
     9    lv_wake, lf_wake, cpn_wake, tv_wake, sig, w0, ptop2, ale, alp, omega)
    1010  ! **************************************************************
    1111  ! *
     
    4040  REAL sig1(len, nd), w01(len, nd), ptop21(len)
    4141  REAL ale1(len), alp1(len)
     42  REAL omega1(len,nd)
    4243
    4344  ! outputs:
     
    6061  REAL sig(len, nd), w0(len, nd), ptop2(len)
    6162  REAL ale(len), alp(len)
     63  REAL omega(len,nd)
    6264
    6365  ! local variables:
     
    102104        sig(nn, k) = sig1(i, k)
    103105        w0(nn, k) = w01(i, k)
     106        omega(nn, k) = omega1(i, k)
    104107      END IF
    105108    END DO
  • LMDZ5/trunk/libf/phylmd/cv3p1_closure.F90

    r1992 r2201  
    33
    44SUBROUTINE cv3p1_closure(nloc, ncum, nd, icb, inb, pbase, plcl, p, ph, tv, &
    5     tvp, buoy, supmax, ok_inhib, ale, alp, sig, w0, ptop2, cape, cin, m, &
     5    tvp, buoy, supmax, ok_inhib, ale, alp, omega,sig, w0, ptop2, cape, cin, m, &
    66    iflag, coef, plim1, plim2, asupmax, supmax0, asupmaxmin, cbmf, plfc, &
    77    wbeff)
     
    3737  LOGICAL ok_inhib ! enable convection inhibition by dryness
    3838  REAL ale(nloc), alp(nloc)
     39  REAL omega(nloc,nd)
    3940
    4041  ! input/output:
     
    5253
    5354  ! local variables:
    54   INTEGER il, i, j, k, icbmax, i0(nloc)
     55  INTEGER il, i, j, k, icbmax, i0(nloc), klfc
    5556  REAL deltap, fac, w, amu
    5657  REAL rhodp
     
    523524  END DO
    524525
     526!CR:Compute k at plfc
     527  DO k=1,nl
     528     DO il=1,ncum
     529        if ((plfc(il).lt.ph(il,k)).and.(plfc(il).ge.ph(il,k+1))) then
     530           klfc=k
     531        endif
     532     ENDDO
     533  ENDDO
     534!RC
    525535
    526536  DO il = 1, ncum
     
    528538    ! c       cbmf1(il) = alp2(il)/(0.5*wb*wb-Cin(il))
    529539    cbmf1(il) = alp2(il)/(2.*wbeff(il)*wbeff(il)-cin(il))
     540!CR: Add large-scale component to the mass-flux
     541!encore connu sous le nom "Experience du tube de dentifrice"
     542    if (coef_clos_ls.gt.0.) then
     543       cbmf1(il) = cbmf1(il) - coef_clos_ls*min(0.,1./RG*omega(il,klfc))
     544    endif
     545!RC
    530546    IF (cbmf1(il)==0 .AND. alp2(il)/=0.) THEN
    531547      WRITE (lunout, *) 'cv3p1_closure cbmf1=0 and alp NE 0 il alp2 alp cin ' &
  • LMDZ5/trunk/libf/phylmd/cva_driver.F90

    r2079 r2201  
    77                      u1, v1, tra1, &
    88                      p1, ph1, &
    9                       Ale1, Alp1, &
     9                      Ale1, Alp1, omega1, &
    1010                      sig1feed1, sig2feed1, wght1, &
    1111                      iflag1, ft1, fq1, fu1, fv1, ftra1, &
     
    178178  REAL Ale1(len)
    179179  REAL Alp1(len)
     180  REAL omega1(len,nd)
    180181  REAL sig1feed1 ! pressure at lower bound of feeding layer
    181182  REAL sig2feed1 ! pressure at upper bound of feeding layer
     
    455456  REAL supmax(nloc, klev)
    456457  REAL Ale(nloc), Alp(nloc), coef_clos(nloc)
     458  REAL omega(nloc,klev)
    457459  REAL sigd(nloc)
    458460! real mp(nloc,klev), qp(nloc,klev), up(nloc,klev), vp(nloc,klev)
     
    776778                         h1_wake, lv1_wake, lf1_wake, cpn1_wake, tv1_wake, &
    777779                         sig1, w01, ptop21, &
    778                          Ale1, Alp1, &
     780                         Ale1, Alp1, omega1, &
    779781                         iflag, nk, icb, icbs, &
    780782                         plcl, tnk, qnk, gznk, hnk, unk, vnk, &
     
    786788                         h_wake, lv_wake, lf_wake, cpn_wake, tv_wake, &
    787789                         sig, w0, ptop2, &
    788                          Ale, Alp)
     790                         Ale, Alp, omega)
    789791
    790792! print*,'tv ',tv
     
    877879        CALL cv3p1_closure(nloc, ncum, nd, icb, inb, &         ! na->nd
    878880                           pbase, plcl, p, ph, tv, tvp, buoy, &
    879                            supmax, ok_inhib, Ale, Alp, &
     881                           supmax, ok_inhib, Ale, Alp, omega, &
    880882                           sig, w0, ptop2, cape, cin, m, iflag, coef_clos, &
    881883                           Plim1, plim2, asupmax, supmax0, &
Note: See TracChangeset for help on using the changeset viewer.