*IF DEF,A05_2C                                                             CONVEC2C.2      
C ******************************COPYRIGHT******************************    CONVEC2C.3      
C (c) CROWN COPYRIGHT 1996, METEOROLOGICAL OFFICE, All Rights Reserved.    CONVEC2C.4      
C                                                                          CONVEC2C.5      
C Use, duplication or disclosure of this code is subject to the            CONVEC2C.6      
C restrictions as set forth in the contract.                               CONVEC2C.7      
C                                                                          CONVEC2C.8      
C                Meteorological Office                                     CONVEC2C.9      
C                London Road                                               CONVEC2C.10     
C                BRACKNELL                                                 CONVEC2C.11     
C                Berkshire UK                                              CONVEC2C.12     
C                RG12 2SZ                                                  CONVEC2C.13     
C                                                                          CONVEC2C.14     
C If no contract has been raised with this copy of the code, the use,      CONVEC2C.15     
C duplication or disclosure of it is strictly prohibited.  Permission      CONVEC2C.16     
C to do so must first be obtained in writing from the Head of Numerical    CONVEC2C.17     
C Modelling at the above address.                                          CONVEC2C.18     
C ******************************COPYRIGHT******************************    CONVEC2C.19     
C                                                                          CONVEC2C.20     
CLL  SUBROUTINE CONVECT------------------------------------------------    CONVEC2C.21     
CLL                                                                        CONVEC2C.22     
CLL  PURPOSE : TOP LEVEL OF THE MASS FLUX CONVECTION SCHEME.               CONVEC2C.23     
CLL            LOOPS ROUND MODEL LEVELS FORM SURFACE UPWARDS               CONVEC2C.24     
CLL            A STABILITY TEST IS CARRIED OUT TO DETERMINE WHICH          CONVEC2C.25     
CLL            POINTS ARE TOO STABLE FOR CONVECTION TO OCCUR               CONVEC2C.26     
CLL            SUBROUTINE LIFTP AND CONVC2 ARE CALLED TO CALCULATE         CONVEC2C.27     
CLL            THE PARCEL ASCENT                                           CONVEC2C.28     
CLL            SUBROUTINE POUR IS CALLED TO CALCULATE THE EVAPORATION      CONVEC2C.29     
CLL            OF FALLING PRECIPITATION                                    CONVEC2C.30     
CLL            SUBROUTINE DD_CALL CALLS THE DOWNDRAUGHT CODE               CONVEC2C.31     
CLL            SUBROUTINE CORNRG IS CALLED TO CONSERVE MOIST STATIC        CONVEC2C.32     
CLL            ENERGY ONCE OTHER CALCULATIONS ARE COMPLETE                 CONVEC2C.33     
CLL                                                                        CONVEC2C.34     
CLL  SUITABLE FOR SINGLE COLUMN MODEL USE                                  CONVEC2C.35     
CLL                                                                        CONVEC2C.36     
CLL  MODEL            MODIFICATION HISTORY:                                CONVEC2C.37     
CLL VERSION  DATE                                                          CONVEC2C.38     
CLL   4.2   1/11/96   New deck version based on CONVEC2A with HADCM2       CONVEC2C.39     
CLL                   specific modifications: R Jones                      CONVEC2C.40     
CLL  4.3  Feb. 97   T3E optimisation: introduce recip_pstar,               GSS1F403.119    
CLL                   eliminate copying into workspace arrays              GSS1F403.120    
CLL                   for CORENG call.         S.J.Swarbrick               GSS1F403.121    
CLL   4.3   12.5.97   Correction to argument list for consistency with     AJG1F403.1      
CLL                   a change to the glue routine at 4.2                  AJG1F403.2      
!LL  4.4  Oct 97    Add halo mask to stop redundant calculations           AAD2F404.182    
!LL                                               Alan Dickinson           AAD2F404.183    
!LL  4.5  20/02/98  Remove redundant code. A. Dickinson                    ADR1F405.6      
!LL       23/02/98  Call comdecks. D. Robinson.                            ADR1F405.7      
CLL                                                                        CONVEC2C.41     
CLL  PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3       CONVEC2C.42     
CLL  VERSION NO. 4  Dated 05/02/92                                         CONVEC2C.43     
CLL                                                                        CONVEC2C.44     
CLL LOGICAL COMPONENTS INCLUDED:                                           CONVEC2C.45     
CLL                                                                        CONVEC2C.46     
CLL  SYSTEM TASK : P27                                                     CONVEC2C.47     
CLL                                                                        CONVEC2C.48     
CLL  DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER 27                  CONVEC2C.49     
CLL                                                                        CONVEC2C.50     
CLLEND-----------------------------------------------------------------    CONVEC2C.51     
C                                                                          CONVEC2C.52     
C*L  ARGUMENTS---------------------------------------------------------    CONVEC2C.53     
C                                                                          CONVEC2C.54     

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