*IF DEF,A05_2A                                                             CONVEC2A.2      
C ******************************COPYRIGHT******************************    GTS2F400.1243   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.1244   
C                                                                          GTS2F400.1245   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.1246   
C restrictions as set forth in the contract.                               GTS2F400.1247   
C                                                                          GTS2F400.1248   
C                Meteorological Office                                     GTS2F400.1249   
C                London Road                                               GTS2F400.1250   
C                BRACKNELL                                                 GTS2F400.1251   
C                Berkshire UK                                              GTS2F400.1252   
C                RG12 2SZ                                                  GTS2F400.1253   
C                                                                          GTS2F400.1254   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.1255   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.1256   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.1257   
C Modelling at the above address.                                          GTS2F400.1258   
C ******************************COPYRIGHT******************************    GTS2F400.1259   
C                                                                          GTS2F400.1260   
CLL  SUBROUTINE CONVECT------------------------------------------------    CONVEC2A.3      
CLL                                                                        CONVEC2A.4      
CLL  PURPOSE : TOP LEVEL OF THE MASS FLUX CONVECTION SCHEME.               CONVEC2A.5      
CLL            LOOPS ROUND MODEL LEVELS FORM SURFACE UPWARDS               CONVEC2A.6      
CLL            A STABILITY TEST IS CARRIED OUT TO DETERMINE WHICH          CONVEC2A.7      
CLL            POINTS ARE TOO STABLE FOR CONVECTION TO OCCUR               CONVEC2A.8      
CLL            SUBROUTINE LIFTP AND CONVC2 ARE CALLED TO CALCULATE         CONVEC2A.9      
CLL            THE PARCEL ASCENT                                           CONVEC2A.10     
CLL            SUBROUTINE POUR IS CALLED TO CALCULATE THE EVAPORATION      CONVEC2A.11     
CLL            OF FALLING PRECIPITATION                                    CONVEC2A.12     
CLL            SUBROUTINE DD_CALL CALLS THE DOWNDRAUGHT CODE               CONVEC2A.13     
CLL            SUBROUTINE CORNRG IS CALLED TO CONSERVE MOIST STATIC        CONVEC2A.14     
CLL            ENERGY ONCE OTHER CALCULATIONS ARE COMPLETE                 CONVEC2A.15     
CLL                                                                        CONVEC2A.16     
CLL  SUITABLE FOR SINGLE COLUMN MODEL USE                                  CONVEC2A.17     
CLL                                                                        CONVEC2A.18     
CLL  CODE REWORKED FOR CRAY Y-MP BY D.GREGORY AUTUMN/WINTER 1989/90        CONVEC2A.19     
CLL                                                                        CONVEC2A.20     
CLL  MODEL            MODIFICATION HISTORY FROM MODEL VERSION 3.0:         CONVEC2A.21     
CLL VERSION  DATE                                                          CONVEC2A.22     
CLL  3.2  8/07/93 : added convective cloud condensed water diagnostic      PI080793.31     
CLL               : P Inness                                               PI080793.32     
CLL  3.4  11/03/94  Add lowest conv.cloud diagnostics.  R.T.H.Barnes.      ARN2F304.169    
CLL                                                                        ARN2F304.170    
CLL  3.4  21/09/94  Standard deviation of surface layer turbulent          ARN2F304.171    
CLL                 fluctuations of temperature and humidity input         ARN2F304.172    
CLL                                                     R.N.B.Smith.       ARN2F304.173    
CLL                                                                        ARN2F304.174    
CLL                                                                        CONVEC2A.23     
CLL  3.4  06/08/94  BTERM initialised to make downdraught scheme           AAD1F304.78     
CLL                 reproducible when call to CONVECT macrotasked.         AAD1F304.79     
CLL                 Authors: A.Dickinson, D.Salmond, Reviewer: R.Barnes    AAD1F304.80     
CLL                                                                        CONVEC2A.24     
CLL  4.0  5/05/95   Added CAPE diagnostic. Pete Inness.                    API2F400.158    
CLL                                                                        API2F400.159    
CLL  4.0  5/05/95   References to surface fluxes removed as not            API2F400.160    
CLL                 required at this version. Pete Inness.                 API2F400.161    
CLL                                                                        API2F400.162    
CLL   4.2    Oct. 96  T3E migration: *DEF CRAY removed                     GSS1F402.91     
CLL                   (was used to switch on WHENIMD)                      GSS1F402.92     
CLL                                    S.J.Swarbrick                       GSS1F402.93     
CLL  4.2   26/9/96  : Four new diagnostics added  -                        AJX1F402.131    
CLL                   (i)  Gridbox mean conv. cloud water                  AJX1F402.132    
CLL                   (ii) Gridbox mean conv. cloud liquid water path      AJX1F402.133    
CLL                   (iii)Cloud base pressure weighted by convective      AJX1F402.134    
CLL                        cloud amount (CCA)                              AJX1F402.135    
CLL                   (iv) Cloud top pressure weighted by CCA              AJX1F402.136    
CLL                                                          J.Cairns      AJX1F402.137    
CLL  4.3  Feb. 97   T3E optimisation: introduce recip_pstar,               GSS1F403.78     
CLL                   eliminate copying into workspace arrays              GSS1F403.79     
CLL                   for CORENG call.         S.J.Swarbrick               GSS1F403.80     
!LL  4.4  Oct 97    Add halo mask to stop redundant calculations           AAD2F404.157    
!LL                                               Alan Dickinson           AAD2F404.158    
CLL  4.5  Jul. 98   Kill the IBM specific lines (JCThil)                   AJC1F405.1      
!LL  4.5  20/02/98  Remove redundant code. A. Dickinson                    ADR1F405.1      
CLL                                                                        AJX1F402.138    
CLL  PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3       CONVEC2A.25     
CLL  VERSION NO. 4  Dated 05/02/92                                         CONVEC2A.26     
CLL                                                                        CONVEC2A.27     
CLL LOGICAL COMPONENTS INCLUDED:                                           CONVEC2A.28     
CLL                                                                        CONVEC2A.29     
CLL  SYSTEM TASK : P27                                                     CONVEC2A.30     
CLL                                                                        CONVEC2A.31     
CLL  DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER P27                 CONVEC2A.32     
CLL                                                                        CONVEC2A.33     
CLLEND-----------------------------------------------------------------    CONVEC2A.34     
C                                                                          CONVEC2A.35     
C*L  ARGUMENTS---------------------------------------------------------    CONVEC2A.36     
C                                                                          CONVEC2A.37     

      SUBROUTINE CONVECT (NP_FIELD,NPNTS,NLEV,TH,Q,PSTAR,BLAND,DTHBYDT,     3,46CONVEC2A.38     
     &                    DQBYDT,RAIN,SNOW,CCA,ICCB,ICCT,CCLWP,            ARN2F304.175    
     &                    CCW,ICCBPxCCA,ICCTPxCCA,GBMCCWP,GBMCCW,          AJX1F402.139    
     &                    LCBASE,LCTOP,LCCA,LCCLWP,CAPE_OUT,               AJX1F402.140    
     &                    EXNER,AK,BK,AKM12,BKM12,DELAK,DELBK,TIMESTEP     AAD2F404.159    
*IF DEF,SCMA                                                               AJC0F405.154    
     &                   ,DTHUD,DTHDD,DQUD,DQDD                            AJC0F405.155    
*ENDIF                                                                     AJC0F405.156    
*IF DEF,MPP                                                                AAD2F404.160    
     &                    ,l_halo                                          AAD2F404.161    
*ENDIF                                                                     AAD2F404.162    
     &                    )                                                AAD2F404.163    
C                                                                          CONVEC2A.41     
      IMPLICIT NONE                                                        CONVEC2A.42     
C                                                                          CONVEC2A.43     
C                                                                          CONVEC2A.47     
C--------------------------------------------------------------------      CONVEC2A.48     
C MODEL CONSTANTS                                                          CONVEC2A.49     
C--------------------------------------------------------------------      CONVEC2A.50     
C                                                                          CONVEC2A.51     
*CALL PARXS                                                                CONVEC2A.52     
*CALL C_EPSLON                                                             CONVEC2A.53     
*CALL C_R_CP                                                               CONVEC2A.54     
*CALL XSBMIN                                                               CONVEC2A.55     
*CALL MPARB                                                                CONVEC2A.56     
*CALL DELTHST                                                              CONVEC2A.57     
*CALL C_LHEAT                                                              CONVEC2A.58     
*CALL MASSFC                                                               CONVEC2A.59     
C                                                                          CONVEC2A.60     
C---------------------------------------------------------------------     CONVEC2A.61     
C VECTOR LENGTHS AND LOOP COUNTERS                                         CONVEC2A.62     
C---------------------------------------------------------------------     CONVEC2A.63     
C                                                                          CONVEC2A.64     
      INTEGER NP_FIELD            ! LENGTH OF DATA (ALSO USED TO           CONVEC2A.65     
                                  ! SPECIFY STARTING POINT OF              CONVEC2A.66     
                                  ! DATA PASSED IN)                        CONVEC2A.67     
C                                                                          CONVEC2A.68     
      INTEGER NPNTS               ! IN FULL VECTOR LENGTH                  CONVEC2A.69     
C                                                                          CONVEC2A.70     
      INTEGER NLEV                ! IN NUMBER OF MODEL LAYERS              CONVEC2A.71     
C                                                                          CONVEC2A.72     
      INTEGER NCONV               ! NUMBER OF POINTS WHICH PASS            CONVEC2A.73     
                                  ! INITIAL STABILITY TEST IN LAYER K      CONVEC2A.74     
C                                                                          CONVEC2A.75     
      INTEGER NINIT               ! NUMBER OF POINTS AT WHICH              CONVEC2A.76     
                                  ! CONVECTION OCCURS IN LAYER K           CONVEC2A.77     
C                                                                          CONVEC2A.78     
      INTEGER NTERM               ! NUMBER OF CONVECTING POINTS IN         CONVEC2A.79     
                                  ! LAYER K AT WHICH CONVECTION IS         CONVEC2A.80     
                                  ! TERMINATING                            CONVEC2A.81     
C                                                                          CONVEC2A.82     
      INTEGER NCNLV               ! NUMBER OF POINTS AT WHICH CONVECTION   CONVEC2A.83     
                                  ! OCCURS AT SOME LAYER OF THE DOMAIN     CONVEC2A.84     
C                                                                          CONVEC2A.85     
      INTEGER I,K,KC              ! LOOP COUNTERS                          CONVEC2A.86     
C                                                                          CONVEC2A.87     
C                                                                          CONVEC2A.88     
C---------------------------------------------------------------------     CONVEC2A.89     
C VARIABLES WHICH ARE INPUT                                                CONVEC2A.90     
C---------------------------------------------------------------------     CONVEC2A.91     
C                                                                          CONVEC2A.92     
      LOGICAL BLAND(NP_FIELD)     ! IN LAND/SEA MASK                       CONVEC2A.93     
C                                                                          CONVEC2A.94     
      REAL PSTAR(NP_FIELD)        ! IN SURFACE PRESSURE (PA)               CONVEC2A.95     
C                                                                          CONVEC2A.96     
      REAL EXNER(NP_FIELD,NLEV+1) ! IN EXNER RATIO                         CONVEC2A.97     
C                                                                          CONVEC2A.98     
      REAL AK(NLEV),              ! IN HYBRID CO-ORDINATE COEFFICIENTS     CONVEC2A.99     
     *     BK(NLEV)               !    DEFINE PRESSURE AT MID-POINT        CONVEC2A.100    
                                  !    OF LAYER K                          CONVEC2A.101    
C                                                                          CONVEC2A.102    
      REAL AKM12(NLEV+1),         ! IN HYBRID CO-ORDINATE COEFFICIENTS     CONVEC2A.103    
     *     BKM12(NLEV+1)          !    TO DEFINE PRESSURE AT               CONVEC2A.104    
                                  !    LEVEL K-1/2                         CONVEC2A.105    
