SUBROUTINE CONVECT ( ND, NL, DELT, IFLAG, PRECIP, WD, TPRIME, QPRIME, CBMF )

Argument Definitions (+ indicates altered content)
INTEGER           +IFLAG,      ND,         NL
REAL              +CBMF,       DELT,      +PRECIP,    +QPRIME
REAL              +TPRIME,    +WD
Description
                       SUBROUTINE CONVECT                        ** 
                          VERSION 4.3c                           ** 
                          20 May, 2002                           ** 
                          Kerry Emanuel                          ** 
 
 
 
******************************************************************* 
C. Forster, November 2003 - May 2004: 
 
The subroutine has been downloaded from Kerry Emanuel's homepage, 
where further infos on the convection scheme can be found 
http://www-paoc.mit.edu/~emanuel/home.html 
 
The following changes have been made to integrate this subroutine 
into FLEXPART 
 
Putting most of the variables in a new common block 
renaming eps to eps0 because there is some eps already in includepa 
 
removing the arrays U,V,TRA and related arrays 
 
renaming the original arrays T,Q,QS,P,PH to 
TCONV,QCONV,QSCONV,PCONV_HPA,PHCONV_HPA 
 
Initialization of variables has been put into parameter statements 
of assignment of values at each call, in order to save computation 
 
 
*** On input:      *** 
 
 T:   Array of absolute temperature (K) of dimension ND, with first 
       index corresponding to lowest model level. Note that this ar 
       will be altered by the subroutine if dry convective adjustme 
       occurs and if IPBL is not equal to 0. 
 
 Q:   Array of specific humidity (gm/gm) of dimension ND, with firs 
        index corresponding to lowest model level. Must be defined 
        at same grid levels as T. Note that this array will be alte 
        if dry convective adjustment occurs and if IPBL is not equa 
 
 QS:  Array of saturation specific humidity of dimension ND, with f 
        index corresponding to lowest model level. Must be defined 
        at same grid levels as T. Note that this array will be alte 
        if dry convective adjustment occurs and if IPBL is not equa 
 
 U:   Array of zonal wind velocity (m/s) of dimension ND, witth fir 
        index corresponding with the lowest model level. Defined at 
        same levels as T. Note that this array will be altered if 
        dry convective adjustment occurs and if IPBL is not equal t 
 
 V:   Same as U but for meridional velocity. 
 
 TRA: Array of passive tracer mixing ratio, of dimensions (ND,NTRA) 
        where NTRA is the number of different tracers. If no 
        convective tracer transport is needed, define a dummy 
        input array of dimension (ND,1). Tracers are defined at 
        same vertical levels as T. Note that this array will be alt 
        if dry convective adjustment occurs and if IPBL is not equa 
 
 P:   Array of pressure (mb) of dimension ND, with first 
        index corresponding to lowest model level. Must be defined 
        at same grid levels as T. 
 
 PH:  Array of pressure (mb) of dimension ND+1, with first index 
        corresponding to lowest level. These pressures are defined 
        levels intermediate between those of P, T, Q and QS. The fi 
        value of PH should be greater than (i.e. at a lower level t 
        the first value of the array P. 
 
 ND:  The dimension of the arrays T,Q,QS,P,PH,FT and FQ 
 
 NL:  The maximum number of levels to which convection can 
        penetrate, plus 1. 
        NL MUST be less than or equal to ND-1. 
 
 NTRA:The number of different tracers. If no tracer transport 
        is needed, set this equal to 1. (On most compilers, setting 
        NTRA to 0 will bypass tracer calculation, saving some CPU.) 
 
 DELT: The model time step (sec) between calls to CONVECT 
 
 
***   On Output:         *** 
 
 IFLAG: An output integer whose value denotes the following: 
 
            VALUE                        INTERPRETATION 
            -----                        -------------- 
              0               No moist convection; atmosphere is no 
                              unstable, or surface temperature is l 
                              than 250 K or surface specific humidi 
                              is non-positive. 
 
              1               Moist convection occurs. 
 
              2               No moist convection: lifted condensat 
                              level is above the 200 mb level. 
 
              3               No moist convection: cloud base is hi 
                              then the level NL-1. 
 
              4               Moist convection occurs, but a CFL co 
                              on the subsidence warming is violated 
                              does not cause the scheme to terminat 
 
 FT:   Array of temperature tendency (K/s) of dimension ND, defined 
         grid levels as T, Q, QS and P. 
 
 FQ:   Array of specific humidity tendencies ((gm/gm)/s) of dimensi 
         defined at same grid levels as T, Q, QS and P. 
 
 FU:   Array of forcing of zonal velocity (m/s^2) of dimension ND, 
         defined at same grid levels as T. 
 
 FV:   Same as FU, but for forcing of meridional velocity. 
 
 FTRA: Array of forcing of tracer content, in tracer mixing ratio p 
         second, defined at same levels as T. Dimensioned (ND,NTRA) 
 
 PRECIP: Scalar convective precipitation rate (mm/day). 
 
 WD:    A convective downdraft velocity scale. For use in surface 
         flux parameterizations. See convect.ps file for details. 
 
 TPRIME: A convective downdraft temperature perturbation scale (K). 
          For use in surface flux parameterizations. See convect.ps 
          file for details. 
 
 QPRIME: A convective downdraft specific humidity 
          perturbation scale (gm/gm). 
          For use in surface flux parameterizations. See convect.ps 
          file for details. 
 
 CBMF:   The cloud base mass flux ((kg/m**2)/s). THIS SCALAR VALUE 
          BE STORED BY THE CALLING PROGRAM AND RETURNED TO CONVECT 
          ITS NEXT CALL. That is, the value of CBMF must be "rememb 
          by the calling program between calls to CONVECT. 
 
 
 
***  THE PARAMETER NA SHOULD IN GENERAL BE GREATER THAN   *** 
***                OR EQUAL TO  ND + 1                    ***
Source file:convect43c.f
Intrinsic Functions Called
GENERIC            ABS,        MAX,        MIN,        SQRT
External Functions and Subroutines Called
SUBROUTINE         TLIFT
Parameter Variables Used
INTEGER            IDIFFNORM          (IDIFFNORM = 10800)
INTEGER            NXMAX              (NXMAX = 361)
INTEGER            NYMAX              (NYMAX = 181)
INTEGER            NUVZMAX            (NUVZMAX = 61)
INTEGER            NCONVLEVMAX        (NCONVLEVMAX = NUVZMAX-1)
INTEGER            NA                 (NA = NCONVLEVMAX+1)
INTEGER            MAXNESTS           (MAXNESTS = 1)
INTEGER            NXMAXN             (NXMAXN = 1)
INTEGER            NYMAXN             (NYMAXN = 1)
INTEGER            JPACK              (JPACK = 4*NXMAX*NYMAX)
INTEGER            MAXSPEC            (MAXSPEC = 1)
INTEGER            MINORIG            (MINORIG = 1)
REAL               PI                 (PI = 3.14159265)
REAL               ELCRIT             (ELCRIT = .0011)
REAL               TLCRIT             (TLCRIT = -55.0)
REAL               ENTP               (ENTP = 1.5)
REAL               SIGD               (SIGD = 0.05)
REAL               SIGS               (SIGS = 0.12)
REAL               OMTRAIN            (OMTRAIN = 50.0)
REAL               OMTSNOW            (OMTSNOW = 5.5)
REAL               COEFFR             (COEFFR = 1.0)
REAL               COEFFS             (COEFFS = 0.8)
REAL               BETA               (BETA = 10.0)
REAL               DTMAX              (DTMAX = 0.9)
REAL               ALPHA              (ALPHA = 0.025)
REAL               DAMP               (DAMP = 0.1)
REAL               CPD                (CPD = 1005.7)
REAL               CPV                (CPV = 1870.0)
REAL               CL                 (CL = 2500.0)
REAL               RV                 (RV = 461.5)
REAL               RD                 (RD = 287.04)
REAL               LV0                (LV0 = 2.501E6)
REAL               G                  (G = 9.81)
REAL               ROWL               (ROWL = 1000.0)
REAL               CPVMCL             (CPVMCL = CL-CPV)
REAL               EPS0               (EPS0 = RD/RV)
REAL               EPSI               (EPSI = 1./EPS0)
REAL               GINV               (GINV = 1.0/G)
REAL               EPSILON            (EPSILON = 1.E-20)
Local Variables (+ indicates altered content)
INTEGER           +I,         +ICB,       +IHMIN,     +INB
INTEGER           +INB1,      +J,         +JTT,       +K
INTEGER           +NENT(NA),  +NK
REAL              +AD,        +AFAC,      +AHMAX,     +AHMIN
REAL              +ALT,       +ALTEM,     +AM,        +AMP1
REAL              +ANUM,      +ASIJ,      +AWAT,      +B6
REAL              +BF2,       +BSUM,      +BY,        +BYP
REAL              +C6,        +CAPE,      +CAPEM,     +CBMFOLD
REAL              +CHI,        CLW(NA),   +COEFF,     +CPINV
REAL              +CPN(NA),   +CWAT,      +DAMPS,     +DBO
REAL              +DBOSUM,    +DEFRAC,    +DEI,       +DELM
REAL              +DELP,      +DELT0,     +DELTI,     +DENOM
REAL              +DHDP,      +DPINV,     +DTMA,      +DTMIN
REAL              +DTPBL,     +ELACRIT,   +ELIJ(NA,NA)
REAL              +ENTS,      +EP(NA),    +EPMAX,     +EVAP(NA)
REAL              +FAC,       +FDOWN(NA), +FQOLD,     +FRAC
REAL              +FTOLD,     +FUP(NA),   +GZ(NA),    +H(NA)
REAL              +HM(NA),    +HP(NA),    +LV(NA),    +LVCP(NA)
REAL              +M(NA),     +MENT(NA,NA),           +MP(NA)
REAL              +PLCL,      +QENT(NA,NA),           +QP(NA)
REAL              +QP1,       +QSM,       +QSTM,      +QTI
REAL              +RAT,       +RDCP,      +REVAP,     +RH
REAL              +SCRIT,     +SIGP(NA),  +SIGT,      +SIJ(NA,NA)
REAL              +SJMAX,     +SJMIN,     +SMID,      +SMIN
REAL              +STEMP,     +TCA,       +TH(NA),     TP(NA)
REAL              +TV(NA),    +TVAPLCL,   +TVP(NA),   +TVPPLCL
REAL              +TVX,       +TVY,       +WATER(NA), +WDTRAIN
REAL              +WT(NA)
Referenced Common Block Variables (+ indicates altered content)
CONVECTBLOCK       INTEGER           +NCONVTOP
CONVECTBLOCK       REAL              +FMASS(NCONVLEVMAX,NCONVLEVMAX)
CONVECTBLOCK       REAL              +FQ(NCONVLEVMAX)
CONVECTBLOCK       REAL              +FT(NCONVLEVMAX)
CONVECTBLOCK       REAL               PCONV_HPA(NCONVLEVMAX)
CONVECTBLOCK       REAL               PHCONV_HPA(NA)
CONVECTBLOCK       REAL               QCONV(NA)
CONVECTBLOCK       REAL               QSCONV(NA)
CONVECTBLOCK       REAL              +SUB(NCONVLEVMAX)
CONVECTBLOCK       REAL               TCONV(NA)

SUBROUTINE TLIFT ( GZ, ICB, NK, TVP, TPK, CLW, ND, NL, KK )

Argument Definitions (+ indicates altered content)
INTEGER            ICB,        KK,         ND,         NK
INTEGER            NL
REAL              +CLW(ND),    GZ(ND),    +TPK(ND),   +TVP(ND)
Description
----------------------------------------------------------------------
Source file:convect43c.f
Intrinsic Functions Called
GENERIC            EXP,        LOG,        MAX
Parameter Variables Used
INTEGER            IDIFFNORM          (IDIFFNORM = 10800)
INTEGER            NXMAX              (NXMAX = 361)
INTEGER            NYMAX              (NYMAX = 181)
INTEGER            NUVZMAX            (NUVZMAX = 61)
INTEGER            NCONVLEVMAX        (NCONVLEVMAX = NUVZMAX-1)
INTEGER            NA                 (NA = NCONVLEVMAX+1)
INTEGER            MAXNESTS           (MAXNESTS = 1)
INTEGER            NXMAXN             (NXMAXN = 1)
INTEGER            NYMAXN             (NYMAXN = 1)
INTEGER            JPACK              (JPACK = 4*NXMAX*NYMAX)
INTEGER            MAXSPEC            (MAXSPEC = 1)
REAL               PI                 (PI = 3.14159265)
REAL               CPD                (CPD = 1005.7)
REAL               CPV                (CPV = 1870.0)
REAL               CL                 (CL = 2500.0)
REAL               RV                 (RV = 461.5)
REAL               RD                 (RD = 287.04)
REAL               LV0                (LV0 = 2.501E6)
REAL               CPVMCL             (CPVMCL = CL-CPV)
REAL               EPS0               (EPS0 = RD/RV)
REAL               EPSI               (EPSI = 1./EPS0)
Local Variables (+ indicates altered content)
INTEGER           +I,         +J,         +NSB,       +NST
REAL              +AH0,       +AHG,       +ALV,       +CPINV
REAL              +CPP,       +DENOM,     +ES,        +QG
REAL              +RG,        +S,         +TC,        +TG
Referenced Common Block Variables (+ indicates altered content)
CONVECTBLOCK       REAL               PCONV_HPA(NCONVLEVMAX)
CONVECTBLOCK       REAL               QCONV(NA)
CONVECTBLOCK       REAL               QSCONV(NA)
CONVECTBLOCK       REAL               TCONV(NA)