Ignore:
Timestamp:
Nov 12, 2019, 11:55:58 AM (5 years ago)
Author:
aboissinot
Message:

Cleanup thermal plums model subroutines
In thermcell_flux, "bidouilles" are modified:

  • now the plumes stop when the updraft fraction is greater than alpha_max
  • e > e_max is no longer permitted
  • b <= incoming mass flux is checked last
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/libf/phystd/thermcell_dq.F90

    r2144 r2177  
    33!
    44SUBROUTINE thermcell_dq(ngrid,nlay,ptimestep,fm,entr,detr,masse,              &
    5                         q,dq,qa,lmin)
     5                        q,dq,qa,lmin,lmax)
    66     
    77     
     
    1616
    1717!  Modif 2019/04 (AB alexandre.boissinot@lmd.jussieu.fr)
    18 !     dqimpl = 1 : implicit scheme
    19 !     dqimpl = 0 : explicit scheme
     18!     dqimpl = true : implicit scheme
     19!     dqimpl = false : explicit scheme
    2020
    2121!===============================================================================
     
    3434!     -------
    3535     
    36       INTEGER ngrid, nlay
    37       INTEGER lmin(ngrid)
     36      INTEGER, INTENT(in) :: ngrid
     37      INTEGER, INTENT(in) :: nlay
     38      INTEGER, INTENT(in) :: lmin(ngrid)
     39      INTEGER, INTENT(in) :: lmax(ngrid)
    3840     
    39       REAL ptimestep
    40       REAL masse(ngrid,nlay)
    41       REAL fm(ngrid,nlay+1)
    42       REAL entr(ngrid,nlay)
    43       REAL detr(ngrid,nlay)
    44       REAL q(ngrid,nlay)
     41      REAL, INTENT(in) :: ptimestep
     42      REAL, INTENT(in) :: masse(ngrid,nlay)
     43      REAL, INTENT(in) :: fm(ngrid,nlay+1)
     44      REAL, INTENT(in) :: entr(ngrid,nlay)
     45      REAL, INTENT(in) :: detr(ngrid,nlay)
    4546     
    4647!     Outputs:
    4748!     --------
    4849     
    49       REAL dq(ngrid,nlay)
    50       REAL qa(ngrid,nlay)
     50      REAL, INTENT(inout) :: q(ngrid,nlay)
     51      REAL, INTENT(out) :: dq(ngrid,nlay)
     52      REAL, INTENT(out) :: qa(ngrid,nlay)
    5153     
    5254!     Local:
     
    8284            cfl = max(cfl, fm(ig,l) / zzm)
    8385           
    84             IF (entr(ig,l).gt.zzm) THEN
     86            IF (entr(ig,l) > zzm) THEN
    8587               print *, 'ERROR: entrainment is greater than the layer mass!'
    8688               print *, 'ig,l,entr', ig, l, entr(ig,l)
    87                print *, 'lmin', lmin(ig)
     89               print *, 'lmin,lmax', lmin(ig), lmax(ig)
    8890               print *, '-------------------------------'
    8991               print *, 'entr*dt,mass', entr(ig,l)*ptimestep, masse(ig,l)
Note: See TracChangeset for help on using the changeset viewer.