C                                                                          CONVEC2A.106    
      REAL DELAK(NLEV),           ! IN DIFFERENCE IN HYBRID CO-ORDINATE    CONVEC2A.107    
     *     DELBK(NLEV)            !    COEFFICIENTS ACROSS LAYER K         CONVEC2A.108    
C                                                                          CONVEC2A.109    
      REAL TIMESTEP               ! IN MODEL TIMESTEP (SECS)               CONVEC2A.110    
*IF DEF,MPP                                                                AAD2F404.164    
      LOGICAL l_halo(NP_FIELD)  ! IN:  Mask for halos                      AAD2F404.165    
*ENDIF                                                                     AAD2F404.166    
C                                                                          CONVEC2A.111    
C                                                                          CONVEC2A.112    
C---------------------------------------------------------------------     CONVEC2A.113    
C  VARIABLES WHICH ARE INPUT AND OUTPUT                                    CONVEC2A.114    
C---------------------------------------------------------------------     CONVEC2A.115    
C                                                                          CONVEC2A.116    
      REAL TH(NP_FIELD,NLEV)      ! INOUT                                  CONVEC2A.117    
                                  ! IN MODEL POTENTIAL TEMPERATURE (K)     CONVEC2A.118    
                                  ! OUT MODEL POTENTIAL TEMPERATURE        CONVEC2A.119    
                                  !     AFTER CONVECTION (K)               CONVEC2A.120    
C                                                                          CONVEC2A.121    
      REAL Q(NP_FIELD,NLEV)       ! INOUT                                  CONVEC2A.122    
                                  ! IN MODEL MIXING RATIO (KG/KG)          CONVEC2A.123    
                                  ! OUT MODEL MIXING RATIO AFTER           CONVEC2A.124    
                                  !     AFTER CONVECTION (KG/KG)           CONVEC2A.125    
C                                                                          CONVEC2A.126    
C                                                                          CONVEC2A.127    
C----------------------------------------------------------------------    CONVEC2A.128    
C VARIABLES WHICH ARE OUTPUT                                               CONVEC2A.129    
C----------------------------------------------------------------------    CONVEC2A.130    
C                                                                          CONVEC2A.131    
      REAL DTHBYDT(NP_FIELD,NLEV) ! OUT INCREMENTS TO POTENTIAL            CONVEC2A.132    
                                  !     TEMPERATURE DUE TO CONVECTION      CONVEC2A.133    
                                  !     (K/S)                              CONVEC2A.134    
C                                                                          CONVEC2A.135    
      REAL DQBYDT(NP_FIELD,NLEV)  ! OUT INCREMENTS TO MIXING RATIO         CONVEC2A.136    
                                  !     DUE TO CONVECTION (KG/KG/S)        CONVEC2A.137    
C                                                                          CONVEC2A.138    
*IF DEF,SCMA                                                               AJC0F405.157    
      Real DTHUD(NP_FIELD,NLEV)                                            AJC0F405.158    
      Real DTHDD(NP_FIELD,NLEV)                                            AJC0F405.159    
      Real DQUD(NP_FIELD,NLEV)                                             AJC0F405.160    
      Real DQDD(NP_FIELD,NLEV)                                             AJC0F405.161    
*ENDIF                                                                     AJC0F405.162    
      REAL RAIN(NP_FIELD)         ! OUT SURFACE CONVECTIVE RAINFALL        CONVEC2A.139    
                                  !     (KG/M**2/S)                        CONVEC2A.140    
C                                                                          CONVEC2A.141    
      REAL SNOW(NP_FIELD)         ! OUT SURFACE CONVECTIVE SNOWFALL        CONVEC2A.142    
                                  !     (KG/M**2/S)                        CONVEC2A.143    
C                                                                          CONVEC2A.144    
      REAL CCA(NP_FIELD)          ! OUT CONVECTIVE CLOUD AMOUNT (%)        CONVEC2A.145    
C                                                                          CONVEC2A.146    
      INTEGER ICCB(NP_FIELD)      ! OUT CONVECTIVE CLOUD BASE LEVEL        CONVEC2A.147    
C                                                                          CONVEC2A.148    
      INTEGER ICCT(NP_FIELD)      ! OUT CONVECTIVE CLOUD TOP LEVEL         CONVEC2A.149    
C                                                                          CONVEC2A.150    
      REAL CCLWP(NP_FIELD)        ! OUT CONDENSED WATER PATH (KG/M**2)     CONVEC2A.151    
C                                                                          CONVEC2A.152    
      REAL CCW(NP_FIELD,NLEV)     ! OUT CONVECTIVE CLOUD LIQUID WATER      PI080793.34     
                                  ! (G/KG) ON MODEL LEVELS                 PI080793.35     
C                                                                          PI080793.36     
      REAL ICCBPxCCA(NP_FIELD)    ! OUT CONV. CLD BASE PRESSURE x CCA      AJX1F402.141    
C                                                                          AJX1F402.142    
      REAL ICCTPxCCA(NP_FIELD)    ! OUT CONV. CLD TOP PRESSURE x CCA       AJX1F402.143    
C                                                                          AJX1F402.144    
      REAL GBMCCWP(NP_FIELD)      ! OUT GRIDBOX MEAN CCWP                  AJX1F402.145    
C                                                                          AJX1F402.146    
      REAL GBMCCW(NP_FIELD,NLEV)  ! OUT GRIDBOX MEAN CCW                   AJX1F402.147    
C                                                                          AJX1F402.148    
      REAL CAPE_OUT(NPNTS)        ! OUT SAVED VALUES OF CONVECTIVE         API2F400.165    
                                  !     AVAILABLE POTENTIAL ENERGY         API2F400.166    
                                  !     FOR DIAGNOSTIC OUTPUT (J/KG)       API2F400.167    
C                                                                          API2F400.168    
      REAL LCCA(NP_FIELD)         ! OUT LOWEST CONV.CLOUD AMOUNT (%)       ARN2F304.185    
C                                                                          ARN2F304.186    
      INTEGER LCBASE(NP_FIELD)    ! OUT LOWEST CONV.CLOUD BASE LEVEL       ARN2F304.187    
C                                                                          ARN2F304.188    
      INTEGER LCTOP(NP_FIELD)     ! OUT LOWEST CONV.CLOUD TOP LEVEL        ARN2F304.189    
C                                                                          ARN2F304.190    
      REAL LCCLWP(NP_FIELD)       ! OUT CONDENSED WATER PATH (KG/M**2)     ARN2F304.191    
                                  !     FOR LOWEST CONV.CLOUD              ARN2F304.192    
C                                                                          ARN2F304.193    
C----------------------------------------------------------------------    CONVEC2A.153    
C VARIABLES DEFINED LOCALLY                                                CONVEC2A.154    
C                                                                          CONVEC2A.155    
      REAL WORK(NPNTS,NLEV*2),   ! WORK SPACE                              CONVEC2A.291    
     *     WORK2(NPNTS,NLEV*2)                                             CONVEC2A.292    
      LOGICAL BWORK(NPNTS,4),    ! WORK SPACE FOR 'BIT' MASKS              CONVEC2A.293    
     *        BWORK2(NPNTS,4)                                              CONVEC2A.294    
C                                                                          API2F400.175    
      REAL CAPE(NPNTS)            ! CONVECTIVE AVAILABLE POTENTIAL         API2F400.176    
                                  ! ENERGY (J/KG)                          API2F400.177    
C                                                                          API2F400.178    
      REAL CAPE_C(NPNTS)          ! CAPE - COMPRESSED                      API2F400.179    
C                                                                          API2F400.180    
C                                                                          CONVEC2A.295    
      LOGICAL BCONV(NPNTS)       ! MASK FOR POINTS WHERE STABILITY         CONVEC2A.296    
                                  ! LOW ENOUGH FOR CONVECTION              CONVEC2A.297    
                                  ! TO OCCUR                               CONVEC2A.298    
C                                                                          CONVEC2A.299    
      REAL QSE(NPNTS,NLEV)       ! SATURATION MIXING RATIO OF CLOUD        CONVEC2A.300    
                                  ! ENVIRONMENT (KG/KG)                    CONVEC2A.301    
C                                                                          CONVEC2A.302    
      REAL TT(NPNTS)             ! TEMPORARY STORE FOR TEMPERATURE         CONVEC2A.303    
                                  ! IN CALCULATION OF SATURATION           CONVEC2A.304    
                                  ! MIXING RATIO (K)                       CONVEC2A.305    
C                                                                          CONVEC2A.306    
      REAL PT(NPNTS)             ! TEMPORARY STORE FOR PRESSURE            CONVEC2A.307    
                                  ! IN CALCULATION OF SATURATION           CONVEC2A.308    
                                  ! MIXING RATIO (PA)                      CONVEC2A.309    
C                                                                          CONVEC2A.310    
      REAL CCAC(NPNTS)            ! COMPRESSED VALUES OF CCA               CONVEC2A.311    
C                                                                          CONVEC2A.312    
      INTEGER ICCBC(NPNTS)        ! COMPRESSED VALUES OF CCB               CONVEC2A.313    
C                                                                          CONVEC2A.314    
      INTEGER ICCTC(NPNTS)        ! COMPRESSED VALUES OF CCT               CONVEC2A.315    
C                                                                          CONVEC2A.316    
      REAL TCW(NPNTS)             ! TOTAL CONDENSED WATER (KG/M**2/S)      CONVEC2A.317    
C                                                                          CONVEC2A.318    
      REAL TCWC(NPNTS)            ! COMPRESSED VALUES OF TCW               CONVEC2A.319    
C                                                                          CONVEC2A.320    
      REAL CCLWPC(NPNTS)          ! COMPRESSED VALUE OF CCLWP              CONVEC2A.321    
C                                                                          CONVEC2A.322    
      REAL LCCAC(NPNTS)           ! COMPRESSED VALUES OF LCCA              ARN2F304.202    
C                                                                          ARN2F304.203    
      INTEGER LCBASEC(NPNTS)      ! COMPRESSED VALUES OF LCBASE            ARN2F304.204    
C                                                                          ARN2F304.205    
      INTEGER LCTOPC(NPNTS)       ! COMPRESSED VALUES OF LCTOP             ARN2F304.206    
C                                                                          ARN2F304.207    
      REAL LCCLWPC(NPNTS)         ! COMPRESSED VALUE OF LCCLWP             ARN2F304.208    
C                                                                          ARN2F304.209    
      REAL DQSTHK(NPNTS)          ! GRADIENT OF SATURATION MIXING          CONVEC2A.323    
                                  ! RATIO OF CLOUD ENVIRONMENT WITH        CONVEC2A.324    
                                  ! POTENTIAL TEMPERATURE IN LAYER K       CONVEC2A.325    
                                  ! (KG/KG/K)                              CONVEC2A.326    
C                                                                          CONVEC2A.327    
      REAL DQSTHKP1(NPNTS)        ! GRADIENT OF SATURATION MIXING          CONVEC2A.328    
                                  ! RATIO OF CLOUD ENVIRONMENT WITH        CONVEC2A.329    
                                  ! POTENTIAL TEMPERATURE IN LAYER K+1     CONVEC2A.330    
                                  ! (KG/KG/K)                              CONVEC2A.331    
C                                                                          CONVEC2A.332    
      REAL PRECIP(NPNTS,NLEV)     ! AMOUNT OF PRECIPITATION                CONVEC2A.333    
                                  ! FROM EACH LAYER (KG/M*:2/S)            CONVEC2A.334    
C                                                                          CONVEC2A.335    
      REAL THPI(NPNTS)            ! INITIAL PARCEL POTENTIAL TEMPERATURE   CONVEC2A.336    
                                  ! (K)                                    CONVEC2A.337    
C                                                                          CONVEC2A.338    
      REAL QPI(NPNTS)             ! INITIAL PARCEL MIXING RATIO            CONVEC2A.339    
                                  ! (KG/KG)                                CONVEC2A.340    
C                                                                          CONVEC2A.341    
      REAL THP(NPNTS,NLEV)        ! PARCEL POTENTIAL TEMPERATURE           CONVEC2A.342    
                                  ! IN LAYER K (K)                         CONVEC2A.343    
C                                                                          CONVEC2A.344    
      REAL QP(NPNTS,NLEV)         ! PARCEL MIXING RATIO IN LAYER K         CONVEC2A.345    
                                  ! (KG/KG)                                CONVEC2A.346    
C                                                                          CONVEC2A.347    
      REAL XPK(NPNTS)             ! PARCEL CLOUD WATER IN LAYER K          CONVEC2A.348    
                                  ! (KG/KG)                                CONVEC2A.349    
C                                                                          CONVEC2A.350    
      REAL FLX(NPNTS,NLEV)        ! PARCEL MASSFLUX IN LAYER K (PA/S)      CONVEC2A.351    
C                                                                          CONVEC2A.352    
      LOGICAL BINIT(NPNTS)        ! MASK FOR POINTS WHERE CONVECTION       CONVEC2A.353    
                                  ! IS OCCURING                            CONVEC2A.354    
C                                                                          CONVEC2A.355    
      LOGICAL BTERM(NPNTS)        ! MASK FOR POINTS WHERE CONVECTION       CONVEC2A.356    
                                  ! TERMINATES IN LAYER K+1                CONVEC2A.357    
C                                                                          CONVEC2A.358    
      LOGICAL BWATER(NPNTS,2:NLEV) ! MASK FOR POINTS AT WHICH              CONVEC2A.359    
                                      ! PRECIPITATION IS LIQUID            CONVEC2A.360    
C                                                                          CONVEC2A.361    
      LOGICAL BGMK(NPNTS)         ! MASK FOR POINTS WHERE PARCEL IN        CONVEC2A.362    
                                  ! LAYER K IS SATURATED                   CONVEC2A.363    
C                                                                          CONVEC2A.364    
      LOGICAL BCNLV(NPNTS)        ! MASK FOR THOSE POINTS AT WHICH         CONVEC2A.365    
                                  ! CONVECTION HAS OCCURED AT SOME         CONVEC2A.366    
                                  ! LEVEL OF THE MODEL                     CONVEC2A.367    
C                                                                          CONVEC2A.368    
      REAL DEPTH(NPNTS)           ! DEPTH OF CONVECTIVE CLOUD (M)          CONVEC2A.369    
C                                                                          CONVEC2A.370    
      REAL FLXMAXK(NPNTS)         ! MAXIMUM INITIL CONVECTIVE MASSFLUX     CONVEC2A.371    
                                  ! (PA/S)                                 CONVEC2A.372    
C                                                                          CONVEC2A.373    
      REAL FLXMAX2(NPNTS)         ! MAXIMUM INITIL CONVECTIVE MASSFLUX     CONVEC2A.374    
                                  ! (PA/S)                                 CONVEC2A.375    
C                                                                          CONVEC2A.376    
      REAL PK(NPNTS)              ! PRESSURE AT MID-POINT OF LAYER K       CONVEC2A.377    
                                  ! (PA)                                   CONVEC2A.378    
C                                                                          CONVEC2A.379    
      REAL PKP1(NPNTS)            ! PRESSURE AT MID-POINT OF LAYER K+1     CONVEC2A.380    
                                  ! (PA)                                   CONVEC2A.381    
C                                                                          CONVEC2A.382    
      REAL DELPK(NPNTS)           ! PRESSURE DIFFERENCE ACROSS LAYER K     CONVEC2A.383    
                                  ! (PA)                                   CONVEC2A.384    
C                                                                          CONVEC2A.385    
      REAL DELPKP1(NPNTS)         ! PRESSURE DIFFERENCE ACROSS LAYER K+1   CONVEC2A.386    
                                  ! (PA)                                   CONVEC2A.387    
C                                                                          CONVEC2A.388    
      REAL DELPKP12(NPNTS)        ! PRESSURE DIFFERENCE BETWEEN            CONVEC2A.389    
                                  ! LEVELS K AND K+1 (PA)                  CONVEC2A.390    
C                                                                          CONVEC2A.391    
      REAL EKP14(NPNTS),          ! ENTRAINMENT COEFFICIENTS AT LEVELS     CONVEC2A.392    
     *     EKP34(NPNTS)           ! K+1/4 AND K+3/4 MULTIPLIED BY          CONVEC2A.393    
                                  ! APPROPRIATE LAYER THICKNESS            CONVEC2A.394    
C                                                                          CONVEC2A.395    
      REAL AMDETK(NPNTS)          ! MIXING DETRAINMENT COEFFICIENT AT      CONVEC2A.396    
                                  ! LEVEL K MULTIPLIED BY APPROPRIATE      CONVEC2A.397    
                                  ! LAYER THICKNESS                        CONVEC2A.398    
C                                                                          CONVEC2A.399    
      REAL EXK(NPNTS)             ! EXNER RATIO AT LEVEL K                 CONVEC2A.400    
C                                                                          CONVEC2A.401    
      REAL EXKP1(NPNTS)           ! EXNER RATIO AT LEVEL K+1               CONVEC2A.402    
C                                                                          CONVEC2A.403    
      REAL DELEXKP1(NPNTS)        ! DIFFERENCE IN EXNER RATIO              CONVEC2A.404    
                                  ! ACROSS LAYER K+1                       CONVEC2A.405    
C                                                                          CONVEC2A.406    
      REAL EMINDS(NPNTS)          !                                        CONVEC2A.407    
C                                                                          CONVEC2A.408    
      INTEGER INDEX1(NPNTS),      ! INDEX FOR COMPRESS AND                 CONVEC2A.409    
     *        INDEX2(NPNTS),      ! EXPAND                                 CONVEC2A.410    
     *        INDEX3(NPNTS),                                               CONVEC2A.411    
     *        INDEX4(NPNTS)                                                CONVEC2A.412    
C                                                                          CONVEC2A.413    
C                                                                          CONVEC2A.415    
      REAL recip_PSTAR(NP_FIELD)  ! Reciprocal of pstar array              GSS1F403.82     
      REAL FLX2                   ! TEMPORARY STORE FOR MASS FLUX          CONVEC2A.416    
C                                                                          CONVEC2A.417    
C----------------------------------------------------------------------    CONVEC2A.418    
C EXTERNAL ROUTINES CALLED                                                 CONVEC2A.419    
C----------------------------------------------------------------------    CONVEC2A.420    
C                                                                          CONVEC2A.421    
      EXTERNAL QSAT,FLAG_WET,LIFT_PAR,CONVEC2,LAYER_CN,                    CONVEC2A.422    
     *         DQS_DTH,COR_ENGY,DD_CALL                                    CONVEC2A.423    
C                                                                          CONVEC2A.427    
                                                                           CONVEC2A.428    
      REAL                                                                 CONVEC2A.429    
     &    PU,PL                                                            CONVEC2A.430    
*CALL P_EXNERC                                                             CONVEC2A.431    
                                                                           CONVEC2A.432    
C*---------------------------------------------------------------------    CONVEC2A.433    
C                                                                          CONVEC2A.434    
CL                                                                         CONVEC2A.435    
CL---------------------------------------------------------------------    CONVEC2A.436    
CL CALCULATE AN ARRAY OF SATURATION MIXING RATIOS                          CONVEC2A.437    
CL FIRST CONVERT POTENTIAL TEMPERATURE TO TEMPERATURE AND CALCULATE        CONVEC2A.438    
CL PRESSURE OF LAYER K                                                     CONVEC2A.439    
CL                                                                         CONVEC2A.440    
CL SUBROUTINE QSAT                                                         CONVEC2A.441    
CL UM DOCUMENTATION PAPER P282                                             CONVEC2A.442    
CL---------------------------------------------------------------------    CONVEC2A.443    
CL                                                                         CONVEC2A.444    
C  Calculate reciprocal of pstar                                           ADR1F405.2      
      DO I=1,NPNTS                                                         ADR1F405.3      
        RECIP_PSTAR(I)=1./PSTAR(I)                                         ADR1F405.4      
      ENDDO                                                                ADR1F405.5      
C                                                                          GSS1F403.90     
      DO 20 K=1,NLEV                                                       CONVEC2A.445    
       DO 25 I = 1,NPNTS                                                   CONVEC2A.446    
        PU=PSTAR(I)*BKM12(K+1) + AKM12(K+1)                                CONVEC2A.447    
        PL=PSTAR(I)*BKM12(K) + AKM12(K)                                    CONVEC2A.448    
        TT(I) = TH(I,K)* P_EXNER_C(EXNER(I,K+1),EXNER(I,K),PU,PL,KAPPA)    CONVEC2A.449    
        PT(I) = AK(K)+BK(K)*PSTAR(I)                                       CONVEC2A.450    
   25  CONTINUE                                                            CONVEC2A.451    
C                                                                          CONVEC2A.452    
       CALL QSAT (QSE(1,K),TT,PT,NPNTS)                                    CONVEC2A.453    
C                                                                          CONVEC2A.454    
  20  CONTINUE                                                             CONVEC2A.455    
CL                                                                         CONVEC2A.456    
CL---------------------------------------------------------------------    CONVEC2A.457    
CL CALCULATE BIT VECTOR WHERE WATER WILL CONDENSE RATHER THAN ICE          CONVEC2A.458    
CL SUBROUTINE FLAG_WET                                                     CONVEC2A.459    
CL                                                                         CONVEC2A.460    
CL UM DOCUMENTATION PAPER P27                                              CONVEC2A.461    
CL SECTION (2B)                                                            CONVEC2A.462    
CL---------------------------------------------------------------------    CONVEC2A.463    
CL                                                                         CONVEC2A.464    
      CALL FLAG_WET(BWATER,TH,EXNER,PSTAR,AKM12,BKM12,                     CONVEC2A.465    
     &                    NP_FIELD,NPNTS,NLEV)                             CONVEC2A.466    
C                                                                          CONVEC2A.467    
C----------------------------------------------------------------------    CONVEC2A.468    
C INITIALISE PRECIPITATION, DTH/DT, DQ/DT, CCW ARRAYS                      PI080793.37     
C----------------------------------------------------------------------    CONVEC2A.470    
C                                                                          CONVEC2A.471    
      DO 40 K=1,NLEV                                                       CONVEC2A.472    
       DO 40 I=1,NPNTS                                                     CONVEC2A.473    
        PRECIP(I,K) = 0.0                                                  CONVEC2A.474    
        CCW(I,K) = 0.0                                                     PI080793.38     
        GBMCCW(I,K) = 0.0                                                  AJX1F402.149    
        DTHBYDT(I,K) = 0.0                                                 CONVEC2A.475    
*IF DEF,SCMA                                                               AJC0F405.163    
         DTHUD(I,K) = 0.0                                                  AJC0F405.164    
         DTHDD(I,K) = 0.0                                                  AJC0F405.165    
         DQUD(I,K) = 0.0                                                   AJC0F405.166    
         DQDD(I,K) = 0.0                                                   AJC0F405.167    
*ENDIF                                                                     AJC0F405.168    
   40   DQBYDT(I,K) = 0.0                                                  CONVEC2A.476    
      DO 50 I=1,NPNTS                                                      CONVEC2A.477    
C                                                                          CONVEC2A.478    
C----------------------------------------------------------------------    CONVEC2A.479    
C INITIALISE BIT VECTORS FOR POINTS WHICH ARE ALREADY CONVECTING           CONVEC2A.480    
C AND FOR POINTS AT WHICH CONVECTION OCCURS AT SOME LEVEL OF               CONVEC2A.481    
C THE ATMOSPHERE                                                           CONVEC2A.482    
C----------------------------------------------------------------------    CONVEC2A.483    
C                                                                          CONVEC2A.484    
        BINIT(I) = .FALSE.                                                 CONVEC2A.485    
        BCNLV(I) = .FALSE.                                                 CONVEC2A.486    
        BTERM(I) = .FALSE.                                                 AAD1F304.81     
C                                                                          CONVEC2A.487    
C----------------------------------------------------------------------    CONVEC2A.488    
C INITIALISE RADIATION DIAGNOSTICS                                         CONVEC2A.489    
C----------------------------------------------------------------------    CONVEC2A.490    
C                                                                          CONVEC2A.491    
       CCA(I) = 0.0                                                        CONVEC2A.492    
       ICCB(I) = 0                                                         CONVEC2A.493    
       ICCT(I) = 0                                                         CONVEC2A.494    
       TCW(I) = 0.0                                                        CONVEC2A.495    
       CCLWP(I) = 0.0                                                      AJX1F402.150    
C                                                                          API2F400.181    
C--------------------------------------------------------------------      AJX1F402.151    
C INITIALISE GRIDBOX MEAN DIAGNOSTICS                                      AJX1F402.152    
C--------------------------------------------------------------------      AJX1F402.153    
C                                                                          AJX1F402.154    
       GBMCCWP(I) = 0.0                                                    AJX1F402.155    
       ICCBPxCCA(I) = 0.0                                                  AJX1F402.156    
       ICCTPxCCA(I) = 0.0                                                  AJX1F402.157    
C                                                                          AJX1F402.158    
CL-------------------------------------------------------------------      API2F400.182    
CL INITIALISE CAPE DIAGNOSTIC                                              API2F400.183    
CL-------------------------------------------------------------------      API2F400.184    
C                                                                          API2F400.185    
       CAPE(I) = 0.0                                                       API2F400.186    
       CAPE_OUT(I) = 0.0                                                   API2F400.187    
       CAPE_C(I) = 0.0                                                     API2F400.188    
C                                                                          CONVEC2A.496    
C---------------------------------------------------------------------     CONVEC2A.497    
C INITIALISE SURFACE PRECIPITATION ARRAYS                                  CONVEC2A.498    
C---------------------------------------------------------------------     CONVEC2A.499    
C                                                                          CONVEC2A.500    
       RAIN(I) = 0.0                                                       CONVEC2A.501    
  50   SNOW(I) = 0.0                                                       CONVEC2A.502    
CL                                                                         CONVEC2A.503    
CL=====================================================================    CONVEC2A.504    
CL MAIN LOOP OVER LEVELS - FROM SURFACE TO TOP                             CONVEC2A.505    
CL=====================================================================    CONVEC2A.506    
CL                                                                         CONVEC2A.507    
      DO 60 K=1,NLEV-1                                                     CONVEC2A.508    
CL                                                                         CONVEC2A.509    
CL---------------------------------------------------------------------    CONVEC2A.510    
CL CALCULATE LEVEL PRESSURES, EXNER RATIO FOR MID POINTS, ENTRAINMENT      CONVEC2A.511    
CL RATES, DETRAINMENTS RATES AND PRESSURE DIFFERENCE ACROS  LAYERS AS      CONVEC2A.512    
CL A FUNCTION OF GRID-POINT                                                CONVEC2A.513    
CL                                                                         CONVEC2A.514    
CL SUBROUTINE LAYER_CN                                                     CONVEC2A.515    
CL---------------------------------------------------------------------    CONVEC2A.516    
CL                                                                         CONVEC2A.517    
      CALL LAYER_CN(K,NP_FIELD,NPNTS,NLEV,EXNER,AK,BK,AKM12,BKM12,         CONVEC2A.518    
     *              DELAK,DELBK,PSTAR,PK,PKP1,DELPK,DELPKP1,               CONVEC2A.519    
     *              DELPKP12,EKP14,EKP34,AMDETK,EXK,EXKP1,                 CONVEC2A.520    
     *              DELEXKP1,recip_PSTAR)                                  GSS1F403.91     
CL                                                                         CONVEC2A.522    
CL---------------------------------------------------------------------    CONVEC2A.523    
CL CALCULATE DQS/DTH FOR LAYERS K AND K+1                                  CONVEC2A.524    
CL                                                                         CONVEC2A.525    
CL SUBROUTINE DQS_DTH                                                      CONVEC2A.526    
CL---------------------------------------------------------------------    CONVEC2A.527    
CL                                                                         CONVEC2A.528    
      IF (K.EQ.1) THEN                                                     CONVEC2A.529    
       CALL DQS_DTH(DQSTHK,K,TH(1,K),QSE(1,K),EXK,NPNTS)                   CONVEC2A.530    
      ELSE                                                                 CONVEC2A.531    
       DO 65 I=1,NPNTS                                                     CONVEC2A.532    
        DQSTHK(I) = DQSTHKP1(I)                                            CONVEC2A.533    
  65   CONTINUE                                                            CONVEC2A.534    
      END IF                                                               CONVEC2A.535    
C                                                                          CONVEC2A.536    
       CALL DQS_DTH(DQSTHKP1,K+1,TH(1,K+1),QSE(1,K+1),EXKP1,NPNTS)         CONVEC2A.537    
C                                                                          CONVEC2A.538    
      DO 70 I=1,NPNTS                                                      CONVEC2A.539    
C                                                                          CONVEC2A.540    
C---------------------------------------------------------------------     CONVEC2A.541    
C SET OTHER GIRD-POINT DEPENDENT CONSTANTS                                 CONVEC2A.542    
C---------------------------------------------------------------------     CONVEC2A.543    
C                                                                          CONVEC2A.544    
C---------------------------------------------------------------------     CONVEC2A.545    
C MAXIMUM INITIAL CONVECTIVE MASSFLUX                                      CONVEC2A.546    
C---------------------------------------------------------------------     CONVEC2A.547    
C                                                                          CONVEC2A.548    
       FLXMAXK(I) = DELPK(I)/((1.0 + EKP14(I)) * TIMESTEP)                 CONVEC2A.549    
C                                                                          CONVEC2A.550    
C---------------------------------------------------------------------     CONVEC2A.551    
C MAXIMUM CONVECTIVE MASSFLUX AT MID-POINT OF LAYER 2                      CONVEC2A.552    
C---------------------------------------------------------------------     CONVEC2A.553    
C                                                                          CONVEC2A.554    
      IF (K.EQ.1) FLXMAX2(I) = (PSTAR(I)-PKP1(I)) / TIMESTEP               CONVEC2A.555    
C                                                                          CONVEC2A.556    
C---------------------------------------------------------------------     CONVEC2A.557    
C MINIMUM BUOYANCY FOR CONVECTION TO START FROM LAYER K                    CONVEC2A.558    
C---------------------------------------------------------------------     CONVEC2A.559    
C                                                                          CONVEC2A.560    
       EMINDS(I) = MPARB*DELPKP12(I)*recip_pstar(I)                        GSS1F403.93     
C                                                                          CONVEC2A.562    
C----------------------------------------------------------------------    CONVEC2A.563    
C SET BIT VECTOR FOR POINTS WHERE CONVECTION HAS OCCURRED AT SOME          CONVEC2A.564    
C LEVEL OF THE ATMOSPHERE                                                  CONVEC2A.565    
C-----------------------------------------------------------------------   CONVEC2A.566    
C                                                                          CONVEC2A.567    
       BCNLV(I) =  BCNLV(I) .OR. BINIT(I)                                  CONVEC2A.568    
CL                                                                         CONVEC2A.569    
CL---------------------------------------------------------------------    CONVEC2A.570    
CL SET INITIAL VALUES FOR POINTS NOT ALREADY INITIATED                     CONVEC2A.571    
CL                                                                         CONVEC2A.572    
CL UM DOCUMENTATION PAPER P27                                              CONVEC2A.573    
CL SECTION (3), EQUATION(17)                                               CONVEC2A.574    
CL---------------------------------------------------------------------    CONVEC2A.575    
CL                                                                         CONVEC2A.576    
       IF (.NOT.BINIT(I)) THEN                                             CONVEC2A.577    
         THPI(I) = TH(I,K) + THPIXS                                        CONVEC2A.578    
         QPI(I) = Q(I,K) + QPIXS                                           CONVEC2A.579    
         THP(I,K) = TH(I,K) + THPIXS                                       CONVEC2A.580    
         QP(I,K) = Q(I,K) + QPIXS                                          CONVEC2A.581    
         XPK(I) = 0.0                                                      CONVEC2A.582    
         FLX(I,K) = 0.0                                                    CONVEC2A.583    
         BGMK(I) = .FALSE.                                                 CONVEC2A.584    
         DEPTH(I) = 0.0                                                    CONVEC2A.585    
       END IF                                                              CONVEC2A.586    
CL                                                                         CONVEC2A.587    
CL----------------------------------------------------------------------   CONVEC2A.588    
CL FORM A BIT VECTOR OF POINTS FOR WHICH CONVECTION MAY BE POSSIBLE        CONVEC2A.589    
CL FROM LAYER K TO K-1 EITHER BECAUSE STABILITY IS LOW ENOUGH              CONVEC2A.590    
CL OR BECAUSE CONVECTION OCCURRING FROM LAYER K+1 TO K                     CONVEC2A.591    
CL THIS BIT VECTOR IS USED IN THE FIRST COMPREE OF THE DATA                CONVEC2A.592    
CL TO CALCULATE PARCEL BUOYANCY IN LAYER K-1                               CONVEC2A.593    
CL                                                                         CONVEC2A.594    
CL UM DOCUMENTATION PAPER P27                                              CONVEC2A.595    
CL SECTION(3), EQUATION(16)                                                CONVEC2A.596    
CL----------------------------------------------------------------------   CONVEC2A.597    
CL                                                                         CONVEC2A.598    
        BCONV(I) = BINIT(I) .OR.                                           CONVEC2A.599    
     *           ((TH(I,K) - TH(I,K+1) + DELTHST                           CONVEC2A.600    
     *           + MAX(0.0,(Q(I,K)-QSE(I,K+1)))*(LC/(CP*EXKP1(I))))        CONVEC2A.601    
     *           .GT. 0.)                                                  CONVEC2A.602    
*IF DEF,MPP                                                                AAD2F404.167    
        BCONV(I) = l_halo(I).AND.BCONV(I)                                  AAD2F404.168    
*ENDIF                                                                     AAD2F404.169    
  70  CONTINUE                                                             CONVEC2A.603    
CL                                                                         CONVEC2A.604    
CL----------------------------------------------------------------------   CONVEC2A.605    
CL COMPRESS DOWN POINTS ON THE BASIS OF BIT VECTOR BCONV                   CONVEC2A.606    
CL----------------------------------------------------------------------   CONVEC2A.607    
CL                                                                         CONVEC2A.608    
      NCONV = 0                                                            CONVEC2A.609    
      DO 75 I=1,NPNTS                                                      CONVEC2A.613    
        IF(BCONV(I))THEN                                                   CONVEC2A.614    
          NCONV = NCONV + 1                                                CONVEC2A.615    
          INDEX1(NCONV) = I                                                CONVEC2A.616    
        END IF                                                             CONVEC2A.617    
  75  CONTINUE                                                             CONVEC2A.618    
C                                                                          CONVEC2A.620    
C----------------------------------------------------------------------    CONVEC2A.621    
C  WORK SPACE USAGE FOR FIRST COMPRESS ON BASIS OF SIMPLE                  CONVEC2A.622    
C  STABILITY TEST (SECTION (3), EQN(16))                                   CONVEC2A.623    
C                                                                          CONVEC2A.624    
C  REFERENCES TO WORK AND BWORK REFER TO STARTING ADDRESS                  CONVEC2A.625    
C                                                                          CONVEC2A.626    
C  LENGTH OF COMPRESSES DATA = NCONV                                       CONVEC2A.627    
C                                                                          CONVEC2A.628    
C  WORK(1,1)  = TH(#,K)                                                    CONVEC2A.629    
C  WORK(1,2)  = TH(#,K+1)                                                  CONVEC2A.630    
C  WORK(1,3)  = Q(#,K)                                                     CONVEC2A.631    
C  WORK(1,4)  = Q(#,K+1)                                                   CONVEC2A.632    
C  WORK(1,5)  = QSE(#,K+1)                                                 CONVEC2A.633    
C  WORK(1,6)  = DQSTHKP1(#)                                                CONVEC2A.634    
C  WORK(1,7)  = THP(#,K)                                                   CONVEC2A.635    
C  WORK(1,8)  = QP(#,K)                                                    CONVEC2A.636    
C  WORK(1,9)  = PKP1(#)                                                    CONVEC2A.637    
C  WORK(1,10) = EXKP1(#)                                                   CONVEC2A.638    
C  WORK(1,11) = EKP14(#)                                                   CONVEC2A.639    
C  WORK(1,12) = EKP34(#)                                                   CONVEC2A.640    
C  WORK(1,13) = PARCEL POT. TEMPERATURE IN LAYER K+1                       CONVEC2A.641    
C  WORK(1,14) = PARCEL MIXING RATIO IN LAYER K+1                           CONVEC2A.642    
C  WORK(1,15) = EXCESS WATER VAPOUR IN PARCEL ABOVE                        CONVEC2A.643    
C               SATURATION AFTER DRY ASCENT                                CONVEC2A.644    
C  WORK(1,16) = PARCEL BUOYANCY IN LAYER K+1                               CONVEC2A.645    
C  WORK(1,17) = DELPKP12(#)                                                CONVEC2A.646    
C  WORK(1,18) = PSTAR(#)                                                   CONVEC2A.647    
C  WORK(1,19) = FLX(#,K)                                                   CONVEC2A.648    
C  WORK(1,20) = EMINDS(#)                                                  CONVEC2A.649    
C  WORK(1,21) = FLXMAXK(#)                                                 CONVEC2A.650    
C  WORK(1,22) = FLXMAX2(#)                                                 CONVEC2A.651    
C                                                                          CONVEC2A.652    
C  BWORK(1,1) = BWATER(INDEX1(I),K+1)                                      CONVEC2A.653    
C  BWORK(1,2) = .TRUE. IF PARCEL SATURATED IN LAYER K+1                    CONVEC2A.654    
C  BWORK(1,3) = .TRUE. IF CONVECTION INITIATE FROM LAYER K+1               CONVEC2A.655    
C  BWORK(1,4) = BINIT(INDEX1(I))                                           CONVEC2A.656    
C----------------------------------------------------------------------    CONVEC2A.657    
C                                                                          CONVEC2A.658    
      IF (NCONV .NE. 0) THEN                                               CONVEC2A.659    
        DO 80 I=1,NCONV                                                    CONVEC2A.660    
          WORK(I,1)  = TH(INDEX1(I),K)                                     CONVEC2A.661    
          WORK(I,2)  = TH(INDEX1(I),K+1)                                   CONVEC2A.662    
          WORK(I,3)  = Q(INDEX1(I),K)                                      CONVEC2A.663    
          WORK(I,4)  = Q(INDEX1(I),K+1)                                    CONVEC2A.664    
          WORK(I,5)  = QSE(INDEX1(I),K+1)                                  CONVEC2A.665    
          WORK(I,6)  = DQSTHKP1(INDEX1(I))                                 CONVEC2A.666    
          WORK(I,7)  = THP(INDEX1(I),K)                                    CONVEC2A.667    
          WORK(I,8)  = QP(INDEX1(I),K)                                     CONVEC2A.668    
          WORK(I,9)  = PKP1(INDEX1(I))                                     CONVEC2A.669    
          WORK(I,10) = EXKP1(INDEX1(I))                                    CONVEC2A.670    
          WORK(I,11) = EKP14(INDEX1(I))                                    CONVEC2A.671    
          WORK(I,12) = EKP34(INDEX1(I))                                    CONVEC2A.672    
          WORK(I,17) = DELPKP12(INDEX1(I))                                 CONVEC2A.673    
          WORK(I,18) = PSTAR(INDEX1(I))                                    CONVEC2A.674    
          WORK(I,19) = FLX(INDEX1(I),K)                                    CONVEC2A.675    
          WORK(I,20) = EMINDS(INDEX1(I))                                   CONVEC2A.676    
          WORK(I,21) = FLXMAXK(INDEX1(I))                                  CONVEC2A.677    
          WORK(I,22) = FLXMAX2(INDEX1(I))                                  CONVEC2A.678    
          BWORK(I,1) = BWATER(INDEX1(I),K+1)                               CONVEC2A.679    
          BWORK(I,4) = BINIT(INDEX1(I))                                    CONVEC2A.680    
C                                                                          CONVEC2A.681    
C                                                                          CONVEC2A.682    
  80    CONTINUE                                                           CONVEC2A.683    
CL                                                                         CONVEC2A.684    
CL---------------------------------------------------------------------    CONVEC2A.685    
CL LIFT PARCEL FROM LAYER K TO K-1                                         CONVEC2A.686    
CL                                                                         CONVEC2A.687    
CL UM DOCUMENTATION PAPER P27                                              CONVEC2A.688    
CL SECTION (3) AND (4)                                                     CONVEC2A.689    
CL---------------------------------------------------------------------    CONVEC2A.690    
CL                                                                         CONVEC2A.691    
      CALL LIFT_PAR (NCONV,WORK(1,13),WORK(1,14),WORK(1,15),               CONVEC2A.692    
     *               BWORK(1,2),BWORK(1,1),WORK(1,7),WORK(1,8),            CONVEC2A.693    
     *               WORK(1,2),WORK(1,4),WORK(1,1),WORK(1,3),              CONVEC2A.694    
     *               WORK(1,5),WORK(1,6),WORK(1,9),                        CONVEC2A.695    
     *               WORK(1,10),WORK(1,11),WORK(1,12))                     CONVEC2A.696    
C                                                                          CONVEC2A.697    
      DO 110 I=1,NCONV                                                     CONVEC2A.698    
CL                                                                         CONVEC2A.699    
CL---------------------------------------------------------------------    CONVEC2A.700    
CL CALCULATE BUOYANCY OF PARCEL IN LAYER K-1                               CONVEC2A.701    
CL---------------------------------------------------------------------    CONVEC2A.702    
CL                                                                         CONVEC2A.703    
        WORK(I,16) = WORK(I,13)*(1.0 +                                     CONVEC2A.704    
     *                            C_VIRTUAL * WORK(I,14))                  CONVEC2A.705    
     *               - WORK(I,2)*(1.0 +                                    CONVEC2A.706    
     *                            C_VIRTUAL * WORK(I,4))                   CONVEC2A.707    
C                                                                          CONVEC2A.708    
C----------------------------------------------------------------------    CONVEC2A.709    
C INITIATE CONVECTION WHERE BUOYANCY IS LARGE ENOUGH                       CONVEC2A.710    
C----------------------------------------------------------------------    CONVEC2A.711    
C                                                                          CONVEC2A.712    
        BWORK(I,3) = .NOT.BWORK(I,4) .AND. WORK(I,16) .GT.                 CONVEC2A.713    
     *      (WORK(I,20)+ XSBMIN)                                           CONVEC2A.714    
C                                                                          CONVEC2A.715    
C----------------------------------------------------------------------    CONVEC2A.716    
C CALCULATE INITIAL MASSFLUX FROM LAYER K                                  CONVEC2A.717    
C----------------------------------------------------------------------    CONVEC2A.718    
C                                                                          CONVEC2A.719    
      IF (BWORK(I,3))                                                      CONVEC2A.720    
     1     WORK(I,19) = 1.0E-3 * WORK(I,18) * (D + C * WORK(I,18) *        CONVEC2A.721    
     2                    ((WORK(I,16) - XSBMIN) / WORK(I,17)))            CONVEC2A.722    
  110 CONTINUE                                                             CONVEC2A.723    
C                                                                          CONVEC2A.724    
C----------------------------------------------------------------------    CONVEC2A.725    
C LIMIT MASSFLUX IN LOWEST CONVECTING LAYER TO BE <= MASS OF LAYER         CONVEC2A.726    
C OR                                                                       CONVEC2A.727    
C IF K=1 ADJUST ENTRAINMENT RATE IN BOTTOM HALF OF LAYER 2 SO              CONVEC2A.728    
C NOT TO AFFECT THE MASS FLUX AT MID-POINT OF LAYER 2                      CONVEC2A.729    
C----------------------------------------------------------------------    CONVEC2A.730    
C                                                                          CONVEC2A.731    
      IF ( K .EQ. 1 ) THEN                                                 CONVEC2A.732    
C                                                                          CONVEC2A.733    
       DO I=1,NCONV                                                        CONVEC2A.734    
C                                                                          CONVEC2A.735    
C--------------------------------------------------------------------      CONVEC2A.736    
C CARRY OUT CALCULATION IF CONVECTION WAS INITIATED FROM LAYER 1           CONVEC2A.737    
C--------------------------------------------------------------------      CONVEC2A.738    
C                                                                          CONVEC2A.739    
        IF ( BWORK(I,3) ) THEN                                             CONVEC2A.740    
C                                                                          CONVEC2A.741    
C--------------------------------------------------------------------      CONVEC2A.742    
C CALCULATE MASS FLUX AT MID-POINT OF LAYER 2 USING STANDARD               CONVEC2A.743    
C ENTRAINMENT RATES                                                        CONVEC2A.744    
C--------------------------------------------------------------------      CONVEC2A.745    
C                                                                          CONVEC2A.746    
         FLX2 = WORK(I,19) * (1.0 + WORK(I,11)) * (1.0 + WORK(I,12))       CONVEC2A.747    
C                                                                          CONVEC2A.748    
C--------------------------------------------------------------------      CONVEC2A.749    
C IF MASS FLUX IN LAYER 2 EXCEEDS MASS OF LAYER THEN LIMIT MASS FLUX       CONVEC2A.750    
C OVER A TIMESTEP TO MASS OF LAYER                                         CONVEC2A.751    
C--------------------------------------------------------------------      CONVEC2A.752    
C                                                                          CONVEC2A.753    
        IF (WORK(I,19) .GT. WORK(I,21)) THEN                               CONVEC2A.754    
C                                                                          CONVEC2A.755    
         WORK(I,19) = WORK(I,21)                                           CONVEC2A.756    
C                                                                          CONVEC2A.757    
C--------------------------------------------------------------------      CONVEC2A.758    
C IF MASS FLUX AT MID-POINT OF LAYER 2 EXCEEDS THE MASS OF THE COLUMN      CONVEC2A.759    
C DOWN TO THE SURFACE OVER THE TIMESTEP THEN LIMIT MASS FLUX               CONVEC2A.760    
C--------------------------------------------------------------------      CONVEC2A.761    
C                                                                          CONVEC2A.762    
        IF ( FLX2 .GT. WORK(I,22)) FLX2 = WORK(I,22)                       CONVEC2A.763    
C                                                                          CONVEC2A.764    
C--------------------------------------------------------------------      CONVEC2A.765    
C ADJUST ENTRAINMENT RATE IN BOTTOM HALF OF LAYER 2                        CONVEC2A.766    
C--------------------------------------------------------------------      CONVEC2A.767    
C                                                                          CONVEC2A.768    
       WORK(I,12) = (FLX2/(WORK(I,19) * (1.0 + WORK(I,11)))) - 1.0         CONVEC2A.769    
       END IF                                                              CONVEC2A.770    
C                                                                          CONVEC2A.771    
       END IF                                                              CONVEC2A.772    
      END DO                                                               CONVEC2A.773    
C                                                                          CONVEC2A.774    
C---------------------------------------------------------------------     CONVEC2A.775    
C RECALCULATE ASCENT FROM LAYER 1 TO 2 USING ADJUSTED ENTRAINMENT RATE     CONVEC2A.776    
C---------------------------------------------------------------------     CONVEC2A.777    
C                                                                          CONVEC2A.778    
      CALL LIFT_PAR (NCONV,WORK(1,13),WORK(1,14),WORK(1,15),               CONVEC2A.779    
     *               BWORK(1,2),BWORK(1,1),WORK(1,7),WORK(1,8),            CONVEC2A.780    
     *               WORK(1,2),WORK(1,4),WORK(1,1),WORK(1,3),              CONVEC2A.781    
     *               WORK(1,5),WORK(1,6),WORK(1,9),                        CONVEC2A.782    
     *               WORK(1,10),WORK(1,11),WORK(1,12))                     CONVEC2A.783    
C                                                                          CONVEC2A.784    
       DO I=1,NCONV                                                        CONVEC2A.785    
C                                                                          CONVEC2A.786    
        IF ( BWORK(I,3) ) THEN                                             CONVEC2A.787    
CL                                                                         CONVEC2A.788    
CL---------------------------------------------------------------------    CONVEC2A.789    
CL RECALCULATE BUOYANCY OF PARCEL IN LAYER K-1                             CONVEC2A.790    
CL---------------------------------------------------------------------    CONVEC2A.791    
CL                                                                         CONVEC2A.792    
        WORK(I,16) = WORK(I,13)*(1.0 +                                     CONVEC2A.793    
     *                            C_VIRTUAL * WORK(I,14))                  CONVEC2A.794    
     *               - WORK(I,2)*(1.0 +                                    CONVEC2A.795    
     *                            C_VIRTUAL * WORK(I,4))                   CONVEC2A.796    
C                                                                          CONVEC2A.797    
C----------------------------------------------------------------------    CONVEC2A.798    
C RESET MASK TO INITIATE CONVECTION WHERE BUOYANCY IS LARGE ENOUGH         CONVEC2A.799    
C----------------------------------------------------------------------    CONVEC2A.800    
C                                                                          CONVEC2A.801    
        BWORK(I,3) = .NOT.BWORK(I,4) .AND. WORK(I,16) .GT.                 CONVEC2A.802    
     *      (WORK(I,20)+ XSBMIN)                                           CONVEC2A.803    
C                                                                          CONVEC2A.804    
        BWORK(I,4) = BWORK(I,4) .OR. BWORK(I,3)                            CONVEC2A.805    
C                                                                          CONVEC2A.806    
       END IF                                                              CONVEC2A.807    
C                                                                          CONVEC2A.808    
       FLX(INDEX1(I),K) = WORK(I,19)                                       CONVEC2A.809    
C                                                                          CONVEC2A.810    
      END DO                                                               CONVEC2A.811    
C                                                                          CONVEC2A.812    
C----------------------------------------------------------------------    CONVEC2A.813    
C END OF CALCULATION FOR LAYER 1                                           CONVEC2A.814    
C----------------------------------------------------------------------    CONVEC2A.815    
C                                                                          CONVEC2A.816    
      ELSE                                                                 CONVEC2A.817    
C                                                                          CONVEC2A.818    
       DO I=1,NCONV                                                        CONVEC2A.819    
C                                                                          CONVEC2A.820    
C----------------------------------------------------------------------    CONVEC2A.821    
C IF MASS FLUX OUT OF THE INITIAL LAYER IS GREATER THAN THE MASS OF        CONVEC2A.822    
C THE LAYER OVER THE TIMESTEP THEN LIMIT MASS FLUX TO MASSS OF LAYER       CONVEC2A.823    
C----------------------------------------------------------------------    CONVEC2A.824    
C                                                                          CONVEC2A.825    
        IF (BWORK(I,3) .AND. WORK(I,19).GT.WORK(I,21))                     CONVEC2A.826    
     1                 WORK(I,19) = WORK(I,21)                             CONVEC2A.827    
C                                                                          CONVEC2A.828    
        BWORK(I,4) = BWORK(I,4) .OR. BWORK(I,3)                            CONVEC2A.829    
C                                                                          CONVEC2A.830    
        FLX(INDEX1(I),K) = WORK(I,19)                                      CONVEC2A.831    
C                                                                          CONVEC2A.832    
       END DO                                                              CONVEC2A.833    
C                                                                          CONVEC2A.834    
      END IF                                                               CONVEC2A.835    
C                                                                          CONVEC2A.836    
CL                                                                         CONVEC2A.837    
CL--------------------------------------------------------------------     CONVEC2A.838    
CL ZERO MIXING DETRAINMENT RATE WHEN CONVECTION STARTS FROM LAYER K        CONVEC2A.839    
CL--------------------------------------------------------------------     CONVEC2A.840    
CL                                                                         CONVEC2A.841    
      DO I=1,NCONV                                                         CONVEC2A.842    
       IF ( BWORK(I,3) ) AMDETK(INDEX1(I))=0.0                             CONVEC2A.843    
      END DO                                                               CONVEC2A.844    
CL                                                                         CONVEC2A.845    
CL--------------------------------------------------------------------     CONVEC2A.846    
CL COMPRESS DOWN THOSE POINTS WHICH ARE NOT BUOYANT IN LAYER K-1           CONVEC2A.847    
CL--------------------------------------------------------------------     CONVEC2A.848    
CL                                                                         CONVEC2A.849    
      NINIT = 0                                                            CONVEC2A.850    
      DO 115 I=1,NCONV                                                     CONVEC2A.854    
        IF(BWORK(I,4))THEN                                                 CONVEC2A.855    
          NINIT = NINIT + 1                                                CONVEC2A.856    
          INDEX2(NINIT) = I                                                CONVEC2A.857    
        END IF                                                             CONVEC2A.858    
  115 CONTINUE                                                             CONVEC2A.859    
C                                                                          CONVEC2A.861    
C                                                                          CONVEC2A.862    
C----------------------------------------------------------------------    CONVEC2A.863    
C  WORK SPACE USAGE FOR SECOND COMPRESS ON BASIS OF WHETHER                CONVEC2A.864    
C  PARCEL A PARCEL STARTING FROM LAYER K IS BUOYANT IN LAYER               CONVEC2A.865    
C  K+1 OR IF CONVECTION ALREADY EXISTS IN LAYER K                          CONVEC2A.866    
C                                                                          CONVEC2A.867    
C  REFERENCES TO WORK, WORK2, BWORK AND BWORK2                             CONVEC2A.868    
C  REFER TO STARTING ADDRESS                                               CONVEC2A.869    
C                                                                          CONVEC2A.870    
C  LENGTH OF COMPRESSES DATA = NINIT                                       CONVEC2A.871    
C                                                                          CONVEC2A.872    
C  WORK2 AND BWORK2 ARE COMPRESSED DOWN FROM COMPRESSED                    CONVEC2A.873    
C  ARRAYS STORED IN WORK AND BWORK AFTER FIST COMPRESS                     CONVEC2A.874    
C                                                                          CONVEC2A.875    
C  WORK2(1,1)  = TH(#,K)                                                   CONVEC2A.876    
C  WORK2(1,2)  = TH(#,K+1)                                                 CONVEC2A.877    
C  WORK2(1,3)  = Q(#,K)                                                    CONVEC2A.878    
C  WORK2(1,4)  = Q(#,K+1)                                                  CONVEC2A.879    
C  WORK2(1,5)  = QSE(#,K+1)                                                CONVEC2A.880    
C  WORK2(1,6)  = DQSTHKP1(#)                                               CONVEC2A.881    
C  WORK2(1,7)  = THP(#,K)                                                  CONVEC2A.882    
C  WORK2(1,8)  = QP(#,K)                                                   CONVEC2A.883    
C  WORK2(1,9)  = PKP1(#)                                                   CONVEC2A.884    
C  WORK2(1,10) = EXKP1(#)                                                  CONVEC2A.885    
C  WORK2(1,11) = EKP14(#)                                                  CONVEC2A.886    
C  WORK2(1,12) = EKP34(#)                                                  CONVEC2A.887    
C  WORK2(1,13) = PARCEL POT. TEMPERATURE IN LAYER K+1                      CONVEC2A.888    
C  WORK2(1,14) = PARCEL MIXING RATIO IN LAYER K+1                          CONVEC2A.889    
C  WORK2(1,15) = EXCESS WATER VAPOUR IN PARCEL ABOVE                       CONVEC2A.890    
C               SATURATION AFTER DRY ASCENT                                CONVEC2A.891    
C  WORK2(1,16) = PARCEL BUOYANCY IN LAYER K+1                              CONVEC2A.892    
C  WORK2(1,17) = NOT USED IN THIS SECTION                                  CONVEC2A.893    
C  WORK2(1,18) = PSTAR(#)                                                  CONVEC2A.894    
C  WORK2(1,19) = FLX(#,K)                                                  CONVEC2A.895    
C                                                                          CONVEC2A.896    
C  BWORK2(1,1) = BWATER(INDEX1(I),K+1)                                     CONVEC2A.897    
C  BWORK2(1,2) = .TRUE. IF PARCEL SATURATED IN LAYER K+1                   CONVEC2A.898    
C  BWORK2(1,3) = .TRUE. IF CONVECTION INITIATE FROM LAYER K+1              CONVEC2A.899    
C                                                                          CONVEC2A.900    
C  WORK AND BWORK NOW CONTAIN DATA COMPRESSED DOWN                         CONVEC2A.901    
C  FROM FULL LENGTH VECTORS                                                CONVEC2A.902    
C                                                                          CONVEC2A.903    
C  WORK(1,1) = not used in this section                                    CONVEC2A.904    
C  WORK(1,2) = QSE(#,K)                                                    CONVEC2A.905    
C  WORK(1,3) = DQSTHK(#)                                                   CONVEC2A.906    
C  WORK(1,4) = THPI(#)                                                     CONVEC2A.907    
C  WORK(1,5) = QPI(#)                                                      CONVEC2A.908    
C  WORK(1,6) = XPK(#)                                                      CONVEC2A.909    
C  WORK(1,7) = not used in this section                                    CONVEC2A.910    
C  WORK(1,8) = DEPTH(#)                                                    CONVEC2A.911    
C  WORK(1,9) = PRECIP(#,K+1)                                               CONVEC2A.912    
C  WORK(1,10) = DTHBYDT(#,K)                                               CONVEC2A.913    
C  WORK(1,11) = DQBYDT(#,K)                                                CONVEC2A.914    
C  WORK(1,12) = DTHBYDT(#,K+1)                                             CONVEC2A.915    
C  WORK(1,13) = DQBYDT(#,K+1)                                              CONVEC2A.916    
C  WORK(1,14) = AMDETK(#)                                                  CONVEC2A.917    
C  WORK(1,15) = NOY USED IN THIS SECTION                                   CONVEC2A.918    
C  WORK(1,16) = PK(#)                                                      CONVEC2A.919    
C  WORK(1,17) = EXK(#)                                                     CONVEC2A.920    
C  WORK(1,18) = DELEXKP1(#)                                                CONVEC2A.921    
C  WORK(1,19) = DELPK(#)                                                   CONVEC2A.922    
C  WORK(1,20) = DELPKP1(#)                                                 CONVEC2A.923    
C  WORK(1,21) = CCW(#,K+1)                                                 PI080793.39     
C                                                                          CONVEC2A.924    
C  BWORK(1,1) = BGMK(#)                                                    CONVEC2A.925    
C  BWORK(1,2) = BLAND(#)                                                   CONVEC2A.926    
C  BWORK(1,3) = BTERM(#)                                                   CONVEC2A.927    
C  BWORK(1,2) = BLAND(#)                                                   CONVEC2A.928    
C----------------------------------------------------------------------    CONVEC2A.929    
C                                                                          CONVEC2A.930    
      IF (NINIT .NE. 0) THEN                                               CONVEC2A.931    
C                                                                          CONVEC2A.932    
C-----------------------------------------------------------------------   CONVEC2A.933    
C FIRST COMPRESS DOWN QUANTITIES FROM PREVIOUSLY COMPRESSED ARRAY          CONVEC2A.934    
C-----------------------------------------------------------------------   CONVEC2A.935    
C                                                                          CONVEC2A.936    
        DO 120 I=1,NINIT                                                   CONVEC2A.937    
          WORK2(I,1)  = WORK(INDEX2(I),1)                                  CONVEC2A.938    
          WORK2(I,2)  = WORK(INDEX2(I),2)                                  CONVEC2A.939    
          WORK2(I,3)  = WORK(INDEX2(I),3)                                  CONVEC2A.940    
          WORK2(I,4)  = WORK(INDEX2(I),4)                                  CONVEC2A.941    
          WORK2(I,5)  = WORK(INDEX2(I),5)                                  CONVEC2A.942    
          WORK2(I,6)  = WORK(INDEX2(I),6)                                  CONVEC2A.943    
          WORK2(I,7)  = WORK(INDEX2(I),7)                                  CONVEC2A.944    
          WORK2(I,8)  = WORK(INDEX2(I),8)                                  CONVEC2A.945    
          WORK2(I,9)  = WORK(INDEX2(I),9)                                  CONVEC2A.946    
          WORK2(I,10) = WORK(INDEX2(I),10)                                 CONVEC2A.947    
          WORK2(I,11) = WORK(INDEX2(I),11)                                 CONVEC2A.948    
          WORK2(I,12) = WORK(INDEX2(I),12)                                 CONVEC2A.949    
          WORK2(I,13) = WORK(INDEX2(I),13)                                 CONVEC2A.950    
          WORK2(I,14) = WORK(INDEX2(I),14)                                 CONVEC2A.951    
          WORK2(I,15) = WORK(INDEX2(I),15)                                 CONVEC2A.952    
          WORK2(I,16) = WORK(INDEX2(I),16)                                 CONVEC2A.953    
          WORK2(I,17) = WORK(INDEX2(I),17)                                 CONVEC2A.954    
          WORK2(I,18) = WORK(INDEX2(I),18)                                 CONVEC2A.955    
          WORK2(I,19) = WORK(INDEX2(I),19)                                 CONVEC2A.956    
          BWORK2(I,1) = BWORK(INDEX2(I),1)                                 CONVEC2A.957    
          BWORK2(I,2) = BWORK(INDEX2(I),2)                                 CONVEC2A.958    
          BWORK2(I,3) = BWORK(INDEX2(I),3)                                 CONVEC2A.959    
  120   CONTINUE                                                           CONVEC2A.960    
C                                                                          CONVEC2A.961    
C----------------------------------------------------------------------    CONVEC2A.962    
C COMPRESS DOWN REST OF DATA FROM FULL ARRAYS                              CONVEC2A.963    
C                                                                          CONVEC2A.964    
C FIRST EXPAND BACK BWORK(1,2) (=BINIT) BACK TO FULL VECTORS               CONVEC2A.965    
C----------------------------------------------------------------------    CONVEC2A.966    
C                                                                          CONVEC2A.967    
CDIR$ IVDEP                                                                CONVEC2A.968    
! Fujitsu vectorization directive                                          GRB0F405.203    
!OCL NOVREC                                                                GRB0F405.204    
      DO 130 I=1,NCONV                                                     CONVEC2A.969    
        BINIT(INDEX1(I)) = BWORK(I,4)                                      CONVEC2A.970    
  130 CONTINUE                                                             CONVEC2A.971    
C                                                                          CONVEC2A.972    
      NINIT = 0                                                            CONVEC2A.973    
      DO 135 I=1,NPNTS                                                     CONVEC2A.977    
        IF(BINIT(I))THEN                                                   CONVEC2A.978    
          NINIT = NINIT + 1                                                CONVEC2A.979    
          INDEX3(NINIT) = I                                                CONVEC2A.980    
        END IF                                                             CONVEC2A.981    
  135 CONTINUE                                                             CONVEC2A.982    
C                                                                          CONVEC2A.984    
      DO 140 I=1,NINIT                                                     CONVEC2A.985    
        WORK(I,2) = QSE(INDEX3(I),K)                                       CONVEC2A.986    
        WORK(I,3) = DQSTHK(INDEX3(I))                                      CONVEC2A.987    
        WORK(I,4) = THPI(INDEX3(I))                                        CONVEC2A.988    
        WORK(I,5) = QPI(INDEX3(I))                                         CONVEC2A.989    
        WORK(I,6) = XPK(INDEX3(I))                                         CONVEC2A.990    
        WORK(I,8) = DEPTH(INDEX3(I))                                       CONVEC2A.991    
        CCAC(I)    = CCA(INDEX3(I))                                        CONVEC2A.992    
        ICCBC(I)   = ICCB(INDEX3(I))                                       CONVEC2A.993    
        ICCTC(I)   = ICCT(INDEX3(I))                                       CONVEC2A.994    
        TCWC(I)    = TCW(INDEX3(I))                                        CONVEC2A.995    
        CCLWPC(I)  = CCLWP(INDEX3(I))                                      CONVEC2A.996    
        LCCAC(I)   = LCCA(INDEX3(I))   ! beware - LCCAC & LCBASEC          ARN2F304.210    
        LCBASEC(I) = LCBASE(INDEX3(I)) ! are IN/OUT to lower levels        ARN2F304.211    
        LCTOPC(I)  = LCTOP(INDEX3(I))                                      ARN2F304.212    
        LCCLWPC(I) = LCCLWP(INDEX3(I))                                     ARN2F304.213    
        BWORK(I,1) = BGMK(INDEX3(I))                                       CONVEC2A.997    
        BWORK(I,2) = BLAND(INDEX3(I))                                      CONVEC2A.998    
        WORK(I,10) = DTHBYDT(INDEX3(I),K)                                  CONVEC2A.999    
        WORK(I,11) = DQBYDT(INDEX3(I),K)                                   CONVEC2A.1000   
        WORK(I,12) = DTHBYDT(INDEX3(I),K+1)                                CONVEC2A.1001   
        WORK(I,13) = DQBYDT(INDEX3(I),K+1)                                 CONVEC2A.1002   
        WORK(I,14) = AMDETK(INDEX3(I))                                     CONVEC2A.1003   
        WORK(I,16) = PK(INDEX3(I))                                         CONVEC2A.1004   
        WORK(I,17) = EXK(INDEX3(I))                                        CONVEC2A.1005   
        WORK(I,18) = DELEXKP1(INDEX3(I))                                   CONVEC2A.1006   
        WORK(I,19) = DELPK(INDEX3(I))                                      CONVEC2A.1007   
        WORK(I,20) = DELPKP1(INDEX3(I))                                    CONVEC2A.1008   
        CAPE_C(I)  = CAPE(INDEX3(I))                                       API2F400.189    
C                                                                          CONVEC2A.1009   
        BWORK(I,4) = .TRUE.                                                CONVEC2A.1010   
  140 CONTINUE                                                             CONVEC2A.1011   
CL                                                                         CONVEC2A.1012   
CL----------------------------------------------------------------------   CONVEC2A.1013   
CL CALCULATE REST OF PARCEL ASCENT AND EFFECT OF CONVECTION                CONVEC2A.1014   
CL UPON THE LARGE-SCALE ATMOSPHERE                                         CONVEC2A.1015   
CL                                                                         CONVEC2A.1016   
CL SUBROUTINE CONVEC2                                                      CONVEC2A.1017   
CL                                                                         CONVEC2A.1018   
CL UM DOCUMENTATION PAPER P27                                              CONVEC2A.1019   
CL SECTIONS (5),(6),(7),(8),(9),(10)                                       CONVEC2A.1020   
CL----------------------------------------------------------------------   CONVEC2A.1021   
CL                                                                         CONVEC2A.1022   
         CALL CONVEC2 (NINIT,NLEV,K,WORK2(1,1),WORK2(1,2),WORK2(1,3),      CONVEC2A.1023   
     *                WORK2(1,4),WORK2(1,5),WORK2(1,6),WORK2(1,18),        CONVEC2A.1024   
     *                WORK2(1,7),WORK2(1,8),WORK2(1,13),WORK2(1,14),       CONVEC2A.1025   
     *                WORK2(1,15),WORK2(1,16),WORK(1,2),WORK(1,3),         CONVEC2A.1026   
     *                WORK(1,4),WORK(1,5),WORK(1,6),WORK2(1,19),           CONVEC2A.1027   
     *                BWORK2(1,1),BWORK2(1,2),BWORK(1,1),BWORK2(1,3),      CONVEC2A.1028   
     *                BWORK(1,2),BWORK(1,3),WORK(1,8),WORK(1,9),           CONVEC2A.1029   
     *                WORK(1,10),WORK(1,11),WORK(1,12),WORK(1,13),         CONVEC2A.1030   
     *                BWORK(1,4),CCAC,ICCBC,ICCTC,TCWC,                    CONVEC2A.1031   
     *                WORK2(1,11),WORK2(1,12),WORK(1,14),                  CONVEC2A.1032   
     *                WORK(1,16),WORK2(1,9),WORK(1,17),WORK2(1,10),        CONVEC2A.1033   
     *                WORK(1,18),WORK(1,19),WORK(1,20),                    CONVEC2A.1034   
     *             CCLWPC,WORK(1,21),LCCAC,LCBASEC,LCTOPC,LCCLWPC,         API2F400.190    
     *             CAPE_C)                                                 API2F400.191    
CL                                                                         CONVEC2A.1036   
CL---------------------------------------------------------------------    CONVEC2A.1037   
CL EXPAND REQUIRED VECTORS BACK TO FULL FIELDS                             CONVEC2A.1038   
CL----------------------------------------------------------------------   CONVEC2A.1039   
CL                                                                         CONVEC2A.1040   
      DO 145 I=1,NPNTS                                                     CONVEC2A.1041   
        THP(I,K+1) = 0.0                                                   CONVEC2A.1042   
        QP(I,K+1) = 0.0                                                    CONVEC2A.1043   
        XPK(I) = 0.0                                                       CONVEC2A.1044   
        FLX(I,K+1)= 0.0                                                    CONVEC2A.1045   
        DEPTH(I) = 0.0                                                     CONVEC2A.1046   
        PRECIP(I,K+1) = 0.0                                                CONVEC2A.1047   
        BGMK(I) = .FALSE.                                                  CONVEC2A.1048   
        BTERM(I) = .FALSE.                                                 CONVEC2A.1049   
        BINIT(I) = .FALSE.                                                 CONVEC2A.1050   
  145 CONTINUE                                                             CONVEC2A.1051   
C                                                                          CONVEC2A.1052   
CDIR$ IVDEP                                                                CONVEC2A.1053   
! Fujitsu vectorization directive                                          GRB0F405.205    
!OCL NOVREC                                                                GRB0F405.206    
      DO 150 I=1,NINIT                                                     CONVEC2A.1054   
        THP(INDEX3(I),K+1) = WORK2(I,7)                                    CONVEC2A.1055   
        QP(INDEX3(I),K+1) = WORK2(I,8)                                     CONVEC2A.1056   
        XPK(INDEX3(I)) = WORK(I,6)                                         CONVEC2A.1057   
        FLX(INDEX3(I),K+1) = WORK2(I,19)                                   CONVEC2A.1058   
        DEPTH(INDEX3(I)) = WORK(I,8)                                       CONVEC2A.1059   
        PRECIP(INDEX3(I),K+1) = WORK(I,9)                                  CONVEC2A.1060   
        DTHBYDT(INDEX3(I),K) = WORK(I,10)                                  CONVEC2A.1061   
        DQBYDT(INDEX3(I),K) = WORK(I,11)                                   CONVEC2A.1062   
        DTHBYDT(INDEX3(I),K+1) = WORK(I,12)                                CONVEC2A.1063   
        DQBYDT(INDEX3(I),K+1) = WORK(I,13)                                 CONVEC2A.1064   
        CCA(INDEX3(I)) = CCAC(I)                                           CONVEC2A.1065   
        ICCB(INDEX3(I)) = ICCBC(I)                                         CONVEC2A.1066   
        ICCT(INDEX3(I)) = ICCTC(I)                                         CONVEC2A.1067   
        TCW(INDEX3(I)) = TCWC(I)                                           CONVEC2A.1068   
        CCLWP(INDEX3(I)) = CCLWPC(I)                                       CONVEC2A.1069   
        LCCA(INDEX3(I)) = LCCAC(I)                                         ARN2F304.215    
        LCBASE(INDEX3(I)) = LCBASEC(I)                                     ARN2F304.216    
        LCTOP(INDEX3(I)) = LCTOPC(I)                                       ARN2F304.217    
        LCCLWP(INDEX3(I)) = LCCLWPC(I)                                     ARN2F304.218    
        CCW(INDEX3(I),K+1) = WORK(I,21)                                    PI080793.41     
        CAPE(INDEX3(I)) = CAPE_C(I)                                        API2F400.192    
C                                                                          CONVEC2A.1070   
        BGMK(INDEX3(I)) = BWORK(I,1)                                       CONVEC2A.1071   
        BTERM(INDEX3(I)) = BWORK(I,3)                                      CONVEC2A.1072   
        BINIT(INDEX3(I)) = BWORK(I,4)                                      CONVEC2A.1073   
  150 CONTINUE                                                             CONVEC2A.1074   
C                                                                          CONVEC2A.1075   
       END IF                                                              CONVEC2A.1076   
C                                                                          CONVEC2A.1077   
      END IF                                                               CONVEC2A.1078   
C-------------------------------------------------------------------       API2F400.193    
C IF CONVECTION IS TERMINATING, READ VALUE OF CAPE INTO DIAGNOSTIC         API2F400.194    
C OUTPUT ARRAY AND RESET TO ZERO                                           API2F400.195    
C-------------------------------------------------------------------       API2F400.196    
C                                                                          API2F400.197    
      DO I=1,NPNTS                                                         API2F400.198    
       IF(BTERM(I))THEN                                                    API2F400.199    
        CAPE_OUT(I)=CAPE(I)                                                API2F400.200    
        CAPE(I)=0.0                                                        API2F400.201    
       END IF                                                              API2F400.202    
      END DO                                                               API2F400.203    
C                                                                          API2F400.204    
CL                                                                         CONVEC2A.1079   
CL---------------------------------------------------------------------    CONVEC2A.1080   
CL DOWNDRAUGHT CALCULATION                                                 CONVEC2A.1081   
CL                                                                         CONVEC2A.1082   
CL CARRIED OUT FOR THOSE CLOUD WHICH ARE TERMINATING                       CONVEC2A.1083   
CL                                                                         CONVEC2A.1084   
CL SUBROUTINE DD_CALL                                                      CONVEC2A.1085   
CL                                                                         CONVEC2A.1086   
CL UM DOCUMENTATION PAPER P27                                              CONVEC2A.1087   
CL SECTION (11)                                                            CONVEC2A.1088   
CL---------------------------------------------------------------------    CONVEC2A.1089   
CL                                                                         CONVEC2A.1090   
C                                                                          CONVEC2A.1091   
      NTERM = 0                                                            CONVEC2A.1092   
      DO 160 I=1,NPNTS                                                     CONVEC2A.1093   
*IF DEF,SCMA                                                               AJC0F405.169    
        DTHUD(I,K) = DTHBYDT(I,K)                                          AJC0F405.170    
        DQUD(I,K) = DQBYDT(I,K)                                            AJC0F405.171    
*ENDIF                                                                     AJC0F405.172    
        IF (BTERM(I)) THEN                                                 CONVEC2A.1094   
         NTERM = NTERM + 1                                                 CONVEC2A.1095   
        END IF                                                             CONVEC2A.1096   
  160 CONTINUE                                                             CONVEC2A.1097   
C                                                                          CONVEC2A.1098   
      IF (NTERM .NE. 0) THEN                                               CONVEC2A.1099   
C                                                                          CONVEC2A.1100   
         CALL DD_CALL (NP_FIELD,NPNTS,K,THP(1,1),QP(1,1),TH(1,1),Q(1,1),   CONVEC2A.1101   
     *                 DTHBYDT(1,1),DQBYDT(1,1),FLX(1,1),PSTAR,            CONVEC2A.1102   
     *                 AK,BK,AKM12,BKM12,DELAK,DELBK,EXNER(1,1),           CONVEC2A.1103   
     *                 PRECIP(1,1),RAIN,SNOW,ICCB,ICCT,BWATER(1,2),        CONVEC2A.1104   
     *                 BTERM,BGMK,TIMESTEP,CCA,NTERM,recip_pstar)          GSS1F403.96     
C                                                                          CONVEC2A.1106   
C---------------------------------------------------------------------     CONVEC2A.1107   
C ADJUSTMENT TO CLOUD BASE, TOP AND AMOUNT                                 CONVEC2A.1108   
C                                                                          CONVEC2A.1109   
C IF CLOUD BASE AND TOP ARE EQUAL THEN ERRORS OCCUR IN RADIATION SCHEME    CONVEC2A.1110   
C                                                                          CONVEC2A.1111   
C ONLY OCCURS IF CONVECTION SATURATES UPON FORCED DETRAINMENT              CONVEC2A.1112   
C                                                                          CONVEC2A.1113   
C WHEN OCCURS ZERO CLOUD BASE, TOP AND AMOUNT                              CONVEC2A.1114   
C                                                                          CONVEC2A.1115   
C---------------------------------------------------------------------     CONVEC2A.1116   
C                                                                          CONVEC2A.1117   
      DO I=1,NPNTS                                                         CONVEC2A.1118   
        IF (BTERM(I) .AND. ICCB(I) .EQ. ICCT(I)) THEN                      CONVEC2A.1119   
          ICCB(I) = 0.0                                                    CONVEC2A.1120   
          ICCT(I) = 0.0                                                    CONVEC2A.1121   
          CCA(I) = 0.0                                                     CONVEC2A.1122   
          TCW(I) = 0.0                                                     CONVEC2A.1123   
          CCLWP(I) = 0.0                                                   CONVEC2A.1124   
        END IF                                                             ARN2F304.219    
        IF (BTERM(I) .AND. LCBASE(I) .EQ. LCTOP(I)) THEN                   ARN2F304.220    
          LCBASE(I) = 0                                                    ARN2F304.221    
          LCTOP(I) = 0                                                     ARN2F304.222    
          LCCA(I) = 0.0                                                    ARN2F304.223    
          LCCLWP(I) = 0.0                                                  ARN2F304.224    
        END IF                                                             CONVEC2A.1125   
      END DO                                                               CONVEC2A.1126   
C                                                                          CONVEC2A.1127   
C---------------------------------------------------------------------     CONVEC2A.1128   
C RESET BTERM TO FALSE                                                     CONVEC2A.1129   
C---------------------------------------------------------------------     CONVEC2A.1130   
C                                                                          CONVEC2A.1131   
      DO 200 I=1,NPNTS                                                     CONVEC2A.1132   
  200  BTERM(I) = .FALSE.                                                  CONVEC2A.1133   
C                                                                          CONVEC2A.1134   
      END IF                                                               CONVEC2A.1135   
CL                                                                         CONVEC2A.1136   
CL=====================================================================    CONVEC2A.1137   
CL END OF MAIN LOOP                                                        CONVEC2A.1138   
CL=====================================================================    CONVEC2A.1139   
CL                                                                         CONVEC2A.1140   
  60  CONTINUE                                                             CONVEC2A.1141   
CL                                                                         CONVEC2A.1142   
CL---------------------------------------------------------------------    CONVEC2A.1143   
CL BALANCE ENERGY BUDGET BY APPLYING CORRECTION TO THE TEMPERATURES        CONVEC2A.1144   
CL                                                                         CONVEC2A.1145   
CL SUBROUTINE COR_ENGY                                                     CONVEC2A.1146   
CL                                                                         CONVEC2A.1147   
CL UM DOCUMENTATION PAPER P27                                              CONVEC2A.1148   
CL SECTION (12)                                                            CONVEC2A.1149   
CL---------------------------------------------------------------------    CONVEC2A.1150   
CL                                                                         CONVEC2A.1151   
      NCNLV = 0                                                            CONVEC2A.1152   
      DO 210 I=1,NPNTS                                                     CONVEC2A.1156   
        IF(BCNLV(I))THEN                                                   CONVEC2A.1157   
          NCNLV = NCNLV + 1                                                CONVEC2A.1158   
          INDEX4(NCNLV) = I                                                CONVEC2A.1159   
        END IF                                                             CONVEC2A.1160   
  210 CONTINUE                                                             CONVEC2A.1161   
C                                                                          CONVEC2A.1163   
C                                                                          CONVEC2A.1164   
C----------------------------------------------------------------------    CONVEC2A.1165   
C WORK SPACE USAGE FOR ENERGY CORRECTION CALCULATION                       CONVEC2A.1166   
C                                                                          CONVEC2A.1167   
C  REFERENCES TO WORK AND WORK2                                            CONVEC2A.1168   
C  REFER TO STARTING ADDRESS                                               CONVEC2A.1169   
C                                                                          CONVEC2A.1170   
C  LENGTH OF COMPRESSES DATA = NCNLV                                       CONVEC2A.1171   
C                                                                          CONVEC2A.1172   
C  WORK(1,1 TO NLEV)        = DTHBYDT(#,1 TO NLEV)                         CONVEC2A.1173   
C  WORK(1,NLEV+1 TO 2*NLEV) = DQBYDT(#,1 TO NLEV)                          CONVEC2A.1174   
C  WORK2(1,1 TO NLEV+1)     = EXNER(#,1 TO NLEV+1)                         CONVEC2A.1175   
C  WORK2(1,NLEV+2)          = TH(#,1)                                      CONVEC2A.1176   
C  WORK2(1,NLEV+3)          = PSTAR(#)                                     CONVEC2A.1177   
C----------------------------------------------------------------------    CONVEC2A.1178   
C                                                                          CONVEC2A.1179   
      IF (NCNLV .NE. 0)THEN                                                CONVEC2A.1180   
C                                                                          CONVEC2A.1187   
        CALL COR_ENGY (NP_FIELD,NPNTS,NCNLV,NLEV,DTHBYDT,DQBYDT,SNOW,      GSS1F403.97     
     *                EXNER,PSTAR,DELAK,DELBK,AKM12,BKM12,INDEX4)          GSS1F403.98     
C                                                                          CONVEC2A.1193   
CL                                                                         CONVEC2A.1204   
CL---------------------------------------------------------------------    CONVEC2A.1205   
CL  UPDATE MODEL POTENTIAL TEMPERATURE AND MIXING RATIO                    CONVEC2A.1206   
CL  WITH INCREMENTS DUE TO CONVECTION                                      CONVEC2A.1207   
CL---------------------------------------------------------------------    CONVEC2A.1208   
CL                                                                         CONVEC2A.1209   
        DO 250 K=1,NLEV                                                    CONVEC2A.1210   
         DO 250 I=1,NPNTS                                                  CONVEC2A.1211   
*IF DEF,SCMA                                                               AJC0F405.173    
           DTHDD(I,K) = DTHBYDT(I,K) - DTHUD(I,K)                          AJC0F405.174    
           DQDD(I,K) = DQBYDT(I,K) - DQUD(I,K)                             AJC0F405.175    
*ENDIF                                                                     AJC0F405.176    
           TH(I,K) = TH(I,K) + DTHBYDT(I,K) * TIMESTEP                     CONVEC2A.1212   
           Q(I,K) = Q(I,K) + DQBYDT(I,K) * TIMESTEP                        CONVEC2A.1213   
CL                                                                         AJX1F402.159    
CL---------------------------------------------------------------------    AJX1F402.160    
CL CALCULATE GRIDBOX MEAN DIAGNOSTICS                                      AJX1F402.161    
CL---------------------------------------------------------------------    AJX1F402.162    
CL                                                                         AJX1F402.163    
           IF (CCA(I) .NE. 0.0) THEN                                       AJX1F402.164    
             GBMCCW(I,K)  = CCA(I) * CCW(I,K)                              AJX1F402.165    
             IF (K.EQ.NLEV) THEN                                           AJX1F402.166    
               GBMCCWP(I)   = CCA(I) * CCLWP(I)                            AJX1F402.167    
               ICCBPxCCA(I) = CCA(I) *                                     AJX1F402.168    
     *                      (AK(ICCB(I)) + BK(ICCB(I)) * PSTAR(I))         AJX1F402.169    
               ICCTPxCCA(I) = CCA(I) *                                     AJX1F402.170    
     *                      (AK(ICCT(I)) + BK(ICCT(I)) * PSTAR(I))         AJX1F402.171    
             END IF                                                        AJX1F402.172    
           ENDIF                                                           AJX1F402.173    
  250   CONTINUE                                                           CONVEC2A.1214   
C                                                                          CONVEC2A.1215   
      END IF                                                               CONVEC2A.1216   
C                                                                          CONVEC2A.1217   
      RETURN                                                               CONVEC2A.1218   
      END                                                                  CONVEC2A.1219   
C                                                                          CONVEC2A.1220   
*ENDIF                                                                     CONVEC2A.1221