*IF DEF,A05_3C                                                             CONVEC3C.2      
C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved.    CONVEC3C.3      
C                                                                          CONVEC3C.4      
C Use, duplication or disclosure of this code is subject to the            CONVEC3C.5      
C restrictions as set forth in the contract.                               CONVEC3C.6      
C                                                                          CONVEC3C.7      
C                Meteorological Office                                     CONVEC3C.8      
C                London Road                                               CONVEC3C.9      
C                BRACKNELL                                                 CONVEC3C.10     
C                Berkshire UK                                              CONVEC3C.11     
C                RG12 2SZ                                                  CONVEC3C.12     
C                                                                          CONVEC3C.13     
C If no contract has been raised with this copy of the code, the use,      CONVEC3C.14     
C duplication or disclosure of it is strictly prohibited.  Permission      CONVEC3C.15     
C to do so must first be obtained in writing from the Head of Numerical    CONVEC3C.16     
C Modelling at the above address.                                          CONVEC3C.17     
C ******************************COPYRIGHT******************************    CONVEC3C.18     
C                                                                          CONVEC3C.19     
CLL  SUBROUTINE CONVECT------------------------------------------------    CONVEC3C.20     
CLL                                                                        CONVEC3C.21     
CLL  PURPOSE : TOP LEVEL OF THE MASS FLUX CONVECTION SCHEME.               CONVEC3C.22     
CLL            LOOPS ROUND MODEL LEVELS FORM SURFACE UPWARDS               CONVEC3C.23     
CLL            A STABILITY TEST IS CARRIED OUT TO DETERMINE WHICH          CONVEC3C.24     
CLL            POINTS ARE TOO STABLE FOR CONVECTION TO OCCUR               CONVEC3C.25     
CLL            SUBROUTINE LIFTP AND CONVC2 ARE CALLED TO CALCULATE         CONVEC3C.26     
CLL            THE PARCEL ASCENT                                           CONVEC3C.27     
CLL            SUBROUTINE POUR IS CALLED TO CALCULATE THE EVAPORATION      CONVEC3C.28     
CLL            OF FALLING PRECIPITATION                                    CONVEC3C.29     
CLL            SUBROUTINE DD_CALL CALLS THE DOWNDRAUGHT CODE               CONVEC3C.30     
CLL            SUBROUTINE CORNRG IS CALLED TO CONSERVE MOIST STATIC        CONVEC3C.31     
CLL            ENERGY ONCE OTHER CALCULATIONS ARE COMPLETE                 CONVEC3C.32     
CLL                                                                        CONVEC3C.33     
CLL  SUITABLE FOR SINGLE COLUMN MODEL USE                                  CONVEC3C.34     
CLL                                                                        CONVEC3C.35     
CLL  MODEL            MODIFICATION HISTORY:                                CONVEC3C.36     
CLL VERSION  DATE                                                          CONVEC3C.37     
!LL   4.4   11/08/97  New version optimised for T3E.                       CONVEC3C.38     
!LL                   Not bit-reproducible with CONVEC3A.                  CONVEC3C.39     
!LL                                                     Alan Dickinson     CONVEC3C.40     
!LL  4.4   17/10/97  Loop splitting by hand for T3E optimisation           CONVEC3C.41     
!LL                                                   D.Salmond            CONVEC3C.42     
!LL  4.4  Oct 97    Add halo mask to stop redundant calculations           CONVEC3C.43     
!LL                                               Alan Dickinson           CONVEC3C.44     
CLL  4.4   29/08/97  Pass switch L_CCW down to CLOUD_W to determine if     CONVEC3C.45     
CLL                  precip is included in water path and pass in switch   CONVEC3C.46     
CLL                  L_3D_CCA to determine if a 3D conv cloud amount       CONVEC3C.47     
CLL                  should be calculated in new subroutine CALC_3D_CCA.   CONVEC3C.48     
!LL  4.5   30/04/98  Loop splitting by hand for T3E optimisation           APB3F405.374    
!LL  4.5   19/05/98  Pass L_PHASE_LIM down to DD_CALL to determine         AJX1F405.17     
!LL                  treatment of precip below cloud base. Julie Gregory   AJX1F405.18     
!LL  4.5   5/6/98    Updraught factor and L_CLOUD_DEEP passed into         AJX1F405.19     
!LL                  convection as part of anvil scheme.   Julie Gregory   AJX1F405.20     
CLL   4.5    Jul. 98  Kill the IBM specific lines (JCThil)                 AJC1F405.26     
!LL  4.5   13/02/98  Add missing code in CONVEC3C for new CCA/Anvil        ADR1F405.27     
!LL                  scheme. D. Robinson.                                  ADR1F405.28     
CLL                                                                        CONVEC3C.49     
CLL                                                                        CONVEC3C.50     
CLL  PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3       CONVEC3C.51     
CLL  VERSION NO. 4  Dated 05/02/92                                         CONVEC3C.52     
CLL                                                                        CONVEC3C.53     
CLL LOGICAL COMPONENTS INCLUDED:                                           CONVEC3C.54     
CLL                                                                        CONVEC3C.55     
CLL  SYSTEM TASK : P27                                                     CONVEC3C.56     
CLL                                                                        CONVEC3C.57     
CLL  DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER 27                  CONVEC3C.58     
CLL                                                                        CONVEC3C.59     
CLLEND-----------------------------------------------------------------    CONVEC3C.60     
C                                                                          CONVEC3C.61     
C*L  ARGUMENTS---------------------------------------------------------    CONVEC3C.62     
C                                                                          CONVEC3C.63     

      SUBROUTINE CONVECT(NP_FIELD,NPNTS,NLEV,NBL,TH,Q,PSTAR,BLAND,U,V,      3,46CONVEC3C.64     
     *                   TRACER,DTHBYDT,DQBYDT,DUBYDT,DVBYDT,RAIN,SNOW,    CONVEC3C.65     
     *                   CCA,ICCB,ICCT,CCLWP,CCW,ICCBPxCCA,ICCTPxCCA,      CONVEC3C.66     
     *                   GBMCCWP,GBMCCW,LCBASE,LCTOP,LCCA,                 CONVEC3C.67     
     *                   LCCLWP,CAPE_OUT,EXNER,AK,BK,                      CONVEC3C.68     
     *                   AKM12,BKM12,DELAK,DELBK,TIMESTEP,T1_SD,Q1_SD,     CONVEC3C.69     
     &                   L_MOM,L_TRACER,L_CAPE,NTRA,TRLEV,L_XSCOMP,        CONVEC3C.70     
     &                   L_SDXS,N_CCA_LEV,L_3D_CCA,L_CCW,MPARWTR           CONVEC3C.71     
     &                  ,ANVIL_FACTOR ,TOWER_FACTOR                        CONVEC3C.72     
*IF DEF,MPP                                                                CONVEC3C.73     
     &     ,l_halo                                                         CONVEC3C.74     
*ENDIF                                                                     CONVEC3C.75     
     &                  ,UD_FACTOR,L_CLOUD_DEEP,L_PHASE_LIM                AJX1F405.21     
     &                  ,UP_FLUX,FLG_UP_FLX,DWN_FLUX,FLG_DWN_FLX           AJX1F405.22     
     &                  ,ENTRAIN_UP,FLG_ENTR_UP,DETRAIN_UP                 AJX1F405.23     
     &                  ,FLG_DETR_UP,ENTRAIN_DWN,FLG_ENTR_DWN              AJX1F405.24     
     &                  ,DETRAIN_DWN,FLG_DETR_DWN                          AJX1F405.25     
     &                  )                                                  CONVEC3C.76     
!                                                                          CONVEC3C.77     
      IMPLICIT NONE                                                        CONVEC3C.78     
C                                                                          CONVEC3C.79     
C                                                                          CONVEC3C.83     
C--------------------------------------------------------------------      CONVEC3C.84     
C MODEL CONSTANTS                                                          CONVEC3C.85     
C--------------------------------------------------------------------      CONVEC3C.86     
C                                                                          CONVEC3C.87     
*CALL PARXS                                                                CONVEC3C.88     
*CALL C_EPSLON                                                             CONVEC3C.89     
*CALL C_R_CP                                                               CONVEC3C.90     
*CALL XSBMIN                                                               CONVEC3C.91     
*CALL MPARB                                                                CONVEC3C.92     
*CALL DELTHST                                                              CONVEC3C.93     
*CALL C_LHEAT                                                              CONVEC3C.94     
*CALL MASSFC                                                               CONVEC3C.95     
*CALL ENTCNST                                                              CONVEC3C.96     
*CALL CAPECNST                                                             CONVEC3C.97     
*CALL QSTICE                                                               CONVEC3C.98     
*CALL C_0_DG_C                                                             CONVEC3C.99     
*CALL C_G                                                                  AJX4F405.8      
C                                                                          CONVEC3C.100    
*IF DEF,CRAY                                                               CONVEC3C.101    
*IF DEF,CRAY,AND,-DEF,T3D                                                  CONVEC3C.102    
      INTRINSIC MINVAL                   ! FOR  TRACERS                    CONVEC3C.103    
*ENDIF                                                                     CONVEC3C.104    
*ENDIF                                                                     CONVEC3C.105    
C---------------------------------------------------------------------     CONVEC3C.106    
C VECTOR LENGTHS AND LOOP COUNTERS                                         CONVEC3C.107    
C---------------------------------------------------------------------     CONVEC3C.108    
C                                                                          CONVEC3C.109    
      INTEGER NP_FIELD            ! LENGTH OF DATA (ALSO USED TO           CONVEC3C.110    
                                  ! SPECIFY STARTING POINT OF              CONVEC3C.111    
                                  ! DATA PASSED IN)                        CONVEC3C.112    
C                                                                          CONVEC3C.113    
      INTEGER NPNTS               ! IN FULL VECTOR LENGTH                  CONVEC3C.114    
C                                                                          CONVEC3C.115    
      INTEGER NLEV                ! IN NUMBER OF MODEL LAYERS              CONVEC3C.116    
C                                                                          CONVEC3C.117    
      INTEGER NBL                 ! IN NUMBER OF BOUNDARY LAYER LEVELS     CONVEC3C.118    
C                                                                          CONVEC3C.119    
      INTEGER NCONV               ! NUMBER OF POINTS WHICH PASS            CONVEC3C.120    
                                  ! INITIAL STABILITY TEST IN LAYER K      CONVEC3C.121    
C                                                                          CONVEC3C.122    
      INTEGER NINIT               ! NUMBER OF POINTS AT WHICH              CONVEC3C.123    
                                  ! CONVECTION OCCURS IN LAYER K           CONVEC3C.124    
C                                                                          CONVEC3C.125    
      INTEGER NTERM               ! NUMBER OF CONVECTING POINTS IN         CONVEC3C.126    
                                  ! LAYER K AT WHICH CONVECTION IS         CONVEC3C.127    
                                  ! TERMINATING                            CONVEC3C.128    
C                                                                          CONVEC3C.129    
      INTEGER NCNLV               ! NUMBER OF POINTS AT WHICH CONVECTION   CONVEC3C.130    
                                  ! OCCURS AT SOME LAYER OF THE DOMAIN     CONVEC3C.131    
C                                                                          CONVEC3C.132    
      INTEGER NTRA                ! NUMBER OF TRACER FIELDS                CONVEC3C.133    
C                                                                          CONVEC3C.134    
      INTEGER TRLEV               ! NUMBER OF MODEL LEVELS ON WHICH        CONVEC3C.135    
                                  ! TRACERS ARE INCLUDED                   CONVEC3C.136    
C                                                                          CONVEC3C.137    
      INTEGER I,K,KC,KTRA,K_TEST, ! LOOP COUNTERS                          CONVEC3C.138    
     *        KT                                                           CONVEC3C.139    
C                                                                          CONVEC3C.140    
      INTEGER N_CCA_LEV           ! Number of levels for conv cloud        CONVEC3C.141    
!                                 ! amount: 1 for 2D, nlevs for 3D.        CONVEC3C.142    
C                                                                          CONVEC3C.143    
C---------------------------------------------------------------------     CONVEC3C.144    
C VARIABLES WHICH ARE INPUT                                                CONVEC3C.145    
C---------------------------------------------------------------------     CONVEC3C.146    
C                                                                          CONVEC3C.147    
      LOGICAL BLAND(NP_FIELD)     ! IN LAND/SEA MASK                       CONVEC3C.148    
C                                                                          CONVEC3C.149    
      LOGICAL L_TRACER            ! IN SWITCH FOR INCLUSION OF TRACERS     CONVEC3C.150    
C                                                                          CONVEC3C.151    
      LOGICAL L_MOM               ! IN SWITCH FOR INCLUSION OF             CONVEC3C.152    
                                  !    MOMENTUM TRANSPORTS                 CONVEC3C.153    
C                                                                          CONVEC3C.154    
      LOGICAL L_CAPE              ! IN SWITCH FOR USE OF CAPE CLOSURE      CONVEC3C.155    
C                                                                          CONVEC3C.156    
      LOGICAL L_XSCOMP            ! IN Switch for allowing compensating    CONVEC3C.157    
                                  !    cooling and drying of the           CONVEC3C.158    
                                  !    environment in initiating layer     CONVEC3C.159    
C                                                                          CONVEC3C.160    
      LOGICAL L_SDXS              ! IN Switch for allowing parcel excess   CONVEC3C.161    
                                  !    to be set to s.d. of turbulent      CONVEC3C.162    
                                  !    fluctuations in lowest model        CONVEC3C.163    
                                  !    layer                               CONVEC3C.164    
C                                                                          CONVEC3C.165    
      LOGICAL L_3D_CCA            ! IN Switch for conv cld amt varying     CONVEC3C.166    
!                                 !    with height (3D), or not (2D)       CONVEC3C.167    
      LOGICAL L_CCW               ! IN Switch for allowing precip          CONVEC3C.168    
                                  !    before calculation of water         CONVEC3C.169    
                                  !    path.                               CONVEC3C.170    
!                                                                          AJX1F405.26     
      LOGICAL L_PHASE_LIM         ! IN Switch to determine if phase        AJX1F405.27     
!                                 !    change of precip is limited so LH   AJX1F405.28     
!                                 !    does not make temp go other side    AJX1F405.29     
!                                 !    of TM.                              AJX1F405.30     
!                                                                          AJX1F405.31     
      LOGICAL L_CLOUD_DEEP        ! IN Switch for depth criterion for      AJX1F405.32     
!                                 !    anvil clouds.                       AJX1F405.33     
!                                                                          AJX1F405.34     
      REAL PSTAR(NP_FIELD)        ! IN SURFACE PRESSURE (PA)               CONVEC3C.171    
C                                                                          CONVEC3C.172    
      REAL EXNER(NP_FIELD,NLEV+1) ! IN EXNER RATIO                         CONVEC3C.173    
C                                                                          CONVEC3C.174    
      REAL AK(NLEV),              ! IN HYBRID CO-ORDINATE COEFFICIENTS     CONVEC3C.175    
     *     BK(NLEV)               !    DEFINE PRESSURE AT MID-POINT        CONVEC3C.176    
                                  !    OF LAYER K                          CONVEC3C.177    
C                                                                          CONVEC3C.178    
      REAL AKM12(NLEV+1),         ! IN HYBRID CO-ORDINATE COEFFICIENTS     CONVEC3C.179    
     *     BKM12(NLEV+1)          !    TO DEFINE PRESSURE AT               CONVEC3C.180    
                                  !    LEVEL K-1/2                         CONVEC3C.181    
C                                                                          CONVEC3C.182    
      REAL DELAK(NLEV),           ! IN DIFFERENCE IN HYBRID CO-ORDINATE    CONVEC3C.183    
     *     DELBK(NLEV)            !    COEFFICIENTS ACROSS LAYER K         CONVEC3C.184    
C                                                                          CONVEC3C.185    
      REAL TIMESTEP               ! IN MODEL TIMESTEP (SECS)               CONVEC3C.186    
C                                                                          CONVEC3C.187    
      REAL T1_SD(NP_FIELD)        ! IN Standard deviation of turbulent     CONVEC3C.188    
C                                 !    fluctuations of layer 1             CONVEC3C.189    
C                                 !    temperature (K).                    CONVEC3C.190    
      REAL Q1_SD(NP_FIELD)        ! IN Standard deviation of turbulent     CONVEC3C.191    
C                                 !    fluctuations of layer 1             CONVEC3C.192    
C                                 !    humidity (kg/kg).                   CONVEC3C.193    
      REAL MPARWTR                ! IN Reservoir of conv cld water left    CONVEC3C.194    
!                                 !    in a layer after conv. precip.      CONVEC3C.195    
      REAL ANVIL_FACTOR           ! IN used in calculation of cld. amt.    CONVEC3C.196    
     &    ,TOWER_FACTOR           !    on model levels if L_3D_CCA = .T.   CONVEC3C.197    
!                                                                          AJX3F405.52     
      REAL UD_FACTOR              ! IN Updraught factor: used in conv.     AJX3F405.53     
!                                 !    cloud water path as seen by rad.    AJX3F405.54     
!                                 !    if L_CCW is true.                   AJX3F405.55     
                                                                           CONVEC3C.198    
*IF DEF,MPP                                                                CONVEC3C.199    
      LOGICAL l_halo(NP_FIELD)  ! Mask for halos                           CONVEC3C.200    
*ENDIF                                                                     CONVEC3C.201    
      LOGICAL FLG_UP_FLX          ! STASH FLAG FOR UPDRAUGHT MASS FLUX     API2F405.236    
C                                                                          CONVEC3C.202    
      LOGICAL FLG_DWN_FLX         ! STASH FLAG FOR DOWNDRAUGHT MASS FLUX   API2F405.237    
C                                                                          API2F405.238    
      LOGICAL FLG_ENTR_UP         ! STASH FLAG FOR UPDRAUGHT ENTRAINMENT   API2F405.239    
C                                                                          API2F405.240    
      LOGICAL FLG_ENTR_DWN        ! STASH FLAG FOR DOWNDRAUGHT ENTRAINMN   API2F405.241    
C                                                                          API2F405.242    
      LOGICAL FLG_DETR_UP         ! STASH FLAG FOR UPDRAUGHT DETRAINMENT   API2F405.243    
C                                                                          API2F405.244    
      LOGICAL FLG_DETR_DWN        ! STASH FLAG FOR DOWNDRAUGHT DETRAINMN   API2F405.245    
C                                                                          API2F405.246    
C---------------------------------------------------------------------     CONVEC3C.203    
C  VARIABLES WHICH ARE INPUT AND OUTPUT                                    CONVEC3C.204    
C---------------------------------------------------------------------     CONVEC3C.205    
C                                                                          CONVEC3C.206    
      REAL TH(NP_FIELD,NLEV)      ! INOUT                                  CONVEC3C.207    
                                  ! IN MODEL POTENTIAL TEMPERATURE (K)     CONVEC3C.208    
                                  ! OUT MODEL POTENTIAL TEMPERATURE        CONVEC3C.209    
                                  !     AFTER CONVECTION (K)               CONVEC3C.210    
C                                                                          CONVEC3C.211    
      REAL Q(NP_FIELD,NLEV)       ! INOUT                                  CONVEC3C.212    
                                  ! IN MODEL MIXING RATIO (KG/KG)          CONVEC3C.213    
                                  ! OUT MODEL MIXING RATIO AFTER           CONVEC3C.214    
                                  !     AFTER CONVECTION (KG/KG)           CONVEC3C.215    
C                                                                          CONVEC3C.216    
      REAL U(NP_FIELD,NLEV)       ! INOUT                                  CONVEC3C.217    
                                  ! IN MODEL U FIELD (M/S)                 CONVEC3C.218    
                                  ! OUT MODEL U FIELD AFTER CONVECTIVE     CONVEC3C.219    
                                  !     MOMENTUM TRANSPORT (M/S)           CONVEC3C.220    
C                                                                          CONVEC3C.221    
      REAL V(NP_FIELD,NLEV)       ! INOUT                                  CONVEC3C.222    
                                  ! IN MODEL V FIELD (M/S)                 CONVEC3C.223    
                                  ! OUT MODEL V FIELD AFTER CONVECTIVE     CONVEC3C.224    
                                  !     MOMENTUM TRANSPORT (M/S)           CONVEC3C.225    
C                                                                          CONVEC3C.226    
      REAL TRACER(NP_FIELD,TRLEV, ! INOUT                                  CONVEC3C.227    
     *            NTRA)           ! IN  MODEL TRACER FIELDS (KG/KG)        CONVEC3C.228    
                                  ! OUT MODEL TRACER FIELDS AFTER          CONVEC3C.229    
                                  !     CONVECTION (KG/KG)                 CONVEC3C.230    
C                                                                          CONVEC3C.231    
C                                                                          CONVEC3C.232    
C----------------------------------------------------------------------    CONVEC3C.233    
C VARIABLES WHICH ARE OUTPUT                                               CONVEC3C.234    
C----------------------------------------------------------------------    CONVEC3C.235    
C                                                                          CONVEC3C.236    
      REAL DTHBYDT(NP_FIELD,NLEV) ! OUT INCREMENTS TO POTENTIAL            CONVEC3C.237    
                                  !     TEMPERATURE DUE TO CONVECTION      CONVEC3C.238    
                                  !     (K/S)                              CONVEC3C.239    
C                                                                          CONVEC3C.240    
      REAL DQBYDT(NP_FIELD,NLEV)  ! OUT INCREMENTS TO MIXING RATIO         CONVEC3C.241    
                                  !     DUE TO CONVECTION (KG/KG/S)        CONVEC3C.242    
C                                                                          CONVEC3C.243    
      REAL DUBYDT(NP_FIELD,NLEV)  ! OUT INCREMENTS TO U DUE TO             CONVEC3C.244    
                                  !     CONVECTIVE MOMENTUM TRANSPORT      CONVEC3C.245    
                                  !     (M/S**2)                           CONVEC3C.246    
C                                                                          CONVEC3C.247    
      REAL DVBYDT(NP_FIELD,NLEV)  ! OUT INCREMENTS TO V DUE TO             CONVEC3C.248    
                                  !     CONVECTIVE MOMENTUM TRANSPORT      CONVEC3C.249    
                                  !     (M/S**2)                           CONVEC3C.250    
C                                                                          CONVEC3C.251    
      REAL RAIN(NP_FIELD)         ! OUT SURFACE CONVECTIVE RAINFALL        CONVEC3C.252    
                                  !     (KG/M**2/S)                        CONVEC3C.253    
C                                                                          CONVEC3C.254    
      REAL SNOW(NP_FIELD)         ! OUT SURFACE CONVECTIVE SNOWFALL        CONVEC3C.255    
                                  !     (KG/M**2/S)                        CONVEC3C.256    
C                                                                          CONVEC3C.257    
      REAL CCA(NP_FIELD,N_CCA_LEV)! OUT CONVECTIVE CLOUD AMOUNT (%)        CONVEC3C.258    
C                                                                          CONVEC3C.259    
      INTEGER ICCB(NP_FIELD)      ! OUT CONVECTIVE CLOUD BASE LEVEL        CONVEC3C.260    
C                                                                          CONVEC3C.261    
      INTEGER ICCT(NP_FIELD)      ! OUT CONVECTIVE CLOUD TOP LEVEL         CONVEC3C.262    
C                                                                          CONVEC3C.263    
      REAL CCLWP(NP_FIELD)        ! OUT CONDENSED WATER PATH (KG/M**2)     CONVEC3C.264    
C                                                                          CONVEC3C.265    
      REAL CCW(NP_FIELD,NLEV)     ! OUT CONVECTIVE CLOUD LIQUID WATER      CONVEC3C.266    
                                  ! (G/KG) ON MODEL LEVELS                 CONVEC3C.267    
C                                                                          CONVEC3C.268    
      REAL ICCBPxCCA(NP_FIELD)    ! OUT CONV. CLD BASE PRESSURE x CCA      CONVEC3C.269    
C                                                                          CONVEC3C.270    
      REAL ICCTPxCCA(NP_FIELD)    ! OUT CONV. CLD TOP PRESSURE x CCA       CONVEC3C.271    
C                                                                          CONVEC3C.272    
      REAL GBMCCWP(NP_FIELD)      ! OUT GRIDBOX MEAN CCWP                  CONVEC3C.273    
C                                                                          CONVEC3C.274    
      REAL GBMCCW(NP_FIELD,NLEV)  ! OUT GRIDBOX MEAN CCW                   CONVEC3C.275    
C                                                                          CONVEC3C.276    
      REAL LCCA(NP_FIELD)         ! OUT LOWEST CONV.CLOUD AMOUNT (%)       CONVEC3C.277    
C                                                                          CONVEC3C.278    
      INTEGER LCBASE(NP_FIELD)    ! OUT LOWEST CONV.CLOUD BASE LEVEL       CONVEC3C.279    
C                                                                          CONVEC3C.280    
      INTEGER LCTOP(NP_FIELD)     ! OUT LOWEST CONV.CLOUD TOP LEVEL        CONVEC3C.281    
C                                                                          CONVEC3C.282    
      REAL LCCLWP(NP_FIELD)       ! OUT CONDENSED WATER PATH (KG/M**2)     CONVEC3C.283    
                                  !     FOR LOWEST CONV.CLOUD              CONVEC3C.284    
C                                                                          CONVEC3C.285    
      REAL CAPE_OUT(NPNTS)        ! OUT SAVED VALUES OF CONVECTIVE         CONVEC3C.286    
                                  !     AVAILABLE POTENTIAL ENERGY         CONVEC3C.287    
                                  !     FOR DIAGNOSTIC OUTPUT              CONVEC3C.288    
      REAL UP_FLUX(NP_FIELD,NLEV)     ! OUT UPDRAUGHT MASS FLUX            API2F405.247    
C                                                                          CONVEC3C.289    
      REAL DWN_FLUX(NP_FIELD,NLEV)  ! OUT DOWNDRAUGHT MASS FLUX            API2F405.248    
C                                                                          API2F405.249    
      REAL ENTRAIN_UP(NP_FIELD,NLEV)  ! FRACTIONAL ENTRAINMENT RATE        API2F405.250    
                                      ! INTO UPDRAUGHTS                    API2F405.251    
      REAL DETRAIN_UP(NP_FIELD,NLEV)  ! FRACTIONAL DETRAINMENT RATE        API2F405.252    
                                      ! FROM UPDRAUGHTS                    API2F405.253    
      REAL ENTRAIN_DWN(NP_FIELD,NLEV) ! FRACTIONAL ENTRAINMENT RATE        API2F405.254    
                                      ! INTO DOWNDRAUGHTS                  API2F405.255    
      REAL DETRAIN_DWN(NP_FIELD,NLEV) ! FRACTIONAL DETRAINMENT RATE        API2F405.256    
                                      ! FROM DOWNDRAUGHTS                  API2F405.257    
C                                                                          API2F405.258    
C                                                                          API2F405.259    
C----------------------------------------------------------------------    CONVEC3C.290    
C VARIABLES DEFINED LOCALLY                                                CONVEC3C.291    
C                                                                          CONVEC3C.292    
      REAL WORK(NPNTS,NLEV*2),    !  WORK SPACE                            CONVEC3C.535    
     *     WORK2(NPNTS,NLEV*2)                                             CONVEC3C.536    
      LOGICAL BWORK(NPNTS,4),     ! WORK SPACE FOR 'BIT' MASKS             CONVEC3C.537    
     *        BWORK2(NPNTS,4)                                              CONVEC3C.538    
C                                                                          CONVEC3C.539    
      REAL CAPE(NPNTS)            ! CONVECTIVE AVAILABLE POTENTIAL         CONVEC3C.540    
                                  ! ENERGY (J/KG)                          CONVEC3C.541    
C                                                                          CONVEC3C.542    
      REAL DCPBYDT(NPNTS)         ! RATE OF CHANGE OF CAPE                 CONVEC3C.543    
C                                                                          CONVEC3C.544    
      REAL CAPE_C(NPNTS)          ! CAPE - COMPRESSED                      CONVEC3C.545    
C                                                                          CONVEC3C.546    
      REAL DCPBYDT_C(NPNTS)       ! RATE OF CHANGE OF CAPE - COMPRESSED    CONVEC3C.547    
C                                                                          CONVEC3C.548    
      REAL DTHEF(NPNTS)           ! THETA INCREMENT FROM CONVECTION        CONVEC3C.549    
                                  ! IN MODEL LEVEL AT WHICH SPLIT          CONVEC3C.550    
                                  ! FINAL DETRAINMENT LAST OCCURRED        CONVEC3C.551    
                                  ! (K/S)                                  CONVEC3C.552    
C                                                                          CONVEC3C.553    
      REAL DQF(NPNTS)             ! SPECIFIC HUMIDITY INCREMENT FROM       CONVEC3C.554    
                                  ! CONVECTION IN MODEL LEVEL AT WHICH     CONVEC3C.555    
                                  ! SPLIT FINAL DETRAINMENT LAST           CONVEC3C.556    
                                  ! OCCURRED (KG/KG/S)                     CONVEC3C.557    
C                                                                          CONVEC3C.558    
      REAL DUEF(NPNTS)            ! AS DTHEF BUT FOR U INCREMENTS (ms-2)   API1F405.31     
!                                                                          API1F405.32     
      REAL DVEF(NPNTS)            ! AS DTHEF BUT FOR V INCREMENTS (ms-2)   API1F405.33     
!                                                                          API1F405.34     
      LOGICAL BCONV(NPNTS)        ! MASK FOR POINTS WHERE STABILITY        CONVEC3C.559    
                                  ! LOW ENOUGH FOR CONVECTION              CONVEC3C.560    
                                  ! TO OCCUR                               CONVEC3C.561    
C                                                                          CONVEC3C.562    
      REAL QSE(NPNTS,NLEV)        ! SATURATION MIXING RATIO OF CLOUD       CONVEC3C.563    
                                  ! ENVIRONMENT (KG/KG)                    CONVEC3C.564    
C                                                                          CONVEC3C.565    
      REAL TT(NPNTS)              ! TEMPORARY STORE FOR TEMPERATURE        CONVEC3C.566    
                                  ! IN CALCULATION OF SATURATION           CONVEC3C.567    
                                  ! MIXING RATIO (K)                       CONVEC3C.568    
C                                                                          CONVEC3C.569    
      REAL TTKM1(NPNTS)           ! TEMPORARY STORE FOR TEMPERATURE        CONVEC3C.570    
                                  ! IN LAYER K-1 FOR USE IN FREEZING       CONVEC3C.571    
                                  ! LEV. CALCULATION FOR ANVIL (K)         CONVEC3C.572    
C                                                                          CONVEC3C.573    
      REAL PT(NPNTS)              ! TEMPORARY STORE FOR PRESSURE           CONVEC3C.574    
                                  ! IN CALCULATION OF SATURATION           CONVEC3C.575    
                                  ! MIXING RATIO (PA)                      CONVEC3C.576    
C                                                                          CONVEC3C.577    
      REAL CCA_2DC(NPNTS)         ! COMPRESSED VALUES OF 2D CCA            CONVEC3C.578    
C                                                                          CONVEC3C.579    
      INTEGER ICCBC(NPNTS)        ! COMPRESSED VALUES OF CCB               CONVEC3C.580    
C                                                                          CONVEC3C.581    
      INTEGER ICCTC(NPNTS)        ! COMPRESSED VALUES OF CCT               CONVEC3C.582    
C                                                                          CONVEC3C.583    
      REAL TCW(NPNTS)             ! TOTAL CONDENSED WATER (KG/M**2/S)      CONVEC3C.584    
C                                                                          CONVEC3C.585    
      REAL TCWC(NPNTS)            ! COMPRESSED VALUES OF TCW               CONVEC3C.586    
C                                                                          CONVEC3C.587    
      REAL CCLWPC(NPNTS)          ! COMPRESSED VALUE OF CCLWP              CONVEC3C.588    
C                                                                          CONVEC3C.589    
      REAL LCCAC(NPNTS)           ! COMPRESSED VALUES OF LCCA              CONVEC3C.590    
C                                                                          CONVEC3C.591    
      INTEGER LCBASEC(NPNTS)      ! COMPRESSED VALUES OF LCBASE            CONVEC3C.592    
C                                                                          CONVEC3C.593    
      INTEGER LCTOPC(NPNTS)       ! COMPRESSED VALUES OF LCTOP             CONVEC3C.594    
C                                                                          CONVEC3C.595    
      REAL LCCLWPC(NPNTS)         ! COMPRESSED VALUE OF LCCLWP             CONVEC3C.596    
C                                                                          CONVEC3C.597    
      REAL DQSTHK(NPNTS)          ! GRADIENT OF SATURATION MIXING          CONVEC3C.598    
                                  ! RATIO OF CLOUD ENVIRONMENT WITH        CONVEC3C.599    
                                  ! POTENTIAL TEMPERATURE IN LAYER K       CONVEC3C.600    
                                  ! (KG/KG/K)                              CONVEC3C.601    
C                                                                          CONVEC3C.602    
      REAL DQSTHKP1(NPNTS)        ! GRADIENT OF SATURATION MIXING          CONVEC3C.603    
                                  ! RATIO OF CLOUD ENVIRONMENT WITH        CONVEC3C.604    
                                  ! POTENTIAL TEMPERATURE IN LAYER K+1     CONVEC3C.605    
                                  ! (KG/KG/K)                              CONVEC3C.606    
C                                                                          CONVEC3C.607    
      REAL DTRABYDT(NPNTS,NLEV,   ! INCREMENT TO TRACER DUE TO             CONVEC3C.608    
     *              NTRA)         ! CONVECTION (KG/KG/S)                   CONVEC3C.609    
C                                                                          CONVEC3C.610    
      REAL PRECIP(NPNTS,NLEV)     ! AMOUNT OF PRECIPITATION                CONVEC3C.611    
                                  ! FROM EACH LAYER (KG/M*:2/S)            CONVEC3C.612    
C                                                                          CONVEC3C.613    
      REAL THPI(NPNTS)            ! INITIAL PARCEL POTENTIAL TEMPERATURE   CONVEC3C.614    
                                  ! (K)                                    CONVEC3C.615    
C                                                                          CONVEC3C.616    
      REAL QPI(NPNTS)             ! INITIAL PARCEL MIXING RATIO            CONVEC3C.617    
                                  ! (KG/KG)                                CONVEC3C.618    
C                                                                          CONVEC3C.619    
      REAL TRAPI(NPNTS,NTRA)      ! INITIAL PARCEL TRACER CONTENT          CONVEC3C.620    
                                  ! (KG/KG)                                CONVEC3C.621    
C                                                                          CONVEC3C.622    
      REAL THP(NPNTS,NLEV)        ! PARCEL POTENTIAL TEMPERATURE           CONVEC3C.623    
                                  ! IN LAYER K (K)                         CONVEC3C.624    
C                                                                          CONVEC3C.625    
      REAL QP(NPNTS,NLEV)         ! PARCEL MIXING RATIO IN LAYER K         CONVEC3C.626    
                                  ! (KG/KG)                                CONVEC3C.627    
C                                                                          CONVEC3C.628    
      REAL UP(NPNTS,NLEV)         ! PARCEL U IN LAYER K (M/S)              CONVEC3C.629    
C                                                                          CONVEC3C.630    
      REAL VP(NPNTS,NLEV)         ! PARCEL V IN LAYER K (M/S)              CONVEC3C.631    
C                                                                          CONVEC3C.632    
      REAL TRAP(NPNTS,NLEV,NTRA)  ! PARCEL TRACER CONTENT IN LAYER K       CONVEC3C.633    
                                  ! (KG/KG)                                CONVEC3C.634    
C                                                                          CONVEC3C.635    
      REAL XPK(NPNTS,NLEV)        ! PARCEL CLOUD WATER IN LAYER K          CONVEC3C.636    
                                  ! (KG/KG)                                CONVEC3C.637    
C                                                                          CONVEC3C.638    
      REAL FLX(NPNTS,NLEV)        ! PARCEL MASSFLUX IN LAYER K (PA/S)      CONVEC3C.639    
C                                                                          CONVEC3C.640    
      REAL FLX_INIT(NPNTS)        ! INITIAL MASSFLUX AT CLOUD BASE         CONVEC3C.641    
                                  ! (PA/S)                                 CONVEC3C.642    
C                                                                          CONVEC3C.643    
      REAL FLX_INIT_NEW(NPNTS)    ! INITIAL MASSFLUX AT CLOUD BASE,        CONVEC3C.644    
                                  ! SCALED TO DESTROY CAPE OVER            CONVEC3C.645    
                                  ! GIVEN TIMESCALE (PA/S)                 CONVEC3C.646    
C                                                                          CONVEC3C.647    
      REAL FLXMAX_INIT(NPNTS)     ! MAXIMUM POSSIBLE INITIAL MASSFLUX      CONVEC3C.648    
                                  ! LIMITED TO THE MASS IN TH INITIAL      CONVEC3C.649    
                                  ! CONVECTING LAYER (PA/S)                CONVEC3C.650    
C                                                                          CONVEC3C.651    
      INTEGER START_LEV(NPNTS)    ! LEVEL AT WHICH CONVECTION INITIATES    CONVEC3C.652    
C                                                                          CONVEC3C.653    
      INTEGER DET_LEV(NPNTS)      ! LEVEL AT WHICH SPLIT FINAL             CONVEC3C.654    
                                  ! DETRAINMENT LAST OCCURRED              CONVEC3C.655    
C                                                                          CONVEC3C.656    
      LOGICAL BINIT(NPNTS)        ! MASK FOR POINTS WHERE CONVECTION       CONVEC3C.657    
                                  ! IS OCCURING                            CONVEC3C.658    
C                                                                          CONVEC3C.659    
      LOGICAL BTERM(NPNTS)        ! MASK FOR POINTS WHERE CONVECTION       CONVEC3C.660    
                                  ! TERMINATES IN LAYER K+1                CONVEC3C.661    
C                                                                          CONVEC3C.662    
      LOGICAL BWATER(NPNTS,2:NLEV) ! MASK FOR POINTS AT WHICH              CONVEC3C.663    
                                   ! PRECIPITATION IS LIQUID               CONVEC3C.664    
C                                                                          CONVEC3C.665    
      LOGICAL BGMK(NPNTS)         ! MASK FOR POINTS WHERE PARCEL IN        CONVEC3C.666    
                                  ! LAYER K IS SATURATED                   CONVEC3C.667    
C                                                                          CONVEC3C.668    
      LOGICAL BCNLV(NPNTS)        ! MASK FOR THOSE POINTS AT WHICH         CONVEC3C.669    
                                  ! CONVECTION HAS OCCURED AT SOME         CONVEC3C.670    
                                  ! LEVEL OF THE MODEL                     CONVEC3C.671    
C                                                                          CONVEC3C.672    
      REAL DEPTH(NPNTS)           ! DEPTH OF CONVECTIVE CLOUD (M)          CONVEC3C.673    
C                                                                          CONVEC3C.674    
      REAL FLXMAXK(NPNTS)         ! MAXIMUM INITIL CONVECTIVE MASSFLUX     CONVEC3C.675    
                                  ! (PA/S)                                 CONVEC3C.676    
C                                                                          CONVEC3C.677    
      REAL FLXMAX2(NPNTS)         ! MAXIMUM INITIL CONVECTIVE MASSFLUX     CONVEC3C.678    
                                  ! (PA/S)                                 CONVEC3C.679    
C                                                                          CONVEC3C.680    
      REAL PK(NPNTS)              ! PRESSURE AT MID-POINT OF LAYER K       CONVEC3C.681    
                                  ! (PA)                                   CONVEC3C.682    
C                                                                          CONVEC3C.683    
      REAL PKP1(NPNTS)            ! PRESSURE AT MID-POINT OF LAYER K+1     CONVEC3C.684    
                                  ! (PA)                                   CONVEC3C.685    
C                                                                          CONVEC3C.686    
      REAL DELPK(NPNTS)           ! PRESSURE DIFFERENCE ACROSS LAYER K     CONVEC3C.687    
                                  ! (PA)                                   CONVEC3C.688    
C                                                                          CONVEC3C.689    
      REAL DELPKP1(NPNTS)         ! PRESSURE DIFFERENCE ACROSS LAYER K+1   CONVEC3C.690    
                                  ! (PA)                                   CONVEC3C.691    
C                                                                          CONVEC3C.692    
      REAL DELPKP12(NPNTS)        ! PRESSURE DIFFERENCE BETWEEN            CONVEC3C.693    
                                  ! LEVELS K AND K+1 (PA)                  CONVEC3C.694    
C                                                                          CONVEC3C.695    
      REAL EKP14(NPNTS),          ! ENTRAINMENT COEFFICIENTS AT LEVELS     CONVEC3C.696    
     *     EKP34(NPNTS)           ! K+1/4 AND K+3/4 MULTIPLIED BY          CONVEC3C.697    
                                  ! APPROPRIATE LAYER THICKNESS            CONVEC3C.698    
C                                                                          CONVEC3C.699    
      REAL AMDETK(NPNTS)          ! MIXING DETRAINMENT COEFFICIENT AT      CONVEC3C.700    
                                  ! LEVEL K MULTIPLIED BY APPROPRIATE      CONVEC3C.701    
                                  ! LAYER THICKNESS                        CONVEC3C.702    
C                                                                          CONVEC3C.703    
      REAL DELTAK(NPNTS)          ! FORCED DETRAINMENT RATE                API2F405.260    
C                                                                          API2F405.261    
      REAL EXK(NPNTS)             ! EXNER RATIO AT LEVEL K                 CONVEC3C.704    
C                                                                          CONVEC3C.705    
      REAL EXKP1(NPNTS)           ! EXNER RATIO AT LEVEL K+1               CONVEC3C.706    
C                                                                          CONVEC3C.707    
      REAL DELEXKP1(NPNTS)        ! DIFFERENCE IN EXNER RATIO              CONVEC3C.708    
                                  ! ACROSS LAYER K+1                       CONVEC3C.709    
C                                                                          CONVEC3C.710    
      REAL EMINDS(NPNTS)          ! MINIMUM BUOYANCY FOR CONVECTION TO     CONVEC3C.711    
                                  ! INITIATE FROM LAYER K                  CONVEC3C.712    
C                                                                          CONVEC3C.713    
      INTEGER INDEX1(NPNTS),      ! INDEX FOR COMPRESS AND                 CONVEC3C.714    
     *        INDEX2(NPNTS),      ! EXPAND                                 CONVEC3C.715    
     *        INDEX3(NPNTS),                                               CONVEC3C.716    
     *        INDEX4(NPNTS)                                                CONVEC3C.717    
C                                                                          CONVEC3C.718    
      LOGICAL L_SHALLOW(NPNTS)    ! CONVECTION LIKELY TO BE SHALLOW        CONVEC3C.719    
                                  ! IF SET TO TR                           CONVEC3C.720    
C                                                                          CONVEC3C.721    
      LOGICAL L_SHALLOW_C(NPNTS), ! CONVECTION LIKELY TO BE SHALLOW        CONVEC3C.722    
     *        L_SHALLOW_C2(NPNTS) ! IF SET TO TRUE -- COMPRESSED           CONVEC3C.723    
C                                                                          CONVEC3C.724    
      LOGICAL L_MID(NPNTS)        ! CONVECTION STARTS ABOVE BOUNDARY       CONVEC3C.725    
                                  ! LAYER IF SET TO TRUE                   CONVEC3C.726    
C                                                                          CONVEC3C.727    
      LOGICAL L_MID_C(NPNTS),     ! CONVECTION STARTS ABOVE BOUNDARY       CONVEC3C.728    
     *        L_MID_C2(NPNTS)     ! LAYER IF SET TO TRUE -- COMPRESSED     CONVEC3C.729    
C                                                                          CONVEC3C.730    
      REAL TRAPK_C(NPNTS,NTRA),   ! PARCEL TRACER CONTENT IN LAYER K       CONVEC3C.731    
     *     TRAPK_C2(NPNTS,NTRA)   ! - COMPRESSED (KG/KG)                   CONVEC3C.732    
C                                                                          CONVEC3C.733    
      REAL TRAPKP1_C(NPNTS,NTRA), ! PARCEL TRACER CONTENT IN LAYER K+1     CONVEC3C.734    
     *     TRAPKP1_C2(NPNTS,NTRA) ! - COMPRESSED (KG/KG)                   CONVEC3C.735    
C                                                                          CONVEC3C.736    
      REAL TRAEK_C(NPNTS,NTRA),   ! TRACER CONTENT OF CLOUD ENVIRONMENT    CONVEC3C.737    
     *     TRAEK_C2(NPNTS,NTRA)   ! IN LAYER K - COMPRESSED (KG/KG)        CONVEC3C.738    
C                                                                          CONVEC3C.739    
      REAL TRAEKP1_C(NPNTS,NTRA), ! TRACER CONTENT OF CLOUD ENVIRONMENT    CONVEC3C.740    
     *     TRAEKP1_C2(NPNTS,NTRA) ! IN LAYER K+1 - COMPRESSED (KG/KG)      CONVEC3C.741    
C                                                                          CONVEC3C.742    
      REAL DTRAEK_C(NPNTS,NTRA)   ! INCREMENTS TO MODEL TRACER             CONVEC3C.743    
                                  ! DUE TO CONVECTION AT LEVEL K           CONVEC3C.744    
                                  ! - COMPRESSED (KG/KG/S)                 CONVEC3C.745    
C                                                                          CONVEC3C.746    
      REAL DTRAEKP1_C(NPNTS,NTRA) ! INCREMENTS TO MODEL TRACER DUE TO      CONVEC3C.747    
                                  ! CONVECTION IN LAYER K+1 -COMPRESSED    CONVEC3C.748    
                                  ! (KG/KG/S)                              CONVEC3C.749    
C                                                                          CONVEC3C.750    
      REAL EFLUX_U_UD(NPNTS),     ! VERTICAL EDDY FLUX OF MOMENTUM DUE     CONVEC3C.751    
     *     EFLUX_V_UD(NPNTS)      ! TO UD AT TOP OF A LAYER                CONVEC3C.752    
C                                                                          CONVEC3C.753    
      REAL EFLUX_U_DD(NPNTS),     ! VERTICAL EDDY FLUX OF MOMENTUM DUE     CONVEC3C.754    
     *     EFLUX_V_DD(NPNTS)      ! TO DD AT BOTTOM OF A LAYER             CONVEC3C.755    
C                                                                          CONVEC3C.756    
      REAL LIMITED_STEP(NPNTS),   ! Reduced step size for tracer mixing    CONVEC3C.757    
     &     STEP_TEST1(NLEV),      ! Work array used in reducing step       CONVEC3C.758    
     &     STEP_TEST2(NLEV)       !       "                                CONVEC3C.759    
      REAL REDUCTION_FACTOR(NPNTS,NTRA)    ! Diagnostic array for time-    CONVEC3C.760    
!                                 ! step reduction factor for tracers      CONVEC3C.761    
      REAL SAFETY_MARGIN          ! Small no. used in tracer step reducn   CONVEC3C.762    
C                                                                          CONVEC3C.763    
*IF DEF,T3E                                                                PXCONVEC.1      
      PARAMETER (SAFETY_MARGIN = 1.0E-100 )                                PXCONVEC.2      
*ELSE                                                                      PXCONVEC.3      
      PARAMETER (SAFETY_MARGIN = TINY(1.0) )                               PXCONVEC.4      
*ENDIF                                                                     PXCONVEC.5      
!                                                                          CONVEC3C.765    
C                                                                          CONVEC3C.766    
      INTEGER FREEZE_LEV(NPNTS)   ! FREEZING LEVEL                         CONVEC3C.767    
C                                                                          CONVEC3C.768    
      REAL CCA_2D(NPNTS)          ! Conv cloud amount on a single          CONVEC3C.769    
!                                 ! level, as calculated in CONRAD         CONVEC3C.770    
C                                                                          CONVEC3C.771    
C                                                                          CONVEC3C.773    
      REAL FLX2                   ! TEMPORARY STORE FOR MASS FLUX          CONVEC3C.774    
C                                                                          CONVEC3C.775    
      REAL AEKP14,AEKP34          ! CONSTANTS USED IN CALCULATION          CONVEC3C.776    
                                  ! OF ENTRAINMENT COEFFICIENTS            CONVEC3C.777    
C                                                                          CONVEC3C.778    
      REAL EL                     ! LATENT HEAT OF CONDENSATION            CONVEC3C.779    
                                  ! USED IN UNDILUTE ASCENT CALCULATION    CONVEC3C.780    
C                                                                          CONVEC3C.781    
      REAL THVUNDI,THVEKP1        ! VIRTUAL TEMPERATURE OF UNDILUTE        CONVEC3C.782    
                                  ! PARCEL AND ENVIRONMENT USED IN         CONVEC3C.783    
                                  ! BUOYANCY CALCULATIONS FOR THE          CONVEC3C.784    
                                  ! UNDILUTE ASCENT                        CONVEC3C.785    
C                                                                          CONVEC3C.786    
      REAL C,D                    ! MASS FLUX PARAMETERS                   CONVEC3C.787    
C                                                                          CONVEC3C.788    
      REAL recip_PSTAR(NP_FIELD)  ! Reciprocal of pstar array              CONVEC3C.789    
C                                                                          CONVEC3C.790    
C----------------------------------------------------------------------    CONVEC3C.791    
C EXTERNAL ROUTINES CALLED                                                 CONVEC3C.792    
C----------------------------------------------------------------------    CONVEC3C.793    
C                                                                          CONVEC3C.794    
      EXTERNAL QSAT,FLAG_WET,LIFT_PAR,CONVEC2,LAYER_CN,                    CONVEC3C.795    
     *         DQS_DTH,COR_ENGY,DD_CALL,CALC_3D_CCA                        CONVEC3C.796    
C                                                                          CONVEC3C.797    
                                                                           CONVEC3C.798    
      REAL                                                                 CONVEC3C.799    
     &    PU,PL,PM                                                         CONVEC3C.800    
*CALL P_EXNERC                                                             CONVEC3C.801    
                                                                           CONVEC3C.802    
C*---------------------------------------------------------------------    CONVEC3C.803    
C                                                                          CONVEC3C.804    
CL                                                                         CONVEC3C.805    
CL---------------------------------------------------------------------    CONVEC3C.806    
CL CALCULATE AN ARRAY OF SATURATION MIXING RATIOS                          CONVEC3C.807    
CL FIRST CONVERT POTENTIAL TEMPERATURE TO TEMPERATURE AND CALCULATE        CONVEC3C.808    
CL PRESSURE OF LAYER K                                                     CONVEC3C.809    
CL                                                                         CONVEC3C.810    
CL SUBROUTINE QSAT                                                         CONVEC3C.811    
CL UM DOCUMENTATION PAPER P282                                             CONVEC3C.812    
CL---------------------------------------------------------------------    CONVEC3C.813    
CL                                                                         CONVEC3C.814    
      DO I=1,NPNTS                                                         CONVEC3C.815    
        RECIP_PSTAR(I)=1./PSTAR(I)                                         CONVEC3C.816    
      ENDDO                                                                CONVEC3C.817    
                                                                           CONVEC3C.818    
      DO 20 K=1,NLEV                                                       CONVEC3C.819    
       DO 25 I = 1,NPNTS                                                   CONVEC3C.820    
        TTKM1(I)=TT(I)                                                     CONVEC3C.821    
        PU=PSTAR(I)*BKM12(K+1) + AKM12(K+1)                                CONVEC3C.822    
        PL=PSTAR(I)*BKM12(K) + AKM12(K)                                    CONVEC3C.823    
        TT(I) = TH(I,K)* P_EXNER_C(EXNER(I,K+1),EXNER(I,K),PU,PL,KAPPA)    CONVEC3C.824    
        PT(I) = AK(K)+BK(K)*PSTAR(I)                                       CONVEC3C.825    
        IF (TT(I).LT.TM) THEN                                              CONVEC3C.826    
          IF (K.EQ.1) THEN                                                 CONVEC3C.827    
            FREEZE_LEV(I)=K                                                CONVEC3C.828    
          ELSEIF(TTKM1(I).GE.TM) THEN                                      AJX4F405.2      
            FREEZE_LEV(I)=K                                                CONVEC3C.830    
          ENDIF                                                            CONVEC3C.831    
        ENDIF                                                              CONVEC3C.832    
   25  CONTINUE                                                            CONVEC3C.833    
C                                                                          CONVEC3C.834    
       CALL QSAT (QSE(1,K),TT,PT,NPNTS)                                    CONVEC3C.835    
C                                                                          CONVEC3C.836    
  20  CONTINUE                                                             CONVEC3C.837    
CL                                                                         CONVEC3C.838    
CL---------------------------------------------------------------------    CONVEC3C.839    
CL CALCULATE BIT VECTOR WHERE WATER WILL CONDENSE RATHER THAN ICE          CONVEC3C.840    
CL SUBROUTINE FLAG_WET                                                     CONVEC3C.841    
CL                                                                         CONVEC3C.842    
CL UM DOCUMENTATION PAPER 27                                               CONVEC3C.843    
CL SECTION (2B)                                                            CONVEC3C.844    
CL---------------------------------------------------------------------    CONVEC3C.845    
CL                                                                         CONVEC3C.846    
      CALL FLAG_WET(BWATER,TH,EXNER,PSTAR,AKM12,BKM12,                     CONVEC3C.847    
     &                    NP_FIELD,NPNTS,NLEV)                             CONVEC3C.848    
C                                                                          CONVEC3C.849    
C----------------------------------------------------------------------    CONVEC3C.850    
C INITIALISE PRECIPITATION, DTH/DT, DQ/DT, CCW                             CONVEC3C.851    
C DU/DT, DV/DT AND TRACER INCREMENT ARRAYS                                 CONVEC3C.852    
C----------------------------------------------------------------------    CONVEC3C.853    
C                                                                          CONVEC3C.854    
      DO K=1,NLEV                                                          CONVEC3C.855    
       DO I=1,NPNTS                                                        CONVEC3C.856    
        PRECIP(I,K) = 0.0                                                  CONVEC3C.857    
        CCW(I,K) = 0.0                                                     CONVEC3C.858    
       ENDDO                                                               CONVEC3C.859    
       DO I=1,NPNTS                                                        CONVEC3C.860    
        GBMCCW(I,K) = 0.0                                                  CONVEC3C.861    
        DTHBYDT(I,K) = 0.0                                                 CONVEC3C.862    
        DQBYDT(I,K) = 0.0                                                  CONVEC3C.863    
       ENDDO                                                               CONVEC3C.864    
       DO I=1,NPNTS                                                        CONVEC3C.865    
        IF(L_MOM)THEN                                                      CONVEC3C.866    
          DUBYDT(I,K) = 0.0                                                CONVEC3C.867    
          DVBYDT(I,K) = 0.0                                                CONVEC3C.868    
        END IF                                                             CONVEC3C.869    
       END DO                                                              CONVEC3C.870    
      END DO                                                               CONVEC3C.871    
      IF(L_TRACER)THEN                                                     CONVEC3C.872    
      DO KTRA=1,NTRA                                                       CONVEC3C.873    
        DO K=1,NLEV                                                        CONVEC3C.874    
          DO I=1,NPNTS                                                     CONVEC3C.875    
            DTRABYDT(I,K,KTRA) = 0.0                                       CONVEC3C.876    
          END DO                                                           CONVEC3C.877    
        END DO                                                             CONVEC3C.878    
      END DO                                                               CONVEC3C.879    
      END IF                                                               CONVEC3C.880    
      DO K=1,N_CCA_LEV                                                     ADR1F405.29     
        DO I=1,NPNTS                                                       ADR1F405.30     
          CCA(I,K) = 0.0                                                   ADR1F405.31     
        ENDDO                                                              ADR1F405.32     
      ENDDO                                                                ADR1F405.33     
C                                                                          CONVEC3C.881    
      DO I=1,NPNTS                                                         APB3F405.375    
C                                                                          CONVEC3C.883    
C----------------------------------------------------------------------    CONVEC3C.884    
C INITIALISE BIT VECTORS FOR POINTS WHICH ARE ALREADY CONVECTING           CONVEC3C.885    
C AND FOR POINTS AT WHICH CONVECTION OCCURS AT SOME LEVEL OF               CONVEC3C.886    
C THE ATMOSPHERE. ALSO SET BIT VECTORS FOR SHALLOW AND MID LEVEL           CONVEC3C.887    
C CONVECTION TO FALSE AS DEEP CONVECTION IS ASSUMED UNTIL TEST             CONVEC3C.888    
C ASCENT IS PERFORMED.                                                     CONVEC3C.889    
C----------------------------------------------------------------------    CONVEC3C.890    
C                                                                          CONVEC3C.891    
        BINIT(I) = .FALSE.                                                 CONVEC3C.892    
        BCNLV(I) = .FALSE.                                                 CONVEC3C.893    
      ENDDO                                                                APB3F405.376    
      DO I=1,NPNTS                                                         APB3F405.377    
        BTERM(I) = .FALSE.                                                 CONVEC3C.894    
        L_SHALLOW(I) = .FALSE.                                             CONVEC3C.895    
      ENDDO                                                                APB3F405.378    
      DO I=1,NPNTS                                                         APB3F405.379    
        L_MID(I) = .FALSE.                                                 CONVEC3C.896    
C                                                                          CONVEC3C.897    
C----------------------------------------------------------------------    CONVEC3C.898    
C INITIALISE RADIATION DIAGNOSTICS                                         CONVEC3C.899    
C----------------------------------------------------------------------    CONVEC3C.900    
C                                                                          CONVEC3C.901    
       CCA_2D(I) = 0.0                                                     CONVEC3C.902    
      ENDDO                                                                APB3F405.380    
      DO I=1,NPNTS                                                         APB3F405.381    
       ICCB(I) = 0                                                         CONVEC3C.903    
       ICCT(I) = 0                                                         CONVEC3C.904    
      ENDDO                                                                APB3F405.382    
      DO I=1,NPNTS                                                         APB3F405.383    
       TCW(I) = 0.0                                                        CONVEC3C.905    
       CCLWP(I) = 0.0                                                      CONVEC3C.906    
      ENDDO                                                                APB3F405.384    
      DO I=1,NPNTS                                                         APB3F405.385    
C                                                                          CONVEC3C.907    
C---------------------------------------------------------------------     CONVEC3C.908    
C INITIALISE GRIDBOX MEAN DIAGNOSTICS                                      CONVEC3C.909    
C---------------------------------------------------------------------     CONVEC3C.910    
C                                                                          CONVEC3C.911    
       GBMCCWP(I) = 0.0                                                    CONVEC3C.912    
       ICCBPxCCA(I) = 0.0                                                  CONVEC3C.913    
      ENDDO                                                                APB3F405.386    
      DO I=1,NPNTS                                                         APB3F405.387    
       ICCTPxCCA(I) = 0.0                                                  CONVEC3C.914    
C                                                                          CONVEC3C.915    
CL-------------------------------------------------------------------      CONVEC3C.916    
CL INITIALISE DIAGNOSTICS FOR CLOSURE CALCULATION                          CONVEC3C.917    
CL-------------------------------------------------------------------      CONVEC3C.918    
C                                                                          CONVEC3C.919    
       FLX_INIT(I) = 0.0                                                   CONVEC3C.920    
      ENDDO                                                                APB3F405.388    
      DO I=1,NPNTS                                                         APB3F405.389    
       FLX_INIT_NEW(I) = 0.0                                               CONVEC3C.921    
       CAPE(I) = 0.0                                                       CONVEC3C.922    
      ENDDO                                                                APB3F405.390    
      DO I=1,NPNTS                                                         APB3F405.391    
       CAPE_OUT(I) = 0.0                                                   CONVEC3C.923    
       DCPBYDT(I) = 0.0                                                    CONVEC3C.924    
      ENDDO                                                                APB3F405.392    
      DO I=1,NPNTS                                                         APB3F405.393    
       CAPE_C(I) = 0.0                                                     CONVEC3C.925    
       DCPBYDT_C(I) = 0.0                                                  CONVEC3C.926    
      ENDDO                                                                APB3F405.394    
      DO I=1,NPNTS                                                         APB3F405.395    
       START_LEV(I) = 0                                                    CONVEC3C.927    
       DELTAK(I)=0.0                                                       API2F405.262    
       DET_LEV(I) = 0                                                      CONVEC3C.928    
      ENDDO                                                                APB3F405.396    
      DO I=1,NPNTS                                                         APB3F405.397    
       DTHEF(I) = 0.0                                                      CONVEC3C.929    
       DQF(I) = 0.0                                                        CONVEC3C.930    
       DUEF(I)=0.0                                                         API1F405.35     
       DVEF(I)=0.0                                                         API1F405.36     
      ENDDO                                                                APB3F405.398    
      DO I=1,NPNTS                                                         APB3F405.399    
C                                                                          CONVEC3C.931    
C---------------------------------------------------------------------     CONVEC3C.932    
C INITIALISE EDDY FLUX ARRAYS FOR UD AND DD                                CONVEC3C.933    
C--------------------------------------------------------------------      CONVEC3C.934    
C                                                                          CONVEC3C.935    
       EFLUX_U_UD(I) = 0.0                                                 CONVEC3C.936    
       EFLUX_V_UD(I) = 0.0                                                 CONVEC3C.937    
      ENDDO                                                                APB3F405.400    
      DO I=1,NPNTS                                                         APB3F405.401    
       EFLUX_U_DD(I) = 0.0                                                 CONVEC3C.938    
       EFLUX_V_DD(I) = 0.0                                                 CONVEC3C.939    
      ENDDO                                                                APB3F405.402    
      DO I=1,NPNTS                                                         APB3F405.403    
C                                                                          CONVEC3C.940    
C---------------------------------------------------------------------     CONVEC3C.941    
C INITIALISE SURFACE PRECIPITATION ARRAYS                                  CONVEC3C.942    
C---------------------------------------------------------------------     CONVEC3C.943    
C                                                                          CONVEC3C.944    
       RAIN(I) = 0.0                                                       CONVEC3C.945    
       SNOW(I) = 0.0                                                       APB3F405.404    
      ENDDO                                                                APB3F405.405    
CL                                                                         CONVEC3C.947    
CL=====================================================================    CONVEC3C.948    
CL MAIN LOOP OVER LEVELS - FROM SURFACE TO TOP                             CONVEC3C.949    
CL=====================================================================    CONVEC3C.950    
CL                                                                         CONVEC3C.951    
      DO 60 K=1,NLEV-1                                                     CONVEC3C.952    
CL                                                                         CONVEC3C.953    
CL---------------------------------------------------------------------    CONVEC3C.954    
CL CALCULATE LEVEL PRESSURES, EXNER RATIO FOR MID POINTS, ENTRAINMENT      CONVEC3C.955    
CL RATES, DETRAINMENTS RATES AND PRESSURE DIFFERENCE ACROS  LAYERS AS      CONVEC3C.956    
CL A FUNCTION OF GRID-POINT                                                CONVEC3C.957    
CL                                                                         CONVEC3C.958    
CL SUBROUTINE LAYER_CN                                                     CONVEC3C.959    
CL---------------------------------------------------------------------    CONVEC3C.960    
CL                                                                         CONVEC3C.961    
      CALL LAYER_CN(K,NP_FIELD,NPNTS,NLEV,EXNER,AK,BK,AKM12,BKM12,         CONVEC3C.962    
     *              DELAK,DELBK,PSTAR,PK,PKP1,DELPK,DELPKP1,               CONVEC3C.963    
     *              DELPKP12,EKP14,EKP34,AMDETK,EXK,EXKP1,                 CONVEC3C.964    
     *              DELEXKP1,recip_PSTAR)                                  CONVEC3C.965    
CL                                                                         CONVEC3C.966    
CL---------------------------------------------------------------------    CONVEC3C.967    
CL CALCULATE DQS/DTH FOR LAYERS K AND K+1                                  CONVEC3C.968    
CL                                                                         CONVEC3C.969    
CL SUBROUTINE DQS_DTH                                                      CONVEC3C.970    
CL---------------------------------------------------------------------    CONVEC3C.971    
CL                                                                         CONVEC3C.972    
      IF (K.EQ.1) THEN                                                     CONVEC3C.973    
       CALL DQS_DTH(DQSTHK,K,TH(1,K),QSE(1,K),EXK,NPNTS)                   CONVEC3C.974    
      ELSE                                                                 CONVEC3C.975    
       DO 65 I=1,NPNTS                                                     CONVEC3C.976    
        DQSTHK(I) = DQSTHKP1(I)                                            CONVEC3C.977    
  65   CONTINUE                                                            CONVEC3C.978    
      END IF                                                               CONVEC3C.979    
C                                                                          CONVEC3C.980    
       CALL DQS_DTH(DQSTHKP1,K+1,TH(1,K+1),QSE(1,K+1),EXKP1,NPNTS)         CONVEC3C.981    
C                                                                          CONVEC3C.982    
      DO 70 I=1,NPNTS                                                      CONVEC3C.983    
C                                                                          CONVEC3C.984    
C---------------------------------------------------------------------     CONVEC3C.985    
C SET OTHER GIRD-POINT DEPENDENT CONSTANTS                                 CONVEC3C.986    
C---------------------------------------------------------------------     CONVEC3C.987    
C                                                                          CONVEC3C.988    
C---------------------------------------------------------------------     CONVEC3C.989    
C MAXIMUM INITIAL CONVECTIVE MASSFLUX                                      CONVEC3C.990    
C---------------------------------------------------------------------     CONVEC3C.991    
C                                                                          CONVEC3C.992    
       FLXMAXK(I) = DELPK(I)/((1.0 + EKP14(I)) * TIMESTEP)                 CONVEC3C.993    
C                                                                          CONVEC3C.994    
C---------------------------------------------------------------------     CONVEC3C.995    
C MAXIMUM CONVECTIVE MASSFLUX AT MID-POINT OF LAYER 2                      CONVEC3C.996    
C---------------------------------------------------------------------     CONVEC3C.997    
C                                                                          CONVEC3C.998    
      IF (K.EQ.1) FLXMAX2(I) = (PSTAR(I)-PKP1(I)) / TIMESTEP               CONVEC3C.999    
C                                                                          CONVEC3C.1000   
C---------------------------------------------------------------------     CONVEC3C.1001   
C MINIMUM BUOYANCY FOR CONVECTION TO START FROM LAYER K                    CONVEC3C.1002   
C---------------------------------------------------------------------     CONVEC3C.1003   
C                                                                          CONVEC3C.1004   
       EMINDS(I) = MPARB*DELPKP12(I)*RECIP_PSTAR(I)                        CONVEC3C.1005   
C                                                                          CONVEC3C.1006   
C----------------------------------------------------------------------    CONVEC3C.1007   
C SET BIT VECTOR FOR POINTS WHERE CONVECTION HAS OCCURRED AT SOME          CONVEC3C.1008   
C LEVEL OF THE ATMOSPHERE                                                  CONVEC3C.1009   
C-----------------------------------------------------------------------   CONVEC3C.1010   
C                                                                          CONVEC3C.1011   
       BCNLV(I) =  BCNLV(I) .OR. BINIT(I)                                  CONVEC3C.1012   
CL                                                                         CONVEC3C.1013   
CL---------------------------------------------------------------------    CONVEC3C.1014   
CL SET INITIAL VALUES FOR POINTS NOT ALREADY INITIATED                     CONVEC3C.1015   
CL                                                                         CONVEC3C.1016   
CL UM DOCUMENTATION PAPER 27                                               CONVEC3C.1017   
CL SECTION (3), EQUATION(17)                                               CONVEC3C.1018   
CL---------------------------------------------------------------------    CONVEC3C.1019   
CL                                                                         CONVEC3C.1020   
       IF (.NOT.BINIT(I)) THEN                                             CONVEC3C.1021   
C                                                                          CONVEC3C.1022   
        IF (K.LT.NBL) THEN                                                 CONVEC3C.1023   
C                                                                          CONVEC3C.1024   
C----------------------------------------------------------------------    CONVEC3C.1025   
C SET TO DEEP CONVECTIVE VALUES - MODIFIED LATER IF SHALLOW CONVECTION     CONVEC3C.1026   
C IS TO DEVELOP                                                            CONVEC3C.1027   
C----------------------------------------------------------------------    CONVEC3C.1028   
C                                                                          CONVEC3C.1029   
         L_SHALLOW(I) = .FALSE.                                            CONVEC3C.1030   
         IF ( L_SDXS .AND. K .EQ. 1 ) THEN                                 CONVEC3C.1031   
           THPI(I) = TH(I,K) + MAX ( THPIXS_DEEP , T1_SD(I)/EXK(I) )       CONVEC3C.1032   
           THP(I,K) = TH(I,K) + MAX ( THPIXS_DEEP , T1_SD(I)/EXK(I) )      CONVEC3C.1033   
           QPI(I) = Q(I,K) + MAX ( QPIXS_DEEP , Q1_SD(I) )                 CONVEC3C.1034   
           QP(I,K) = Q(I,K) + MAX ( QPIXS_DEEP , Q1_SD(I) )                CONVEC3C.1035   
         ELSE                                                              CONVEC3C.1036   
           THPI(I) = TH(I,K) + THPIXS_DEEP                                 CONVEC3C.1037   
           THP(I,K) = TH(I,K) + THPIXS_DEEP                                CONVEC3C.1038   
           QPI(I) = Q(I,K) + QPIXS_DEEP                                    CONVEC3C.1039   
           QP(I,K) = Q(I,K) + QPIXS_DEEP                                   CONVEC3C.1040   
         END IF                                                            CONVEC3C.1041   
C                                                                          CONVEC3C.1042   
        ELSE           ! IF(K.GE.NBL)                                      CONVEC3C.1043   
C                                                                          CONVEC3C.1044   
C----------------------------------------------------------------------    CONVEC3C.1045   
C SET TO VALUES FOR MID-LEVEL CONVECTION                                   CONVEC3C.1046   
C----------------------------------------------------------------------    CONVEC3C.1047   
C                                                                          CONVEC3C.1048   
         L_MID(I) = .TRUE.                                                 CONVEC3C.1049   
         THPI(I) = TH(I,K) + THPIXS_MID                                    CONVEC3C.1050   
         THP(I,K) = TH(I,K) + THPIXS_MID                                   CONVEC3C.1051   
         QPI(I) = Q(I,K) + QPIXS_MID                                       CONVEC3C.1052   
         QP(I,K) = Q(I,K) + QPIXS_MID                                      CONVEC3C.1053   
C                                                                          CONVEC3C.1054   
        END IF         ! IF(K.LT.NBL) END                                  CONVEC3C.1055   
C                                                                          CONVEC3C.1056   
        XPK(I,K) = 0.0                                                     CONVEC3C.1057   
        FLX(I,K) = 0.0                                                     CONVEC3C.1058   
        BGMK(I) = .FALSE.                                                  CONVEC3C.1059   
        DEPTH(I) = 0.0                                                     CONVEC3C.1060   
C                                                                          CONVEC3C.1061   
       END IF          ! IF(.NOT.BINIT(I)) END                             CONVEC3C.1062   
CL                                                                         CONVEC3C.1063   
CL----------------------------------------------------------------------   CONVEC3C.1064   
CL FORM A BIT VECTOR OF POINTS FOR WHICH CONVECTION MAY BE POSSIBLE        CONVEC3C.1065   
CL FROM LAYER K TO K+1 EITHER BECAUSE STABILITY IS LOW ENOUGH              CONVEC3C.1066   
CL OR BECAUSE CONVECTION OCCURRING FROM LAYER K+1 TO K                     CONVEC3C.1067   
CL THIS BIT VECTOR IS USED IN THE FIRST COMPRESS OF THE DATA               CONVEC3C.1068   
CL TO CALCULATE PARCEL BUOYANCY IN LAYER K+1                               CONVEC3C.1069   
CL                                                                         CONVEC3C.1070   
CL UM DOCUMENTATION PAPER 27                                               CONVEC3C.1071   
CL SECTION(3), EQUATION(16)                                                CONVEC3C.1072   
CL----------------------------------------------------------------------   CONVEC3C.1073   
CL                                                                         CONVEC3C.1074   
        BCONV(I) = BINIT(I) .OR.                                           CONVEC3C.1075   
     *           ((TH(I,K) - TH(I,K+1) + DELTHST                           CONVEC3C.1076   
     *           + MAX(0.0,(Q(I,K)-QSE(I,K+1)))*(LC/(CP*EXKP1(I))))        CONVEC3C.1077   
     *           .GT. 0.)                                                  CONVEC3C.1078   
*IF DEF,MPP                                                                CONVEC3C.1079   
        BCONV(I) = l_halo(I).AND.BCONV(I)                                  CONVEC3C.1080   
*ENDIF                                                                     CONVEC3C.1081   
  70  CONTINUE                                                             CONVEC3C.1082   
C                                                                          CONVEC3C.1083   
CL----------------------------------------------------------------------   CONVEC3C.1084   
CL READ INITIAL VALUES OF MOMENTUM AND TRACER INTO THE PARCEL              CONVEC3C.1085   
CL----------------------------------------------------------------------   CONVEC3C.1086   
CL                                                                         CONVEC3C.1087   
        IF(L_MOM)THEN                                                      CONVEC3C.1088   
         DO I=1,NPNTS                                                      CONVEC3C.1089   
         IF(.NOT.BINIT(I))THEN                                             CONVEC3C.1090   
          UP(I,K)=U(I,K)                                                   CONVEC3C.1091   
          VP(I,K) = V(I,K)                                                 CONVEC3C.1092   
         END IF                                                            CONVEC3C.1093   
         END DO                                                            CONVEC3C.1094   
        END IF                                                             CONVEC3C.1095   
C                                                                          CONVEC3C.1096   
        IF(L_TRACER)THEN                                                   CONVEC3C.1097   
C                                                                          CONVEC3C.1098   
        DO KTRA = 1,NTRA                                                   CONVEC3C.1099   
          DO I = 1,NPNTS                                                   CONVEC3C.1100   
          IF(.NOT.BINIT(I))THEN                                            CONVEC3C.1101   
           TRAPI(I,KTRA) = TRACER(I,K,KTRA)                                CONVEC3C.1102   
           TRAP(I,K,KTRA) = TRAPI(I,KTRA)                                  CONVEC3C.1103   
          END IF                                                           CONVEC3C.1104   
          END DO                                                           CONVEC3C.1105   
        END DO                                                             CONVEC3C.1106   
C                                                                          CONVEC3C.1107   
        END IF                                                             CONVEC3C.1108   
C                                                                          CONVEC3C.1109   
CL                                                                         CONVEC3C.1110   
CL----------------------------------------------------------------------   CONVEC3C.1111   
CL COMPRESS DOWN POINTS ON THE BASIS OF BIT VECTOR BCONV                   CONVEC3C.1112   
CL----------------------------------------------------------------------   CONVEC3C.1113   
CL                                                                         CONVEC3C.1114   
      NCONV = 0                                                            CONVEC3C.1115   
      DO 75 I=1,NPNTS                                                      CONVEC3C.1116   
        IF(BCONV(I))THEN                                                   CONVEC3C.1117   
          NCONV = NCONV + 1                                                CONVEC3C.1118   
          INDEX1(NCONV) = I                                                CONVEC3C.1119   
        END IF                                                             CONVEC3C.1120   
  75  CONTINUE                                                             CONVEC3C.1121   
C                                                                          CONVEC3C.1122   
C----------------------------------------------------------------------    CONVEC3C.1123   
C  WORK SPACE USAGE FOR FIRST COMPRESS ON BASIS OF SIMPLE                  CONVEC3C.1124   
C  STABILITY TEST (SECTION (3), EQN(16))                                   CONVEC3C.1125   
C                                                                          CONVEC3C.1126   
C  REFERENCES TO WORK AND BWORK REFER TO STARTING ADDRESS                  CONVEC3C.1127   
C                                                                          CONVEC3C.1128   
C  LENGTH OF COMPRESSES DATA = NCONV                                       CONVEC3C.1129   
C                                                                          CONVEC3C.1130   
C  WORK(1,1)  = TH(#,K)                                                    CONVEC3C.1131   
C  WORK(1,2)  = TH(#,K+1)                                                  CONVEC3C.1132   
C  WORK(1,3)  = Q(#,K)                                                     CONVEC3C.1133   
C  WORK(1,4)  = Q(#,K+1)                                                   CONVEC3C.1134   
C  WORK(1,5)  = QSE(#,K+1)                                                 CONVEC3C.1135   
C  WORK(1,6)  = DQSTHKP1(#)                                                CONVEC3C.1136   
C  WORK(1,7)  = THP(#,K)                                                   CONVEC3C.1137   
C  WORK(1,8)  = QP(#,K)                                                    CONVEC3C.1138   
C  WORK(1,9)  = PKP1(#)                                                    CONVEC3C.1139   
C  WORK(1,10) = EXKP1(#)                                                   CONVEC3C.1140   
C  WORK(1,11) = EKP14(#)                                                   CONVEC3C.1141   
C  WORK(1,12) = EKP34(#)                                                   CONVEC3C.1142   
C  WORK(1,13) = PARCEL POT. TEMPERATURE IN LAYER K+1                       CONVEC3C.1143   
C  WORK(1,14) = PARCEL MIXING RATIO IN LAYER K+1                           CONVEC3C.1144   
C  WORK(1,15) = EXCESS WATER VAPOUR IN PARCEL ABOVE                        CONVEC3C.1145   
C               SATURATION AFTER DRY ASCENT                                CONVEC3C.1146   
C  WORK(1,16) = PARCEL BUOYANCY IN LAYER K+1                               CONVEC3C.1147   
C  WORK(1,17) = DELPKP12(#)                                                CONVEC3C.1148   
C  WORK(1,18) = PSTAR(#)                                                   CONVEC3C.1149   
C  WORK(1,19) = FLX(#,K)                                                   CONVEC3C.1150   
C  WORK(1,20) = EMINDS(#)                                                  CONVEC3C.1151   
C  WORK(1,21) = FLXMAXK(#)                                                 CONVEC3C.1152   
C  WORK(1,22) = FLXMAX2(#)                                                 CONVEC3C.1153   
C  WORK(1,23) = U(#,K)                                                     CONVEC3C.1154   
C  WORK(1,24) = U(#,K+1)                                                   CONVEC3C.1155   
C  WORK(1,25) = V(#,K)                                                     CONVEC3C.1156   
C  WORK(1,26) = V(#,K+1)                                                   CONVEC3C.1157   
C  WORK(1,27) = UP(#,K)                                                    CONVEC3C.1158   
C  WORK(1,28) = VP(#,K)                                                    CONVEC3C.1159   
C  WORK(1,29) = PARCEL U IN LAYER K+1                                      CONVEC3C.1160   
C  WORK(1,30) = PARCEL V IN LAYER K+1                                      CONVEC3C.1161   
C                                                                          CONVEC3C.1162   
C  BWORK(1,1) = BWATER(INDEX1(I),K+1)                                      CONVEC3C.1163   
C  BWORK(1,2) = .TRUE. IF PARCEL SATURATED IN LAYER K+1                    CONVEC3C.1164   
C  BWORK(1,3) = .TRUE. IF CONVECTION INITIATE FROM LAYER K+1               CONVEC3C.1165   
C  BWORK(1,4) = BINIT(INDEX1(I))                                           CONVEC3C.1166   
C----------------------------------------------------------------------    CONVEC3C.1167   
C                                                                          CONVEC3C.1168   
      IF (NCONV .NE. 0) THEN                                               CONVEC3C.1169   
        DO I=1,NCONV                                                       CONVEC3C.1170   
          WORK(I,1)  = TH(INDEX1(I),K)                                     CONVEC3C.1171   
          WORK(I,2)  = TH(INDEX1(I),K+1)                                   CONVEC3C.1172   
        ENDDO                                                              CONVEC3C.1173   
        DO I=1,NCONV                                                       CONVEC3C.1174   
          WORK(I,3)  = Q(INDEX1(I),K)                                      CONVEC3C.1175   
          WORK(I,4)  = Q(INDEX1(I),K+1)                                    CONVEC3C.1176   
        ENDDO                                                              CONVEC3C.1177   
        DO I=1,NCONV                                                       CONVEC3C.1178   
          WORK(I,5)  = QSE(INDEX1(I),K+1)                                  CONVEC3C.1179   
          WORK(I,6)  = DQSTHKP1(INDEX1(I))                                 CONVEC3C.1180   
        ENDDO                                                              CONVEC3C.1181   
        DO I=1,NCONV                                                       CONVEC3C.1182   
          WORK(I,7)  = THP(INDEX1(I),K)                                    CONVEC3C.1183   
          WORK(I,8)  = QP(INDEX1(I),K)                                     CONVEC3C.1184   
        ENDDO                                                              CONVEC3C.1185   
        DO I=1,NCONV                                                       CONVEC3C.1186   
          WORK(I,9)  = PKP1(INDEX1(I))                                     CONVEC3C.1187   
          WORK(I,10) = EXKP1(INDEX1(I))                                    CONVEC3C.1188   
        ENDDO                                                              CONVEC3C.1189   
        DO I=1,NCONV                                                       CONVEC3C.1190   
          WORK(I,11) = EKP14(INDEX1(I))                                    CONVEC3C.1191   
          WORK(I,12) = EKP34(INDEX1(I))                                    CONVEC3C.1192   
        ENDDO                                                              CONVEC3C.1193   
        DO I=1,NCONV                                                       CONVEC3C.1194   
          WORK(I,17) = DELPKP12(INDEX1(I))                                 CONVEC3C.1195   
          WORK(I,18) = PSTAR(INDEX1(I))                                    CONVEC3C.1196   
        ENDDO                                                              CONVEC3C.1197   
        DO I=1,NCONV                                                       CONVEC3C.1198   
          WORK(I,19) = FLX(INDEX1(I),K)                                    CONVEC3C.1199   
          WORK(I,20) = EMINDS(INDEX1(I))                                   CONVEC3C.1200   
        ENDDO                                                              CONVEC3C.1201   
        DO I=1,NCONV                                                       CONVEC3C.1202   
          WORK(I,21) = FLXMAXK(INDEX1(I))                                  CONVEC3C.1203   
          WORK(I,22) = FLXMAX2(INDEX1(I))                                  CONVEC3C.1204   
        ENDDO                                                              CONVEC3C.1205   
        DO I=1,NCONV                                                       CONVEC3C.1206   
          BWORK(I,1) = BWATER(INDEX1(I),K+1)                               CONVEC3C.1207   
          BWORK(I,4) = BINIT(INDEX1(I))                                    CONVEC3C.1208   
        ENDDO                                                              CONVEC3C.1209   
        DO I=1,NCONV                                                       CONVEC3C.1210   
          L_SHALLOW_C(I) = L_SHALLOW(INDEX1(I))                            CONVEC3C.1211   
          L_MID_C(I) = L_MID(INDEX1(I))                                    CONVEC3C.1212   
        ENDDO                                                              CONVEC3C.1213   
C                                                                          CONVEC3C.1214   
        IF(L_MOM)THEN                                                      CONVEC3C.1215   
         DO I=1,NCONV                                                      CONVEC3C.1216   
           WORK(I,23) = U(INDEX1(I),K)                                     CONVEC3C.1217   
           WORK(I,24) = U(INDEX1(I),K+1)                                   CONVEC3C.1218   
        ENDDO                                                              CONVEC3C.1219   
        DO I=1,NCONV                                                       CONVEC3C.1220   
           WORK(I,25) = V(INDEX1(I),K)                                     CONVEC3C.1221   
           WORK(I,26) = V(INDEX1(I),K+1)                                   CONVEC3C.1222   
        ENDDO                                                              CONVEC3C.1223   
        DO I=1,NCONV                                                       CONVEC3C.1224   
           WORK(I,27) = UP(INDEX1(I),K)                                    CONVEC3C.1225   
           WORK(I,28) = VP(INDEX1(I),K)                                    CONVEC3C.1226   
        ENDDO                                                              CONVEC3C.1227   
        END IF                                                             CONVEC3C.1228   
C                                                                          CONVEC3C.1229   
        IF(L_TRACER)THEN                                                   CONVEC3C.1230   
C                                                                          CONVEC3C.1231   
        DO KTRA = 1,NTRA                                                   CONVEC3C.1232   
          DO I=1,NCONV                                                     CONVEC3C.1233   
           TRAEK_C(I,KTRA)   = TRACER(INDEX1(I),K,KTRA)                    CONVEC3C.1234   
           TRAEKP1_C(I,KTRA) = TRACER(INDEX1(I),K+1,KTRA)                  CONVEC3C.1235   
           TRAPK_C(I,KTRA)   = TRAP(INDEX1(I),K,KTRA)                      CONVEC3C.1236   
          END DO                                                           CONVEC3C.1237   
        END DO                                                             CONVEC3C.1238   
C                                                                          CONVEC3C.1239   
        END IF                                                             CONVEC3C.1240   
C                                                                          CONVEC3C.1241   
      IF ( K.LT.NBL) THEN                                                  CONVEC3C.1242   
C                                                                          CONVEC3C.1243   
CL                                                                         CONVEC3C.1244   
CL--------------------------------------------------------------------     CONVEC3C.1245   
CL CARRY OUT TEST ASCENT TO ASCERTAIN WHETHER DEEP CONVECTION OR           CONVEC3C.1246   
CL SHALLOW CONVECTION IS POSSIBLE.                                         CONVEC3C.1247   
CL                                                                         CONVEC3C.1248   
CL UM DOCUMENTATION PAPER 27-3. SECTION 2.                                 CONVEC3C.1249   
CL                                                                         CONVEC3C.1250   
CL CALCULATION ONLY CARRIED OUT FOR CONVECTION INITIATING WITHIN THE       CONVEC3C.1251   
CL BOUNDARY LAYER                                                          CONVEC3C.1252   
CL--------------------------------------------------------------------     CONVEC3C.1253   
CL                                                                         CONVEC3C.1254   
       DO K_TEST=K,NBL        ! LOOP OVER BOUNDARY LAYER LEVELS            CONVEC3C.1255   
C---------------------------------------------------------------------     CONVEC3C.1256   
C  SET COEFFICIENTS FOR CALCULATION OF ENTRAINMENT RATES                   CONVEC3C.1257   
C---------------------------------------------------------------------     CONVEC3C.1258   
       IF(K_TEST.EQ.1)THEN                                                 CONVEC3C.1259   
         AEKP14 = AE1                                                      CONVEC3C.1260   
         AEKP34 = AE2                                                      CONVEC3C.1261   
       ELSE                                                                CONVEC3C.1262   
         AEKP14 = AE2                                                      CONVEC3C.1263   
         AEKP34 = AE2                                                      CONVEC3C.1264   
       END IF                                                              CONVEC3C.1265   
C                                                                          CONVEC3C.1266   
C--------------------------------------------------------------------      CONVEC3C.1267   
C SET VALUES FOR TEST ASCENT                                               CONVEC3C.1268   
C--------------------------------------------------------------------      CONVEC3C.1269   
C                                                                          CONVEC3C.1270   
        IF ( K_TEST .EQ. K ) THEN                                          CONVEC3C.1271   
C                                                                          CONVEC3C.1272   
         DO I=1,NCONV         ! 1ST COMPRESS LOOP                          CONVEC3C.1273   
          WORK2(I,1) = WORK(I,1)          ! THEK                           CONVEC3C.1274   
          WORK2(I,2) = WORK(I,2)          ! THEKP1                         CONVEC3C.1275   
         ENDDO                                                             APB3F405.406    
         DO I=1,NCONV         ! 1ST COMPRESS LOOP                          APB3F405.407    
          WORK2(I,3) = WORK(I,3)          ! QEK                            CONVEC3C.1276   
          WORK2(I,4) = WORK(I,4)          ! QEKP1                          CONVEC3C.1277   
         ENDDO                                                             APB3F405.408    
         DO I=1,NCONV         ! 1ST COMPRESS LOOP                          APB3F405.409    
          WORK2(I,5) = WORK(I,5)          ! QSEKP1                         CONVEC3C.1278   
          WORK2(I,6) = WORK(I,6)          ! DQSEKP1                        CONVEC3C.1279   
         ENDDO                                                             APB3F405.410    
         DO I=1,NCONV         ! 1ST COMPRESS LOOP                          APB3F405.411    
          WORK2(I,7) = WORK(I,7)          ! THPK                           CONVEC3C.1280   
          WORK2(I,8) = WORK(I,8)          ! QPK                            CONVEC3C.1281   
         ENDDO                                                             APB3F405.412    
         DO I=1,NCONV         ! 1ST COMPRESS LOOP                          APB3F405.413    
          WORK2(I,9) = WORK(I,9)          ! PKP1                           CONVEC3C.1282   
          WORK2(I,10) = WORK(I,10)        ! EXKP1                          CONVEC3C.1283   
         ENDDO                                                             APB3F405.414    
         DO I=1,NCONV         ! 1ST COMPRESS LOOP                          APB3F405.415    
          WORK2(I,11) = WORK(I,11)        ! EKP14                          CONVEC3C.1284   
          WORK2(I,12) = WORK(I,12)        ! EKP34                          CONVEC3C.1285   
         ENDDO                                                             APB3F405.416    
         DO I=1,NCONV         ! 1ST COMPRESS LOOP                          APB3F405.417    
          BWORK2(I,1) = BWORK(I,1)        ! BWATER KP1                     CONVEC3C.1286   
          BWORK2(I,3) = .FALSE.           ! POINT WHERE CONVECTION         CONVEC3C.1287   
                                          ! HAS INITIATED FROM LAYER K     CONVEC3C.1288   
                                          ! OR ABOVE                       CONVEC3C.1289   
          WORK2(I,20) = WORK(I,20)        ! EMINDS                         CONVEC3C.1290   
C                                                                          CONVEC3C.1291   
         END DO              ! END OF 1ST COMPRESS LOOP                    CONVEC3C.1292   
C                                                                          CONVEC3C.1293   
C                                                                          CONVEC3C.1294   
        ELSE                 ! IF(K_TEST.NE.K)                             CONVEC3C.1295   
C                                                                          CONVEC3C.1296   
         DO I=1,NCONV        ! 2ND COMPRESS LOOP                           CONVEC3C.1297   
C                                                                          CONVEC3C.1298   
          WORK2(I,1) = WORK2(I,2)                          ! THEK          CONVEC3C.1299   
          WORK2(I,2) = TH(INDEX1(I),K_TEST+1)              ! THEKP1        CONVEC3C.1300   
         ENDDO                                                             APB3F405.418    
         DO I=1,NCONV        ! 2ND COMPRESS LOOP                           APB3F405.419    
          WORK2(I,3) = WORK2(I,4)                          ! QEK           CONVEC3C.1301   
          WORK2(I,4) = Q(INDEX1(I),K_TEST+1)               ! QEKP1         CONVEC3C.1302   
         ENDDO                                                             APB3F405.420    
         DO I=1,NCONV        ! 2ND COMPRESS LOOP                           APB3F405.421    
          WORK2(I,5) = QSE(INDEX1(I),K_TEST+1)             ! QSEKP1        CONVEC3C.1303   
          WORK2(I,7) = WORK2(I,13)                         ! THPK          CONVEC3C.1304   
         ENDDO                                                             APB3F405.422    
         DO I=1,NCONV        ! 2ND COMPRESS LOOP                           APB3F405.423    
          WORK2(I,8) = WORK2(I,14)                         ! QPK           CONVEC3C.1305   
          WORK2(I,9) = AK(K_TEST+1) + BK(K_TEST+1)                         CONVEC3C.1306   
     *                 *WORK(I,18)                         ! PKP1          CONVEC3C.1307   
         ENDDO                                                             APB3F405.424    
         DO I=1,NCONV        ! 2ND COMPRESS LOOP                           APB3F405.425    
          PU = WORK(I,18)*BKM12(K_TEST+2)+AKM12(K_TEST+2)                  CONVEC3C.1308   
          PL = WORK(I,18)*BKM12(K_TEST+1)+AKM12(K_TEST+1)                  CONVEC3C.1309   
          PM = WORK(I,18)*BK(K_TEST)+AK(K_TEST)                            CONVEC3C.1310   
          WORK2(I,10) = P_EXNER_C(EXNER(INDEX1(I),K_TEST+2),               CONVEC3C.1311   
     *              EXNER(INDEX1(I),K_TEST+1),PU,PL,KAPPA) ! EXKP1         CONVEC3C.1312   
          WORK2(I,11) = ENTCOEF * AEKP14 * PM *                            CONVEC3C.1313   
     *                (PM-AKM12(K_TEST+1)-BKM12(K_TEST+1)*                 CONVEC3C.1314   
     *                WORK(I,18))/(WORK(I,18)*WORK(I,18))  ! EKP14         CONVEC3C.1315   
         ENDDO                                                             APB3F405.426    
         DO I=1,NCONV        ! 2ND COMPRESS LOOP                           APB3F405.427    
          WORK2(I,12) = ENTCOEF *AEKP34 * (AKM12(K_TEST+1)                 CONVEC3C.1316   
     *                +BKM12(K_TEST+1)*WORK(I,18))*                        CONVEC3C.1317   
     *                (AKM12(K_TEST+1)+BKM12(K_TEST+1)*                    CONVEC3C.1318   
     *                WORK(I,18)-WORK2(I,9))/(WORK(I,18)*                  CONVEC3C.1319   
     *                WORK(I,18))                          ! EKP34         CONVEC3C.1320   
         ENDDO                                                             APB3F405.428    
         DO I=1,NCONV        ! 2ND COMPRESS LOOP                           APB3F405.429    
          WORK2(I,20) = EMINDS(INDEX1(I))                  ! EMINDS        CONVEC3C.1321   
          BWORK2(I,1) = BWATER(INDEX1(I),K_TEST+1)         ! BWATER KP1    CONVEC3C.1322   
C                                                                          CONVEC3C.1323   
         END DO              ! END OF 2ND COMPRESS LOOP                    CONVEC3C.1324   
C                                                                          CONVEC3C.1325   
         CALL DQS_DTH(WORK2(1,6),K_TEST+1,WORK2(1,2),WORK2(1,5),           CONVEC3C.1326   
     *                WORK2(1,10),NCONV)                                   CONVEC3C.1327   
C                                                                          CONVEC3C.1328   
        END IF               ! IF(K_TEST.EQ.K) END                         CONVEC3C.1329   
C                                                                          CONVEC3C.1330   
C--------------------------------------------------------------------      CONVEC3C.1331   
C CARRY OUT TEST ASCENT                                                    CONVEC3C.1332   
C L_TRACER AND L_MOM(THE LOGICAL SWITCHES FOR INCLUSION OF TRACERS AND     CONVEC3C.1333   
C MOMENTUM ARE SET TO .FALSE. IN THIS CALL SINCE THIS ASCENT IS PURELY     CONVEC3C.1334   
C TO DIAGNOSE THE DEPTH OF THE INITIATED CONVECTION. THUS NOT              CONVEC3C.1335   
C INCLUDING THE TRACERS AND WINDS SAVES CPU TIME AND MEMORY.               CONVEC3C.1336   
C--------------------------------------------------------------------      CONVEC3C.1337   
C                                                                          CONVEC3C.1338   
      CALL LIFT_PAR (NCONV,NPNTS,WORK2(1,13),WORK2(1,14),WORK2(1,15),      CONVEC3C.1339   
     *               BWORK2(1,2),BWORK2(1,1),WORK2(1,7),WORK2(1,8),        CONVEC3C.1340   
     *               WORK2(1,2),WORK2(1,4),WORK2(1,1),WORK2(1,3),          CONVEC3C.1341   
     *               WORK2(1,5),WORK2(1,6),WORK2(1,9),WORK2(1,10),         CONVEC3C.1342   
     *               WORK2(1,11),WORK2(1,12),.FALSE.,WORK2(1,29),          CONVEC3C.1343   
     *               WORK2(1,30),WORK2(1,27),WORK2(1,28),WORK2(1,23),      CONVEC3C.1344   
     *               WORK2(1,24),WORK2(1,25),WORK2(1,26),.FALSE.,NTRA,     CONVEC3C.1345   
     *               TRAPKP1_C2,TRAPK_C2,TRAEKP1_C2,TRAEK_C2,              CONVEC3C.1346   
     *               L_SHALLOW_C)                                          CONVEC3C.1347   
C                                                                          CONVEC3C.1348   
      DO I=1,NCONV           ! 1ST LOOP OVER CONVECTING POINTS             CONVEC3C.1349   
CL                                                                         CONVEC3C.1350   
CL---------------------------------------------------------------------    CONVEC3C.1351   
CL CALCULATE BUOYANCY OF PARCEL IN LAYER K+1                               CONVEC3C.1352   
CL---------------------------------------------------------------------    CONVEC3C.1353   
CL                                                                         CONVEC3C.1354   
        WORK2(I,16) = WORK2(I,13)*(1.0 +                                   CONVEC3C.1355   
     *                            C_VIRTUAL * WORK2(I,14))                 CONVEC3C.1356   
     *               - WORK2(I,2)*(1.0 +                                   CONVEC3C.1357   
     *                            C_VIRTUAL * WORK2(I,4))                  CONVEC3C.1358   
C                                                                          CONVEC3C.1359   
C----------------------------------------------------------------------    CONVEC3C.1360   
C INITIATE CONVECTION WHERE BUOYANCY IS LARGE ENOUGH                       CONVEC3C.1361   
C----------------------------------------------------------------------    CONVEC3C.1362   
C                                                                          CONVEC3C.1363   
        IF ( .NOT.BWORK2(I,3) .AND. .NOT.BWORK(I,4) )                      CONVEC3C.1364   
     *                               BWORK2(I,3) = WORK2(I,16) .GT.        CONVEC3C.1365   
     *                               (WORK2(I,20)+XSBMIN)                  CONVEC3C.1366   
C                                                                          CONVEC3C.1367   
C----------------------------------------------------------------------    CONVEC3C.1368   
C CHECK TO SEE IF CONVECTION INITIATING BETWEEN LAYERS K AND NBL           CONVEC3C.1369   
C REACHES ZERO BUOYANCY BEFORE NBL+1                                       CONVEC3C.1370   
C---------------------------------------------------------------------     CONVEC3C.1371   
C                                                                          CONVEC3C.1372   
        IF ( BWORK2(I,3) .AND. .NOT.BWORK(I,4) .AND.                       CONVEC3C.1373   
     *     .NOT.L_SHALLOW_C(I).AND. WORK2(I,16) .LE. 0.0) THEN             CONVEC3C.1374   
         L_SHALLOW_C(I) = .TRUE.                                           CONVEC3C.1375   
         L_SHALLOW(INDEX1(I)) = L_SHALLOW_C(I)                             CONVEC3C.1376   
C                                                                          CONVEC3C.1377   
C----------------------------------------------------------------------    CONVEC3C.1378   
C IF IN TOP 2 LAYERS OF BOUNDARY LAYER, CALCULATE THE POTENTIAL            CONVEC3C.1379   
C TEMPERATURE OF AN UNDILUTE PARCEL FROM THE INITIAL CONVECTIVE            CONVEC3C.1380   
C LEVEL, (MIMICKING CODE IN ROUTINE TERM_CON) AND RESET L_SHALLOW          CONVEC3C.1381   
C TO FALSE IF THIS PARCEL IS STILL BUOYANT.                                CONVEC3C.1382   
C----------------------------------------------------------------------    CONVEC3C.1383   
C                                                                          CONVEC3C.1384   
         IF(K_TEST.EQ.NBL.OR.K_TEST.EQ.NBL-1)THEN                          CONVEC3C.1385   
          IF(BWORK2(I,1))THEN                                              CONVEC3C.1386   
            EL=LC                                                          CONVEC3C.1387   
          ELSE                                                             CONVEC3C.1388   
            EL=LC+LF                                                       CONVEC3C.1389   
          END IF                                                           CONVEC3C.1390   
          THVUNDI=(THPI(INDEX1(I))+(EL/(WORK2(I,10)*CP))*(QPI(INDEX1(I))   CONVEC3C.1391   
     *            -WORK2(I,5))+((LC-EL)/(WORK2(I,10)*CP))*MAX(0.0,         CONVEC3C.1392   
     *            (QPI(INDEX1(I))-QSTICE)))*(1.0+C_VIRTUAL*WORK2(I,5))     CONVEC3C.1393   
          THVEKP1=(WORK2(I,2)*(1.0+C_VIRTUAL*WORK2(I,4))+XSBMIN)           CONVEC3C.1394   
          IF(THVUNDI.GT.THVEKP1)THEN                                       CONVEC3C.1395   
            L_SHALLOW_C(I)=.FALSE.                                         CONVEC3C.1396   
            L_SHALLOW(INDEX1(I))=L_SHALLOW_C(I)                            CONVEC3C.1397   
          END IF                                                           CONVEC3C.1398   
         END IF            ! IF(K_TEST.EQ.NBL.OR.K_TEST.EQ.NBL-1) END      CONVEC3C.1399   
         BWORK2(I,3) = .FALSE.                                             CONVEC3C.1400   
        END IF             ! IF(BWORK2(I,3.AND..NOT.BWORK(I,4)...) END     CONVEC3C.1401   
C                                                                          CONVEC3C.1402   
       END DO              ! END OF 1ST I LOOP OVER CONVECTIVE POINTS      CONVEC3C.1403   
C                                                                          CONVEC3C.1404   
      END DO               ! END OF LOOP OVER BOUNDARY LAYER LEVELS        CONVEC3C.1405   
C                                                                          CONVEC3C.1406   
C----------------------------------------------------------------------    CONVEC3C.1407   
C RESET INITIAL THETA AND Q OF THE PARCEL AND ENTRAINMENT/                 CONVEC3C.1408   
C DETRAINMENT RATES IF SHALLOW CONVECTION                                  CONVEC3C.1409   
C---------------------------------------------------------------------     CONVEC3C.1410   
C                                                                          CONVEC3C.1411   
       DO I=1,NCONV        ! 2ND LOOP OVER CONVECTING POINTS               CONVEC3C.1412   
C                                                                          CONVEC3C.1413   
        IF ( L_SHALLOW_C(I) ) THEN                                         CONVEC3C.1414   
C                                                                          CONVEC3C.1415   
        IF (.NOT.BWORK(I,4)) THEN                                          CONVEC3C.1416   
C                                                                          CONVEC3C.1417   
         IF ( L_SDXS .AND. K .EQ. 1 ) THEN                                 CONVEC3C.1418   
           WORK(I,7) = WORK(I,1) + MAX(THPIXS_SHALLOW,                     CONVEC3C.1419   
     *                 T1_SD(INDEX1(I))/EXK(INDEX1(I)))                    CONVEC3C.1420   
           THPI(INDEX1(I)) = WORK(I,1) + MAX(THPIXS_SHALLOW,               CONVEC3C.1421   
     *                       T1_SD(INDEX1(I))/EXK(INDEX1(I)))              CONVEC3C.1422   
           WORK(I,8) = WORK(I,3) + MAX(QPIXS_SHALLOW,Q1_SD(INDEX1(I)))     CONVEC3C.1423   
           QPI(INDEX1(I)) = WORK(I,3) + MAX(QPIXS_SHALLOW,                 CONVEC3C.1424   
     *                      Q1_SD(INDEX1(I)))                              CONVEC3C.1425   
         ELSE                                                              CONVEC3C.1426   
           WORK(I,7) = WORK(I,1) + THPIXS_SHALLOW                          CONVEC3C.1427   
           THPI(INDEX1(I)) = WORK(I,1) + THPIXS_SHALLOW                    CONVEC3C.1428   
           WORK(I,8) = WORK(I,3) + QPIXS_SHALLOW                           CONVEC3C.1429   
           QPI(INDEX1(I)) = WORK(I,3) + QPIXS_SHALLOW                      CONVEC3C.1430   
         END IF                                                            CONVEC3C.1431   
C                                                                          CONVEC3C.1432   
        END IF             ! IF(.NOT.BWORK(I,4)) END                       CONVEC3C.1433   
C                                                                          CONVEC3C.1434   
         WORK(I,11) = WORK(I,11)*SH_FAC                                    CONVEC3C.1435   
         EKP14(INDEX1(I)) = WORK(I,11)                                     CONVEC3C.1436   
         WORK(I,12) = WORK(I,12)*SH_FAC                                    CONVEC3C.1437   
         EKP34(INDEX1(I)) = WORK(I,12)                                     CONVEC3C.1438   
         AMDETK(INDEX1(I)) = AMDETK(INDEX1(I))*SH_FAC                      CONVEC3C.1439   
C                                                                          CONVEC3C.1440   
        END IF             ! IF(L_SHALLOW_C(I)) END                        CONVEC3C.1441   
C                                                                          CONVEC3C.1442   
       END DO              ! END OF 2ND I LOOP OVER CONVECTING POINTS      CONVEC3C.1443   
C                                                                          CONVEC3C.1444   
      END IF               ! IF(K.LT.NBL) END                              CONVEC3C.1445   
CL                                                                         CONVEC3C.1446   
CL---------------------------------------------------------------------    CONVEC3C.1447   
CL LIFT PARCEL FROM LAYER K TO K+1                                         CONVEC3C.1448   
CL                                                                         CONVEC3C.1449   
CL UM DOCUMENTATION PAPER 27                                               CONVEC3C.1450   
CL SECTION (3) AND (4)                                                     CONVEC3C.1451   
CL---------------------------------------------------------------------    CONVEC3C.1452   
CL                                                                         CONVEC3C.1453   
      CALL LIFT_PAR (NCONV,NPNTS,WORK(1,13),WORK(1,14),WORK(1,15),         CONVEC3C.1454   
     *               BWORK(1,2),BWORK(1,1),WORK(1,7),WORK(1,8),            CONVEC3C.1455   
     *               WORK(1,2),WORK(1,4),WORK(1,1),WORK(1,3),              CONVEC3C.1456   
     *               WORK(1,5),WORK(1,6),WORK(1,9),                        CONVEC3C.1457   
     *               WORK(1,10),WORK(1,11),WORK(1,12),L_MOM,               CONVEC3C.1458   
     *               WORK(1,29),WORK(1,30),WORK(1,27),WORK(1,28),          CONVEC3C.1459   
     *               WORK(1,23),WORK(1,24),WORK(1,25),WORK(1,26),          CONVEC3C.1460   
     *               L_TRACER,NTRA,TRAPKP1_C,TRAPK_C,TRAEKP1_C,            CONVEC3C.1461   
     *               TRAEK_C,L_SHALLOW_C)                                  CONVEC3C.1462   
C                                                                          CONVEC3C.1463   
      DO 110 I=1,NCONV                                                     CONVEC3C.1464   
CL                                                                         CONVEC3C.1465   
CL---------------------------------------------------------------------    CONVEC3C.1466   
CL CALCULATE BUOYANCY OF PARCEL IN LAYER K+1                               CONVEC3C.1467   
CL---------------------------------------------------------------------    CONVEC3C.1468   
CL                                                                         CONVEC3C.1469   
        WORK(I,16) = WORK(I,13)*(1.0 +                                     CONVEC3C.1470   
     *                            C_VIRTUAL * WORK(I,14))                  CONVEC3C.1471   
     *               - WORK(I,2)*(1.0 +                                    CONVEC3C.1472   
     *                            C_VIRTUAL * WORK(I,4))                   CONVEC3C.1473   
C                                                                          CONVEC3C.1474   
C----------------------------------------------------------------------    CONVEC3C.1475   
C INITIATE CONVECTION WHERE BUOYANCY IS LARGE ENOUGH                       CONVEC3C.1476   
C----------------------------------------------------------------------    CONVEC3C.1477   
C                                                                          CONVEC3C.1478   
        BWORK(I,3) = .NOT.BWORK(I,4) .AND. WORK(I,16) .GT.                 CONVEC3C.1479   
     *      (WORK(I,20)+ XSBMIN)                                           CONVEC3C.1480   
C                                                                          CONVEC3C.1481   
C----------------------------------------------------------------------    CONVEC3C.1482   
C CALCULATE INITIAL MASSFLUX FROM LAYER K                                  CONVEC3C.1483   
C----------------------------------------------------------------------    CONVEC3C.1484   
C                                                                          CONVEC3C.1485   
        IF ( BWORK(I,3) ) THEN                                             CONVEC3C.1486   
C                                                                          CONVEC3C.1487   
          IF(L_SHALLOW_C(I))THEN                                           CONVEC3C.1488   
            C=C_SHALLOW                                                    CONVEC3C.1489   
            D=D_SHALLOW                                                    CONVEC3C.1490   
          ELSEIF(L_MID_C(I))THEN                                           CONVEC3C.1491   
            C=C_MID                                                        CONVEC3C.1492   
            D=D_MID                                                        CONVEC3C.1493   
          ELSE                                                             CONVEC3C.1494   
            C=C_DEEP                                                       CONVEC3C.1495   
            D=D_DEEP                                                       CONVEC3C.1496   
          END IF                                                           CONVEC3C.1497   
C                                                                          CONVEC3C.1498   
           WORK(I,19) = 1.0E-3 * WORK(I,18) *                              CONVEC3C.1499   
     1                        ( D + C * WORK(I,18) *                       CONVEC3C.1500   
     2                 ((WORK(I,16) - XSBMIN) / WORK(I,17)))               CONVEC3C.1501   
C                                                                          CONVEC3C.1502   
        END IF                                                             CONVEC3C.1503   
  110 CONTINUE                                                             CONVEC3C.1504   
C                                                                          CONVEC3C.1505   
C----------------------------------------------------------------------    CONVEC3C.1506   
C LIMIT MASSFLUX IN LOWEST CONVECTING LAYER TO BE <= MASS OF LAYER         CONVEC3C.1507   
C OR                                                                       CONVEC3C.1508   
C IF K=1 ADJUST ENTRAINMENT RATE IN BOTTOM HALF OF LAYER 2 SO              CONVEC3C.1509   
C NOT TO AFFECT THE MASS FLUX AT MID-POINT OF LAYER 2                      CONVEC3C.1510   
C----------------------------------------------------------------------    CONVEC3C.1511   
C                                                                          CONVEC3C.1512   
      IF ( K .EQ. 1 ) THEN                                                 CONVEC3C.1513   
C                                                                          CONVEC3C.1514   
       DO I=1,NCONV                                                        CONVEC3C.1515   
C                                                                          CONVEC3C.1516   
C--------------------------------------------------------------------      CONVEC3C.1517   
C CARRY OUT CALCULATION IF CONVECTION WAS INITIATED FROM LAYER 1           CONVEC3C.1518   
C--------------------------------------------------------------------      CONVEC3C.1519   
C                                                                          CONVEC3C.1520   
        IF ( BWORK(I,3) ) THEN                                             CONVEC3C.1521   
C                                                                          CONVEC3C.1522   
C--------------------------------------------------------------------      CONVEC3C.1523   
C CALCULATE MASS FLUX AT MID-POINT OF LAYER 2 USING STANDARD               CONVEC3C.1524   
C ENTRAINMENT RATES                                                        CONVEC3C.1525   
C--------------------------------------------------------------------      CONVEC3C.1526   
C                                                                          CONVEC3C.1527   
         FLX2 = WORK(I,19) * (1.0 + WORK(I,11)) * (1.0 + WORK(I,12))       CONVEC3C.1528   
C                                                                          CONVEC3C.1529   
C--------------------------------------------------------------------      CONVEC3C.1530   
C IF MASS FLUX IN LAYER 2 EXCEEDS MASS OF LAYER THEN LIMIT MASS FLUX       CONVEC3C.1531   
C OVER A TIMESTEP TO MASS OF LAYER                                         CONVEC3C.1532   
C--------------------------------------------------------------------      CONVEC3C.1533   
C                                                                          CONVEC3C.1534   
        IF (WORK(I,19) .GT. WORK(I,21)) THEN                               CONVEC3C.1535   
C                                                                          CONVEC3C.1536   
         WORK(I,19) = WORK(I,21)                                           CONVEC3C.1537   
C                                                                          CONVEC3C.1538   
C--------------------------------------------------------------------      CONVEC3C.1539   
C IF MASS FLUX AT MID-POINT OF LAYER 2 EXCEEDS THE MASS OF THE COLUMN      CONVEC3C.1540   
C DOWN TO THE SURFACE OVER THE TIMESTEP THEN LIMIT MASS FLUX               CONVEC3C.1541   
C--------------------------------------------------------------------      CONVEC3C.1542   
C                                                                          CONVEC3C.1543   
        IF ( FLX2 .GT. WORK(I,22)) FLX2 = WORK(I,22)                       CONVEC3C.1544   
C                                                                          CONVEC3C.1545   
C--------------------------------------------------------------------      CONVEC3C.1546   
C ADJUST ENTRAINMENT RATE IN BOTTOM HALF OF LAYER 2                        CONVEC3C.1547   
C--------------------------------------------------------------------      CONVEC3C.1548   
C                                                                          CONVEC3C.1549   
       WORK(I,12) = (FLX2/(WORK(I,19) * (1.0 + WORK(I,11)))) - 1.0         CONVEC3C.1550   
       END IF                                                              CONVEC3C.1551   
C                                                                          CONVEC3C.1552   
       END IF                                                              CONVEC3C.1553   
      END DO                                                               CONVEC3C.1554   
C                                                                          CONVEC3C.1555   
C---------------------------------------------------------------------     CONVEC3C.1556   
C RECALCULATE ASCENT FROM LAYER 1 TO 2 USING ADJUSTED ENTRAINMENT RATE     CONVEC3C.1557   
C---------------------------------------------------------------------     CONVEC3C.1558   
C                                                                          CONVEC3C.1559   
      CALL LIFT_PAR (NCONV,NPNTS,WORK(1,13),WORK(1,14),WORK(1,15),         CONVEC3C.1560   
     *               BWORK(1,2),BWORK(1,1),WORK(1,7),WORK(1,8),            CONVEC3C.1561   
     *               WORK(1,2),WORK(1,4),WORK(1,1),WORK(1,3),              CONVEC3C.1562   
     *               WORK(1,5),WORK(1,6),WORK(1,9),                        CONVEC3C.1563   
     *               WORK(1,10),WORK(1,11),WORK(1,12),L_MOM,               CONVEC3C.1564   
     *               WORK(1,29),WORK(1,30),WORK(1,27),WORK(1,28),          CONVEC3C.1565   
     *               WORK(1,23),WORK(1,24),WORK(1,25),WORK(1,26),          CONVEC3C.1566   
     *               L_TRACER,NTRA,TRAPKP1_C,TRAPK_C,TRAEKP1_C,            CONVEC3C.1567   
     *               TRAEK_C,L_SHALLOW_C)                                  CONVEC3C.1568   
C                                                                          CONVEC3C.1569   
       DO I=1,NCONV                                                        CONVEC3C.1570   
C                                                                          CONVEC3C.1571   
        IF ( BWORK(I,3) ) THEN                                             CONVEC3C.1572   
CL                                                                         CONVEC3C.1573   
CL---------------------------------------------------------------------    CONVEC3C.1574   
CL RECALCULATE BUOYANCY OF PARCEL IN LAYER K+1                             CONVEC3C.1575   
CL---------------------------------------------------------------------    CONVEC3C.1576   
CL                                                                         CONVEC3C.1577   
        WORK(I,16) = WORK(I,13)*(1.0 +                                     CONVEC3C.1578   
     *                            C_VIRTUAL * WORK(I,14))                  CONVEC3C.1579   
     *               - WORK(I,2)*(1.0 +                                    CONVEC3C.1580   
     *                            C_VIRTUAL * WORK(I,4))                   CONVEC3C.1581   
C                                                                          CONVEC3C.1582   
C----------------------------------------------------------------------    CONVEC3C.1583   
C RESET MASK TO INITIATE CONVECTION WHERE BUOYANCY IS LARGE ENOUGH         CONVEC3C.1584   
C----------------------------------------------------------------------    CONVEC3C.1585   
C                                                                          CONVEC3C.1586   
        BWORK(I,3) = .NOT.BWORK(I,4) .AND. WORK(I,16) .GT.                 CONVEC3C.1587   
     *      (WORK(I,20)+ XSBMIN)                                           CONVEC3C.1588   
C                                                                          CONVEC3C.1589   
        BWORK(I,4) = BWORK(I,4) .OR. BWORK(I,3)                            CONVEC3C.1590   
C                                                                          CONVEC3C.1591   
       END IF                                                              CONVEC3C.1592   
C                                                                          CONVEC3C.1593   
       FLX(INDEX1(I),K) = WORK(I,19)                                       CONVEC3C.1594   
       IF(FLG_UP_FLX) UP_FLUX(INDEX1(I),K)=WORK(I,19)                      API2F405.263    
C                                                                          CONVEC3C.1595   
      END DO                                                               CONVEC3C.1596   
C                                                                          CONVEC3C.1597   
C----------------------------------------------------------------------    CONVEC3C.1598   
C END OF CALCULATION FOR LAYER 1                                           CONVEC3C.1599   
C----------------------------------------------------------------------    CONVEC3C.1600   
C                                                                          CONVEC3C.1601   
      ELSE                                                                 CONVEC3C.1602   
C                                                                          CONVEC3C.1603   
       DO I=1,NCONV                                                        CONVEC3C.1604   
C                                                                          CONVEC3C.1605   
C----------------------------------------------------------------------    CONVEC3C.1606   
C IF MASS FLUX OUT OF THE INITIAL LAYER IS GREATER THAN THE MASS OF        CONVEC3C.1607   
C THE LAYER OVER THE TIMESTEP THEN LIMIT MASS FLUX TO MASSS OF LAYER       CONVEC3C.1608   
C----------------------------------------------------------------------    CONVEC3C.1609   
C                                                                          CONVEC3C.1610   
        IF (BWORK(I,3) .AND. WORK(I,19).GT.WORK(I,21))                     CONVEC3C.1611   
     1                 WORK(I,19) = WORK(I,21)                             CONVEC3C.1612   
C                                                                          CONVEC3C.1613   
        BWORK(I,4) = BWORK(I,4) .OR. BWORK(I,3)                            CONVEC3C.1614   
C                                                                          CONVEC3C.1615   
        FLX(INDEX1(I),K) = WORK(I,19)                                      CONVEC3C.1616   
        IF(FLG_UP_FLX) UP_FLUX(INDEX1(I),K)=WORK(I,19)                     API2F405.264    
C                                                                          CONVEC3C.1617   
       END DO                                                              CONVEC3C.1618   
C                                                                          CONVEC3C.1619   
      END IF                                                               CONVEC3C.1620   
C                                                                          CONVEC3C.1621   
CL                                                                         CONVEC3C.1622   
CL--------------------------------------------------------------------     CONVEC3C.1623   
CL ZERO MIXING DETRAINMENT RATE WHEN CONVECTION STARTS FROM LAYER K        CONVEC3C.1624   
CL STORE DIAGNOSTIC LINKED TO INITIAL CONVECTIVE MASSFLUX FOR              CONVEC3C.1625   
CL CALCULATION OF FINAL CLOSURE FOR DEEP CONVECTION.                       CONVEC3C.1626   
CL--------------------------------------------------------------------     CONVEC3C.1627   
CL                                                                         CONVEC3C.1628   
      DO I=1,NCONV                                                         CONVEC3C.1629   
       IF ( BWORK(I,3) )THEN                                               CONVEC3C.1630   
        AMDETK(INDEX1(I))=0.0                                              CONVEC3C.1631   
        FLX_INIT(INDEX1(I))=WORK(I,19)                                     CONVEC3C.1632   
        START_LEV(INDEX1(I))=K                                             CONVEC3C.1633   
        FLXMAX_INIT(INDEX1(I))=WORK(I,21)                                  CONVEC3C.1634   
       END IF                                                              CONVEC3C.1635   
      END DO                                                               CONVEC3C.1636   
CL                                                                         CONVEC3C.1637   
CL--------------------------------------------------------------------     CONVEC3C.1638   
CL COMPRESS DOWN THOSE POINTS WHICH ARE NOT BUOYANT IN LAYER K+1.          CONVEC3C.1639   
CL--------------------------------------------------------------------     CONVEC3C.1640   
CL                                                                         CONVEC3C.1641   
      NINIT = 0                                                            CONVEC3C.1642   
      DO 115 I=1,NCONV                                                     CONVEC3C.1643   
        IF(BWORK(I,4))THEN                                                 CONVEC3C.1644   
          NINIT = NINIT + 1                                                CONVEC3C.1645   
          INDEX2(NINIT) = I                                                CONVEC3C.1646   
        END IF                                                             CONVEC3C.1647   
  115 CONTINUE                                                             CONVEC3C.1648   
C                                                                          CONVEC3C.1649   
C                                                                          CONVEC3C.1650   
C----------------------------------------------------------------------    CONVEC3C.1651   
C  WORK SPACE USAGE FOR SECOND COMPRESS ON BASIS OF WHETHER                CONVEC3C.1652   
C  PARCEL A PARCEL STARTING FROM LAYER K IS BUOYANT IN LAYER               CONVEC3C.1653   
C  K+1 OR IF CONVECTION ALREADY EXISTS IN LAYER K                          CONVEC3C.1654   
C                                                                          CONVEC3C.1655   
C  REFERENCES TO WORK, WORK2, BWORK AND BWORK2                             CONVEC3C.1656   
C  REFER TO STARTING ADDRESS                                               CONVEC3C.1657   
C                                                                          CONVEC3C.1658   
C  LENGTH OF COMPRESSES DATA = NINIT                                       CONVEC3C.1659   
C                                                                          CONVEC3C.1660   
C  WORK2 AND BWORK2 ARE COMPRESSED DOWN FROM COMPRESSED                    CONVEC3C.1661   
C  ARRAYS STORED IN WORK AND BWORK AFTER FIST COMPRESS                     CONVEC3C.1662   
C                                                                          CONVEC3C.1663   
C  WORK2(1,1)  = TH(#,K)                                                   CONVEC3C.1664   
C  WORK2(1,2)  = TH(#,K+1)                                                 CONVEC3C.1665   
C  WORK2(1,3)  = Q(#,K)                                                    CONVEC3C.1666   
C  WORK2(1,4)  = Q(#,K+1)                                                  CONVEC3C.1667   
C  WORK2(1,5)  = QSE(#,K+1)                                                CONVEC3C.1668   
C  WORK2(1,6)  = DQSTHKP1(#)                                               CONVEC3C.1669   
C  WORK2(1,7)  = THP(#,K)                                                  CONVEC3C.1670   
C  WORK2(1,8)  = QP(#,K)                                                   CONVEC3C.1671   
C  WORK2(1,9)  = PKP1(#)                                                   CONVEC3C.1672   
C  WORK2(1,10) = EXKP1(#)                                                  CONVEC3C.1673   
C  WORK2(1,11) = EKP14(#)                                                  CONVEC3C.1674   
C  WORK2(1,12) = EKP34(#)                                                  CONVEC3C.1675   
C  WORK2(1,13) = PARCEL POT. TEMPERATURE IN LAYER K+1                      CONVEC3C.1676   
C  WORK2(1,14) = PARCEL MIXING RATIO IN LAYER K+1                          CONVEC3C.1677   
C  WORK2(1,15) = EXCESS WATER VAPOUR IN PARCEL ABOVE                       CONVEC3C.1678   
C               SATURATION AFTER DRY ASCENT                                CONVEC3C.1679   
C  WORK2(1,16) = PARCEL BUOYANCY IN LAYER K+1                              CONVEC3C.1680   
C  WORK2(1,17) = NOT USED IN THIS SECTION                                  CONVEC3C.1681   
C  WORK2(1,18) = PSTAR(#)                                                  CONVEC3C.1682   
C  WORK2(1,19) = FLX(#,K)                                                  CONVEC3C.1683   
C                                                                          CONVEC3C.1684   
C  BWORK2(1,1) = BWATER(INDEX1(I),K+1)                                     CONVEC3C.1685   
C  BWORK2(1,2) = .TRUE. IF PARCEL SATURATED IN LAYER K+1                   CONVEC3C.1686   
C  BWORK2(1,3) = .TRUE. IF CONVECTION INITIATE FROM LAYER K+1              CONVEC3C.1687   
C  WORK2(1,23) = U(#,K)                                                    CONVEC3C.1688   
C  WORK2(1,24) = U(#,K+1)                                                  CONVEC3C.1689   
C  WORK2(1,25) = V(#,K)                                                    CONVEC3C.1690   
C  WORK2(1,26) = V(#,K+1)                                                  CONVEC3C.1691   
C  WORK2(1,27) = UP(#,K)                                                   CONVEC3C.1692   
C  WORK2(1,28) = VP(#,K)                                                   CONVEC3C.1693   
C  WORK2(1,29) = PARCEL U IN LAYER K+1                                     CONVEC3C.1694   
C  WORK2(1,30) = PARCEL V IN LAYER K+1                                     CONVEC3C.1695   
C                                                                          CONVEC3C.1696   
C  WORK AND BWORK NOW CONTAIN DATA COMPRESSED DOWN                         CONVEC3C.1697   
C  FROM FULL LENGTH VECTORS                                                CONVEC3C.1698   
C                                                                          CONVEC3C.1699   
C  WORK(1,1) = not used in this section                                    CONVEC3C.1700   
C  WORK(1,2) = QSE(#,K)                                                    CONVEC3C.1701   
C  WORK(1,3) = DQSTHK(#)                                                   CONVEC3C.1702   
C  WORK(1,4) = THPI(#)                                                     CONVEC3C.1703   
C  WORK(1,5) = QPI(#)                                                      CONVEC3C.1704   
C  WORK(1,6) = XPK(#,K+1)                                                  CONVEC3C.1705   
C  WORK(1,7) = not used in this section                                    CONVEC3C.1706   
C  WORK(1,8) = DEPTH(#)                                                    CONVEC3C.1707   
C  WORK(1,9) = PRECIP(#,K+1)                                               CONVEC3C.1708   
C  WORK(1,10) = DTHBYDT(#,K)                                               CONVEC3C.1709   
C  WORK(1,11) = DQBYDT(#,K)                                                CONVEC3C.1710   
C  WORK(1,12) = DTHBYDT(#,K+1)                                             CONVEC3C.1711   
C  WORK(1,13) = DQBYDT(#,K+1)                                              CONVEC3C.1712   
C  WORK(1,14) = AMDETK(#)                                                  CONVEC3C.1713   
C  WORK(1,15) = NOY USED IN THIS SECTION                                   CONVEC3C.1714   
C  WORK(1,16) = PK(#)                                                      CONVEC3C.1715   
C  WORK(1,17) = EXK(#)                                                     CONVEC3C.1716   
C  WORK(1,18) = DELEXKP1(#)                                                CONVEC3C.1717   
C  WORK(1,19) = DELPK(#)                                                   CONVEC3C.1718   
C  WORK(1,20) = DELPKP1(#)                                                 CONVEC3C.1719   
C  WORK(1,21) = CCW(#,K+1)                                                 CONVEC3C.1720   
C  WORK(1,22) = T1_SD(#)                                                   CONVEC3C.1721   
C  WORK(1,23) = Q1_SD(#)                                                   CONVEC3C.1722   
C  WORK(1,24) = DUBYDT(#,K)                                                CONVEC3C.1723   
C  WORK(1,25) = DUBYDT(#,K+1)                                              CONVEC3C.1724   
C  WORK(1,26) = DVBYDT(#,K)                                                CONVEC3C.1725   
C  WORK(1,27) = DVBYDT(#,K+1)                                              CONVEC3C.1726   
C  WORK(1,28) = EFLUX_U_UD(#)                                              CONVEC3C.1727   
C  WORK(1,29) = EFLUX_V_UD(#)                                              CONVEC3C.1728   
C                                                                          CONVEC3C.1729   
C  BWORK(1,1) = BGMK(#)                                                    CONVEC3C.1730   
C  BWORK(1,2) = BLAND(#)                                                   CONVEC3C.1731   
C  BWORK(1,3) = BTERM(#)                                                   CONVEC3C.1732   
C  BWORK(1,2) = BLAND(#)                                                   CONVEC3C.1733   
C----------------------------------------------------------------------    CONVEC3C.1734   
C                                                                          CONVEC3C.1735   
      IF (NINIT .NE. 0) THEN                                               CONVEC3C.1736   
C                                                                          CONVEC3C.1737   
C-----------------------------------------------------------------------   CONVEC3C.1738   
C FIRST COMPRESS DOWN QUANTITIES FROM PREVIOUSLY COMPRESSED ARRAY          CONVEC3C.1739   
C-----------------------------------------------------------------------   CONVEC3C.1740   
C                                                                          CONVEC3C.1741   
        DO I=1,NINIT                                                       CONVEC3C.1742   
          WORK2(I,1)  = WORK(INDEX2(I),1)                                  CONVEC3C.1743   
          WORK2(I,2)  = WORK(INDEX2(I),2)                                  CONVEC3C.1744   
        END DO                                                             CONVEC3C.1745   
        DO I=1,NINIT                                                       CONVEC3C.1746   
          WORK2(I,3)  = WORK(INDEX2(I),3)                                  CONVEC3C.1747   
          WORK2(I,4)  = WORK(INDEX2(I),4)                                  CONVEC3C.1748   
        END DO                                                             CONVEC3C.1749   
        DO I=1,NINIT                                                       CONVEC3C.1750   
          WORK2(I,5)  = WORK(INDEX2(I),5)                                  CONVEC3C.1751   
          WORK2(I,6)  = WORK(INDEX2(I),6)                                  CONVEC3C.1752   
        END DO                                                             CONVEC3C.1753   
        DO I=1,NINIT                                                       CONVEC3C.1754   
          WORK2(I,7)  = WORK(INDEX2(I),7)                                  CONVEC3C.1755   
          WORK2(I,8)  = WORK(INDEX2(I),8)                                  CONVEC3C.1756   
        END DO                                                             CONVEC3C.1757   
        DO I=1,NINIT                                                       CONVEC3C.1758   
          WORK2(I,9)  = WORK(INDEX2(I),9)                                  CONVEC3C.1759   
          WORK2(I,10) = WORK(INDEX2(I),10)                                 CONVEC3C.1760   
        END DO                                                             CONVEC3C.1761   
        DO I=1,NINIT                                                       CONVEC3C.1762   
          WORK2(I,11) = WORK(INDEX2(I),11)                                 CONVEC3C.1763   
          WORK2(I,12) = WORK(INDEX2(I),12)                                 CONVEC3C.1764   
        END DO                                                             CONVEC3C.1765   
        DO I=1,NINIT                                                       CONVEC3C.1766   
          WORK2(I,13) = WORK(INDEX2(I),13)                                 CONVEC3C.1767   
          WORK2(I,14) = WORK(INDEX2(I),14)                                 CONVEC3C.1768   
        END DO                                                             CONVEC3C.1769   
        DO I=1,NINIT                                                       CONVEC3C.1770   
          WORK2(I,15) = WORK(INDEX2(I),15)                                 CONVEC3C.1771   
          WORK2(I,16) = WORK(INDEX2(I),16)                                 CONVEC3C.1772   
        END DO                                                             CONVEC3C.1773   
        DO I=1,NINIT                                                       CONVEC3C.1774   
          WORK2(I,17) = WORK(INDEX2(I),17)                                 CONVEC3C.1775   
          WORK2(I,18) = WORK(INDEX2(I),18)                                 CONVEC3C.1776   
        END DO                                                             CONVEC3C.1777   
        DO I=1,NINIT                                                       CONVEC3C.1778   
          WORK2(I,19) = WORK(INDEX2(I),19)                                 CONVEC3C.1779   
          BWORK2(I,1) = BWORK(INDEX2(I),1)                                 CONVEC3C.1780   
        END DO                                                             CONVEC3C.1781   
        DO I=1,NINIT                                                       CONVEC3C.1782   
          BWORK2(I,2) = BWORK(INDEX2(I),2)                                 CONVEC3C.1783   
          BWORK2(I,3) = BWORK(INDEX2(I),3)                                 CONVEC3C.1784   
        END DO                                                             CONVEC3C.1785   
        DO I=1,NINIT                                                       CONVEC3C.1786   
          L_SHALLOW_C2(I) = L_SHALLOW_C(INDEX2(I))                         CONVEC3C.1787   
          L_MID_C2(I) = L_MID_C(INDEX2(I))                                 CONVEC3C.1788   
        END DO                                                             CONVEC3C.1789   
C                                                                          CONVEC3C.1790   
        IF(L_MOM)THEN                                                      CONVEC3C.1791   
         DO I=1,NINIT                                                      CONVEC3C.1792   
          WORK2(I,23) = WORK(INDEX2(I),23)                                 CONVEC3C.1793   
          WORK2(I,24) = WORK(INDEX2(I),24)                                 CONVEC3C.1794   
        END DO                                                             CONVEC3C.1795   
        DO I=1,NINIT                                                       CONVEC3C.1796   
          WORK2(I,25) = WORK(INDEX2(I),25)                                 CONVEC3C.1797   
          WORK2(I,26) = WORK(INDEX2(I),26)                                 CONVEC3C.1798   
        END DO                                                             CONVEC3C.1799   
        DO I=1,NINIT                                                       CONVEC3C.1800   
          WORK2(I,27) = WORK(INDEX2(I),27)                                 CONVEC3C.1801   
          WORK2(I,28) = WORK(INDEX2(I),28)                                 CONVEC3C.1802   
        END DO                                                             CONVEC3C.1803   
        DO I=1,NINIT                                                       CONVEC3C.1804   
          WORK2(I,29) = WORK(INDEX2(I),29)                                 CONVEC3C.1805   
          WORK2(I,30) = WORK(INDEX2(I),30)                                 CONVEC3C.1806   
         END DO                                                            CONVEC3C.1807   
        END IF                                                             CONVEC3C.1808   
C                                                                          CONVEC3C.1809   
        IF(L_TRACER)THEN                                                   CONVEC3C.1810   
C                                                                          CONVEC3C.1811   
        DO KTRA=1,NTRA                                                     CONVEC3C.1812   
          DO I=1,NINIT                                                     CONVEC3C.1813   
            TRAEK_C2(I,KTRA)=TRAEK_C(INDEX2(I),KTRA)                       CONVEC3C.1814   
            TRAEKP1_C2(I,KTRA)=TRAEKP1_C(INDEX2(I),KTRA)                   CONVEC3C.1815   
        END DO                                                             CONVEC3C.1816   
        DO I=1,NINIT                                                       CONVEC3C.1817   
            TRAPK_C2(I,KTRA)=TRAPK_C(INDEX2(I),KTRA)                       CONVEC3C.1818   
            TRAPKP1_C2(I,KTRA)=TRAPKP1_C(INDEX2(I),KTRA)                   CONVEC3C.1819   
          END DO                                                           CONVEC3C.1820   
        END DO                                                             CONVEC3C.1821   
C                                                                          CONVEC3C.1822   
        END IF                                                             CONVEC3C.1823   
C----------------------------------------------------------------------    CONVEC3C.1824   
C COMPRESS DOWN REST OF DATA FROM FULL ARRAYS                              CONVEC3C.1825   
C                                                                          CONVEC3C.1826   
C FIRST EXPAND BACK BWORK(1,2) (=BINIT) BACK TO FULL VECTORS               CONVEC3C.1827   
C----------------------------------------------------------------------    CONVEC3C.1828   
C                                                                          CONVEC3C.1829   
CDIR$ IVDEP                                                                CONVEC3C.1830   
! Fujitsu vectorization directive                                          GRB0F405.211    
!OCL NOVREC                                                                GRB0F405.212    
      DO 130 I=1,NCONV                                                     CONVEC3C.1831   
        BINIT(INDEX1(I)) = BWORK(I,4)                                      CONVEC3C.1832   
  130 CONTINUE                                                             CONVEC3C.1833   
C                                                                          CONVEC3C.1834   
      NINIT = 0                                                            CONVEC3C.1835   
      DO 135 I=1,NPNTS                                                     CONVEC3C.1836   
        IF(BINIT(I))THEN                                                   CONVEC3C.1837   
          NINIT = NINIT + 1                                                CONVEC3C.1838   
          INDEX3(NINIT) = I                                                CONVEC3C.1839   
        END IF                                                             CONVEC3C.1840   
  135 CONTINUE                                                             CONVEC3C.1841   
C                                                                          CONVEC3C.1842   
      DO I=1,NINIT                                                         CONVEC3C.1843   
        WORK(I,2) = QSE(INDEX3(I),K)                                       CONVEC3C.1844   
        WORK(I,3) = DQSTHK(INDEX3(I))                                      CONVEC3C.1845   
        END DO                                                             CONVEC3C.1846   
        DO I=1,NINIT                                                       CONVEC3C.1847   
        WORK(I,4) = THPI(INDEX3(I))                                        CONVEC3C.1848   
        WORK(I,5) = QPI(INDEX3(I))                                         CONVEC3C.1849   
        END DO                                                             CONVEC3C.1850   
        DO I=1,NINIT                                                       CONVEC3C.1851   
        WORK(I,6) = XPK(INDEX3(I),K)                                       CONVEC3C.1852   
        WORK(I,8) = DEPTH(INDEX3(I))                                       CONVEC3C.1853   
        END DO                                                             CONVEC3C.1854   
        DO I=1,NINIT                                                       CONVEC3C.1855   
        CCA_2DC(I)    = CCA_2D(INDEX3(I))                                  CONVEC3C.1856   
        ICCBC(I)   = ICCB(INDEX3(I))                                       CONVEC3C.1857   
        END DO                                                             CONVEC3C.1858   
        DO I=1,NINIT                                                       CONVEC3C.1859   
        ICCTC(I)   = ICCT(INDEX3(I))                                       CONVEC3C.1860   
        TCWC(I)    = TCW(INDEX3(I))                                        CONVEC3C.1861   
        END DO                                                             CONVEC3C.1862   
        DO I=1,NINIT                                                       CONVEC3C.1863   
        CCLWPC(I)  = CCLWP(INDEX3(I))                                      CONVEC3C.1864   
        LCCAC(I)   = LCCA(INDEX3(I))   ! beware - LCCAC & LCBASEC          CONVEC3C.1865   
        END DO                                                             CONVEC3C.1866   
        DO I=1,NINIT                                                       CONVEC3C.1867   
        LCBASEC(I) = LCBASE(INDEX3(I)) ! are IN/OUT to lower levels        CONVEC3C.1868   
        LCTOPC(I)  = LCTOP(INDEX3(I))                                      CONVEC3C.1869   
        END DO                                                             CONVEC3C.1870   
        DO I=1,NINIT                                                       CONVEC3C.1871   
        LCCLWPC(I) = LCCLWP(INDEX3(I))                                     CONVEC3C.1872   
        BWORK(I,1) = BGMK(INDEX3(I))                                       CONVEC3C.1873   
        END DO                                                             CONVEC3C.1874   
        DO I=1,NINIT                                                       CONVEC3C.1875   
        BWORK(I,2) = BLAND(INDEX3(I))                                      CONVEC3C.1876   
        WORK(I,10) = DTHBYDT(INDEX3(I),K)                                  CONVEC3C.1877   
        END DO                                                             CONVEC3C.1878   
        DO I=1,NINIT                                                       CONVEC3C.1879   
        WORK(I,11) = DQBYDT(INDEX3(I),K)                                   CONVEC3C.1880   
        WORK(I,12) = DTHBYDT(INDEX3(I),K+1)                                CONVEC3C.1881   
        END DO                                                             CONVEC3C.1882   
        DO I=1,NINIT                                                       CONVEC3C.1883   
        WORK(I,13) = DQBYDT(INDEX3(I),K+1)                                 CONVEC3C.1884   
        WORK(I,14) = AMDETK(INDEX3(I))                                     CONVEC3C.1885   
        END DO                                                             CONVEC3C.1886   
        DO I=1,NINIT                                                       CONVEC3C.1887   
        WORK(I,16) = PK(INDEX3(I))                                         CONVEC3C.1888   
        WORK(I,17) = EXK(INDEX3(I))                                        CONVEC3C.1889   
        END DO                                                             CONVEC3C.1890   
        DO I=1,NINIT                                                       CONVEC3C.1891   
        WORK(I,18) = DELEXKP1(INDEX3(I))                                   CONVEC3C.1892   
        WORK(I,19) = DELPK(INDEX3(I))                                      CONVEC3C.1893   
        END DO                                                             CONVEC3C.1894   
        DO I=1,NINIT                                                       CONVEC3C.1895   
        WORK(I,20) = DELPKP1(INDEX3(I))                                    CONVEC3C.1896   
        WORK(I,22) = T1_SD(INDEX3(I))                                      CONVEC3C.1897   
        END DO                                                             CONVEC3C.1898   
        DO I=1,NINIT                                                       CONVEC3C.1899   
        WORK(I,23) = Q1_SD(INDEX3(I))                                      CONVEC3C.1900   
        CAPE_C(I)  = CAPE(INDEX3(I))                                       CONVEC3C.1901   
        END DO                                                             CONVEC3C.1902   
        DO I=1,NINIT                                                       CONVEC3C.1903   
        DCPBYDT_C(I) = DCPBYDT(INDEX3(I))                                  CONVEC3C.1904   
C                                                                          CONVEC3C.1905   
        BWORK(I,4) = .TRUE.                                                CONVEC3C.1906   
      END DO                                                               CONVEC3C.1907   
C                                                                          CONVEC3C.1908   
      IF(L_MOM)THEN                                                        CONVEC3C.1909   
       DO I=1,NINIT                                                        CONVEC3C.1910   
        WORK(I,24) = DUBYDT(INDEX3(I),K)                                   CONVEC3C.1911   
        WORK(I,25) = DUBYDT(INDEX3(I),K+1)                                 CONVEC3C.1912   
        END DO                                                             CONVEC3C.1913   
        DO I=1,NINIT                                                       CONVEC3C.1914   
        WORK(I,26) = DVBYDT(INDEX3(I),K)                                   CONVEC3C.1915   
        WORK(I,27) = DVBYDT(INDEX3(I),K+1)                                 CONVEC3C.1916   
        END DO                                                             CONVEC3C.1917   
        DO I=1,NINIT                                                       CONVEC3C.1918   
        WORK(I,28) = EFLUX_U_UD(INDEX3(I))                                 CONVEC3C.1919   
        WORK(I,29) = EFLUX_V_UD(INDEX3(I))                                 CONVEC3C.1920   
       END DO                                                              CONVEC3C.1921   
      END IF                                                               CONVEC3C.1922   
C                                                                          CONVEC3C.1923   
        IF(L_TRACER)THEN                                                   CONVEC3C.1924   
C                                                                          CONVEC3C.1925   
        DO KTRA=1,NTRA                                                     CONVEC3C.1926   
          DO I=1,NINIT                                                     CONVEC3C.1927   
            DTRAEK_C(I,KTRA) = DTRABYDT(INDEX3(I),K,KTRA)                  CONVEC3C.1928   
            DTRAEKP1_C(I,KTRA) = DTRABYDT(INDEX3(I),K+1,KTRA)              CONVEC3C.1929   
          END DO                                                           CONVEC3C.1930   
        END DO                                                             CONVEC3C.1931   
C                                                                          CONVEC3C.1932   
        END IF                                                             CONVEC3C.1933   
C                                                                          CONVEC3C.1934   
CL                                                                         CONVEC3C.1935   
CL----------------------------------------------------------------------   CONVEC3C.1936   
CL CALCULATE REST OF PARCEL ASCENT AND EFFECT OF CONVECTION                CONVEC3C.1937   
CL UPON THE LARGE-SCALE ATMOSPHERE                                         CONVEC3C.1938   
CL                                                                         CONVEC3C.1939   
CL SUBROUTINE CONVEC2                                                      CONVEC3C.1940   
CL                                                                         CONVEC3C.1941   
CL UM DOCUMENTATION PAPER 27                                               CONVEC3C.1942   
CL SECTIONS (5),(6),(7),(8),(9),(10)                                       CONVEC3C.1943   
CL----------------------------------------------------------------------   CONVEC3C.1944   
CL                                                                         CONVEC3C.1945   
      CALL CONVEC2 (NINIT,NPNTS,NLEV,K,WORK2(1,1),WORK2(1,2),WORK2(1,3),   CONVEC3C.1946   
     *             WORK2(1,4),WORK2(1,5),WORK2(1,6),WORK2(1,18),           CONVEC3C.1947   
     *             WORK2(1,7),WORK2(1,8),WORK2(1,13),WORK2(1,14),          CONVEC3C.1948   
     *             WORK2(1,15),WORK2(1,16),WORK(1,2),WORK(1,3),            CONVEC3C.1949   
     *             WORK(1,4),WORK(1,5),WORK(1,6),WORK2(1,19),              CONVEC3C.1950   
     *             BWORK2(1,1),BWORK2(1,2),BWORK(1,1),BWORK2(1,3),         CONVEC3C.1951   
     *             BWORK(1,2),BWORK(1,3),WORK(1,8),WORK(1,9),              CONVEC3C.1952   
     *             WORK(1,10),WORK(1,11),WORK(1,12),WORK(1,13),            CONVEC3C.1953   
     *             BWORK(1,4),CCA_2DC,ICCBC,ICCTC,TCWC,                    CONVEC3C.1954   
     *             WORK2(1,11),WORK2(1,12),WORK(1,14),                     CONVEC3C.1955   
     *             WORK(1,16),WORK2(1,9),WORK(1,17),WORK2(1,10),           CONVEC3C.1956   
     *             WORK(1,18),WORK(1,19),WORK(1,20),                       CONVEC3C.1957   
     *             CCLWPC,WORK(1,21),LCCAC,LCBASEC,LCTOPC,LCCLWPC,         CONVEC3C.1958   
     *             WORK(1,22),WORK(1,23),L_MOM,WORK2(1,23),WORK2(1,24),    CONVEC3C.1959   
     *             WORK2(1,25),WORK2(1,26),WORK2(1,27),WORK2(1,28),        CONVEC3C.1960   
     *             WORK2(1,29),WORK2(1,30),WORK(1,24),WORK(1,25),          CONVEC3C.1961   
     *             WORK(1,26),WORK(1,27),WORK(1,28),WORK(1,29),            CONVEC3C.1962   
     *             L_SHALLOW_C2,L_MID_C2,                                  CONVEC3C.1963   
     *             L_TRACER,NTRA,TRAEK_C2,TRAEKP1_C2,TRAPK_C2,             CONVEC3C.1964   
     *             TRAPKP1_C2,DTRAEK_C,DTRAEKP1_C,CAPE_C,DCPBYDT_C,        CONVEC3C.1965   
     &             L_XSCOMP,L_SDXS,L_CCW,MPARWTR,UD_FACTOR,                AJX3F405.56     
     &             DELTAK)                                                 AJX3F405.57     
CL                                                                         CONVEC3C.1967   
CL---------------------------------------------------------------------    CONVEC3C.1968   
CL EXPAND REQUIRED VECTORS BACK TO FULL FIELDS                             CONVEC3C.1969   
CL----------------------------------------------------------------------   CONVEC3C.1970   
CL                                                                         CONVEC3C.1971   
      DO I=1,NPNTS                                                         CONVEC3C.1972   
        THP(I,K+1) = 0.0                                                   CONVEC3C.1973   
        QP(I,K+1) = 0.0                                                    CONVEC3C.1974   
      ENDDO                                                                CONVEC3C.1975   
      DO I=1,NPNTS                                                         CONVEC3C.1976   
        XPK(I,K+1) = 0.0                                                   CONVEC3C.1977   
        FLX(I,K+1)= 0.0                                                    CONVEC3C.1978   
      ENDDO                                                                CONVEC3C.1979   
      DO I=1,NPNTS                                                         CONVEC3C.1980   
        DEPTH(I) = 0.0                                                     CONVEC3C.1981   
        PRECIP(I,K+1) = 0.0                                                CONVEC3C.1982   
      ENDDO                                                                CONVEC3C.1983   
      DO I=1,NPNTS                                                         CONVEC3C.1984   
        BGMK(I) = .FALSE.                                                  CONVEC3C.1985   
        BTERM(I) = .FALSE.                                                 CONVEC3C.1986   
        BINIT(I) = .FALSE.                                                 CONVEC3C.1987   
      ENDDO                                                                CONVEC3C.1988   
C                                                                          CONVEC3C.1989   
      IF(L_MOM)THEN                                                        CONVEC3C.1990   
       DO I=1,NPNTS                                                        CONVEC3C.1991   
        UP(I,K+1) = 0.0                                                    CONVEC3C.1992   
        VP(I,K+1) = 0.0                                                    CONVEC3C.1993   
       END DO                                                              CONVEC3C.1994   
      END IF                                                               CONVEC3C.1995   
C                                                                          CONVEC3C.1996   
      IF(L_TRACER)THEN                                                     CONVEC3C.1997   
C                                                                          CONVEC3C.1998   
      DO KTRA=1,NTRA                                                       CONVEC3C.1999   
        DO I=1,NPNTS                                                       CONVEC3C.2000   
          TRAP(I,K+1,KTRA) = 0.0                                           CONVEC3C.2001   
        END DO                                                             CONVEC3C.2002   
      END DO                                                               CONVEC3C.2003   
C                                                                          CONVEC3C.2004   
      END IF                                                               CONVEC3C.2005   
C                                                                          CONVEC3C.2006   
CDIR$ IVDEP                                                                CONVEC3C.2007   
! Fujitsu vectorization directive                                          GRB0F405.213    
!OCL NOVREC                                                                GRB0F405.214    
      DO I=1,NINIT                                                         CONVEC3C.2008   
        THP(INDEX3(I),K+1) = WORK2(I,7)                                    CONVEC3C.2009   
        QP(INDEX3(I),K+1) = WORK2(I,8)                                     CONVEC3C.2010   
      ENDDO                                                                CONVEC3C.2011   
      DO I=1,NINIT                                                         CONVEC3C.2012   
        XPK(INDEX3(I),K+1) = WORK(I,6)                                     CONVEC3C.2013   
        FLX(INDEX3(I),K+1) = WORK2(I,19)                                   CONVEC3C.2014   
        IF(FLG_UP_FLX) UP_FLUX(INDEX3(I),K+1)=WORK2(I,19)                  API2F405.265    
      ENDDO                                                                CONVEC3C.2015   
      IF(FLG_ENTR_UP) THEN                                                 API2F405.266    
      DO I=1,NINIT                                                         CONVEC3C.2016   
        ENTRAIN_UP(INDEX3(I),K)=(1.0-DELTAK(I))*                           API2F405.267    
     &             (1.0-WORK(I,14))*(WORK2(I,11)+WORK2(I,12)*              API2F405.268    
     &             (1.0+WORK2(I,11)))*FLX(INDEX3(I),K)                     API2F405.269    
        IF(BTERM(INDEX3(I))) ENTRAIN_UP(INDEX3(I),K+1)=0.0                 API2F405.270    
       END DO                                                              API2F405.271    
      ENDIF                                                                API2F405.272    
      IF(FLG_DETR_UP) THEN                                                 API2F405.273    
       DO I=1,NINIT                                                        API2F405.274    
        DETRAIN_UP(INDEX3(I),K)=-(WORK(I,14)+                              API2F405.275    
     &                        DELTAK(I)*(1.0-WORK(I,14)))*                 API2F405.276    
     &                        FLX(INDEX3(I),K)                             API2F405.277    
        IF(BTERM(INDEX3(I))) DETRAIN_UP(INDEX3(I),K+1)=                    API2F405.278    
     &                      -(1.0-DELTAK(I))*FLX(INDEX3(I),K)              API2F405.279    
       END DO                                                              API2F405.280    
      ENDIF                                                                API2F405.281    
      DO I=1,NINIT                                                         API2F405.282    
        DEPTH(INDEX3(I)) = WORK(I,8)                                       CONVEC3C.2017   
        PRECIP(INDEX3(I),K+1) = WORK(I,9)                                  CONVEC3C.2018   
      ENDDO                                                                CONVEC3C.2019   
      DO I=1,NINIT                                                         CONVEC3C.2020   
        DTHBYDT(INDEX3(I),K) = WORK(I,10)                                  CONVEC3C.2021   
        DQBYDT(INDEX3(I),K) = WORK(I,11)                                   CONVEC3C.2022   
      ENDDO                                                                CONVEC3C.2023   
      DO I=1,NINIT                                                         CONVEC3C.2024   
        DTHBYDT(INDEX3(I),K+1) = WORK(I,12)                                CONVEC3C.2025   
        DQBYDT(INDEX3(I),K+1) = WORK(I,13)                                 CONVEC3C.2026   
      ENDDO                                                                CONVEC3C.2027   
      DO I=1,NINIT                                                         CONVEC3C.2028   
        CCA_2D(INDEX3(I)) = CCA_2DC(I)                                     CONVEC3C.2029   
        ICCB(INDEX3(I)) = ICCBC(I)                                         CONVEC3C.2030   
      ENDDO                                                                CONVEC3C.2031   
      DO I=1,NINIT                                                         CONVEC3C.2032   
        ICCT(INDEX3(I)) = ICCTC(I)                                         CONVEC3C.2033   
        TCW(INDEX3(I)) = TCWC(I)                                           CONVEC3C.2034   
      ENDDO                                                                CONVEC3C.2035   
      DO I=1,NINIT                                                         CONVEC3C.2036   
        CCLWP(INDEX3(I)) = CCLWPC(I)                                       CONVEC3C.2037   
        LCCA(INDEX3(I)) = LCCAC(I)                                         CONVEC3C.2038   
      ENDDO                                                                CONVEC3C.2039   
      DO I=1,NINIT                                                         CONVEC3C.2040   
        LCBASE(INDEX3(I)) = LCBASEC(I)                                     CONVEC3C.2041   
        LCTOP(INDEX3(I)) = LCTOPC(I)                                       CONVEC3C.2042   
      ENDDO                                                                CONVEC3C.2043   
      DO I=1,NINIT                                                         CONVEC3C.2044   
        LCCLWP(INDEX3(I)) = LCCLWPC(I)                                     CONVEC3C.2045   
        CCW(INDEX3(I),K+1) = WORK(I,21)                                    CONVEC3C.2046   
      ENDDO                                                                CONVEC3C.2047   
      DO I=1,NINIT                                                         CONVEC3C.2048   
        CAPE(INDEX3(I)) = CAPE_C(I)                                        CONVEC3C.2049   
        DCPBYDT(INDEX3(I)) = DCPBYDT_C(I)                                  CONVEC3C.2050   
      ENDDO                                                                CONVEC3C.2051   
      DO I=1,NINIT                                                         CONVEC3C.2052   
C                                                                          CONVEC3C.2053   
        BGMK(INDEX3(I)) = BWORK(I,1)                                       CONVEC3C.2054   
        BTERM(INDEX3(I)) = BWORK(I,3)                                      CONVEC3C.2055   
        BINIT(INDEX3(I)) = BWORK(I,4)                                      CONVEC3C.2056   
      ENDDO                                                                CONVEC3C.2057   
C                                                                          CONVEC3C.2058   
      IF(L_MOM)THEN                                                        CONVEC3C.2059   
       DO I=1,NINIT                                                        CONVEC3C.2060   
        UP(INDEX3(I),K+1) = WORK2(I,27)                                    CONVEC3C.2061   
        VP(INDEX3(I),K+1) = WORK2(I,28)                                    CONVEC3C.2062   
      ENDDO                                                                CONVEC3C.2063   
      DO I=1,NINIT                                                         CONVEC3C.2064   
        DUBYDT(INDEX3(I),K) = WORK(I,24)                                   CONVEC3C.2065   
        DVBYDT(INDEX3(I),K) = WORK(I,26)                                   CONVEC3C.2066   
      ENDDO                                                                CONVEC3C.2067   
      DO I=1,NINIT                                                         CONVEC3C.2068   
        DUBYDT(INDEX3(I),K+1) = WORK(I,25)                                 CONVEC3C.2069   
        DVBYDT(INDEX3(I),K+1) = WORK(I,27)                                 CONVEC3C.2070   
      ENDDO                                                                CONVEC3C.2071   
      DO I=1,NINIT                                                         CONVEC3C.2072   
        EFLUX_U_UD(INDEX3(I)) = WORK(I,28)                                 CONVEC3C.2073   
        EFLUX_V_UD(INDEX3(I)) = WORK(I,29)                                 CONVEC3C.2074   
       END DO                                                              CONVEC3C.2075   
      END IF                                                               CONVEC3C.2076   
C                                                                          CONVEC3C.2077   
      IF(L_TRACER)THEN                                                     CONVEC3C.2078   
C                                                                          CONVEC3C.2079   
      DO KTRA=1,NTRA                                                       CONVEC3C.2080   
        DO I=1,NINIT                                                       CONVEC3C.2081   
          TRAP(INDEX3(I),K+1,KTRA)=TRAPK_C2(I,KTRA)                        CONVEC3C.2082   
          DTRABYDT(INDEX3(I),K,KTRA)=DTRAEK_C(I,KTRA)                      CONVEC3C.2083   
          DTRABYDT(INDEX3(I),K+1,KTRA)=DTRAEKP1_C(I,KTRA)                  CONVEC3C.2084   
        END DO                                                             CONVEC3C.2085   
      END DO                                                               CONVEC3C.2086   
C                                                                          CONVEC3C.2087   
      END IF                                                               CONVEC3C.2088   
C                                                                          CONVEC3C.2089   
C                                                                          CONVEC3C.2090   
      END IF                                                               CONVEC3C.2091   
C                                                                          CONVEC3C.2092   
      END IF                                                               CONVEC3C.2093   
C                                                                          CONVEC3C.2094   
C-------------------------------------------------------------------       CONVEC3C.2095   
C ADJUSTMENT OF CLOSURE FOR DEEP CONVECTION                                CONVEC3C.2096   
C                                                                          CONVEC3C.2097   
C UM DOCUMENTATION PAPER 27-3. SECTION 5.                                  CONVEC3C.2098   
C                                                                          CONVEC3C.2099   
C ADJUST INITIAL MASS FLUX SO THAT CAPE IS REMOVED BY CONVECTION           CONVEC3C.2100   
C OVER TIMESCALE CAPE_TS                                                   CONVEC3C.2101   
C-------------------------------------------------------------------       CONVEC3C.2102   
C                                                                          CONVEC3C.2103   
C                                                                          CONVEC3C.2104   
      DO I=1,NPNTS                                                         CONVEC3C.2105   
      IF(L_CAPE)THEN                                                       CONVEC3C.2106   
       IF(.NOT.L_SHALLOW(I).AND.BTERM(I))THEN                              CONVEC3C.2107   
        IF(DCPBYDT(I).GT.0.0)THEN                                          CONVEC3C.2108   
          FLX_INIT_NEW(I)=FLX_INIT(I)*CAPE(I)/(CAPE_TS*DCPBYDT(I))         CONVEC3C.2109   
          IF(FLX_INIT_NEW(I).GT.FLXMAX_INIT(I))THEN                        CONVEC3C.2110   
            FLX_INIT_NEW(I)=FLXMAX_INIT(I)                                 CONVEC3C.2111   
          END IF                                                           CONVEC3C.2112   
        END IF                                                             CONVEC3C.2113   
       END IF                                                              CONVEC3C.2114   
      END IF                                                               CONVEC3C.2115   
       IF(BTERM(I))THEN                                                    CONVEC3C.2116   
        CAPE_OUT(I)=CAPE(I)                                                CONVEC3C.2117   
        CAPE(I)=0.0                                                        CONVEC3C.2118   
        DCPBYDT(I)=0.0                                                     CONVEC3C.2119   
       END IF                                                              CONVEC3C.2120   
      END DO                                                               CONVEC3C.2121   
C                                                                          CONVEC3C.2122   
C---------------------------------------------------------------------     CONVEC3C.2123   
C RESCALE Q1, Q2 MASS FLUX AND PRECIP FOR DEEP CONVECTION                  CONVEC3C.2124   
C---------------------------------------------------------------------     CONVEC3C.2125   
C                                                                          CONVEC3C.2126   
      IF(L_CAPE)THEN                                                       CONVEC3C.2127   
      DO KT=1,K+1                                                          CONVEC3C.2128   
      DO I=1,NPNTS                                                         CONVEC3C.2129   
       IF(KT.GE.START_LEV(I).AND..NOT.L_SHALLOW(I).AND.BTERM(I).           CONVEC3C.2130   
     *  AND.FLX_INIT_NEW(I).GT.0.0)THEN                                    CONVEC3C.2131   
          IF(KT.EQ.DET_LEV(I))THEN                                         CONVEC3C.2132   
            DTHBYDT(I,KT)=(DTHBYDT(I,KT) - DTHEF(I))                       CONVEC3C.2133   
     *                     *FLX_INIT_NEW(I)/FLX_INIT(I)                    CONVEC3C.2134   
            DTHBYDT(I,KT) = DTHBYDT(I,KT) + DTHEF(I)                       CONVEC3C.2135   
            DQBYDT(I,KT)=(DQBYDT(I,KT) - DQF(I))                           CONVEC3C.2136   
     *                     *FLX_INIT_NEW(I)/FLX_INIT(I)                    CONVEC3C.2137   
            DQBYDT(I,KT) = DQBYDT(I,KT) +DQF(I)                            CONVEC3C.2138   
            IF(L_MOM) THEN                                                 API1F405.37     
             DUBYDT(I,KT)=(DUBYDT(I,KT)-DUEF(I))*                          API1F405.38     
     &                    FLX_INIT_NEW(I)/FLX_INIT(I)                      API1F405.39     
             DUBYDT(I,KT)=DUBYDT(I,KT)+DUEF(I)                             API1F405.40     
             DVBYDT(I,KT)=(DVBYDT(I,KT)-DVEF(I))*                          API1F405.41     
     &                    FLX_INIT_NEW(I)/FLX_INIT(I)                      API1F405.42     
             DVBYDT(I,KT)=DVBYDT(I,KT)+DVEF(I)                             API1F405.43     
            ENDIF                                                          API1F405.44     
          ELSE                                                             CONVEC3C.2139   
            DTHBYDT(I,KT)=DTHBYDT(I,KT)*FLX_INIT_NEW(I)/FLX_INIT(I)        CONVEC3C.2140   
            DQBYDT(I,KT)=DQBYDT(I,KT)*FLX_INIT_NEW(I)/FLX_INIT(I)          CONVEC3C.2141   
            IF(L_MOM) THEN                                                 API1F405.45     
             DUBYDT(I,KT)=DUBYDT(I,KT)*FLX_INIT_NEW(I)/FLX_INIT(I)         API1F405.46     
             DVBYDT(I,KT)=DVBYDT(I,KT)*FLX_INIT_NEW(I)/FLX_INIT(I)         API1F405.47     
            ENDIF                                                          API1F405.48     
          END IF                                                           CONVEC3C.2142   
            FLX(I,KT)=FLX(I,KT)*FLX_INIT_NEW(I)/FLX_INIT(I)                CONVEC3C.2143   
            IF(FLG_UP_FLX) UP_FLUX(I,KT)=FLX(I,KT)                         API2F405.283    
            IF(FLG_ENTR_UP) ENTRAIN_UP(I,KT)=ENTRAIN_UP(I,KT)*             API2F405.284    
     &                                     FLX_INIT_NEW(I)/FLX_INIT(I)     API2F405.285    
            IF(FLG_DETR_UP) DETRAIN_UP(I,KT)=DETRAIN_UP(I,KT)*             API2F405.286    
     &                                     FLX_INIT_NEW(I)/FLX_INIT(I)     API2F405.287    
                                                                           API2F405.288    
            PRECIP(I,KT)=PRECIP(I,KT)*FLX_INIT_NEW(I)/FLX_INIT(I)          CONVEC3C.2144   
       END IF                                                              CONVEC3C.2145   
      END DO                                                               CONVEC3C.2146   
      END DO                                                               CONVEC3C.2147   
      DO I=1,NPNTS                                                         API1F405.49     
       IF(.NOT.L_SHALLOW(I).AND.BTERM(I).AND.                              API1F405.50     
     &                                   FLX_INIT_NEW(I).GT.0.0)THEN       API1F405.51     
        IF(CCA_2D(I).GT.2.0E-5) CCA_2D(I)=CCA_2D(I)+                       API1F405.52     
     &                            0.06*LOG(FLX_INIT_NEW(I)/FLX_INIT(I))    API1F405.53     
       ENDIF                                                               API1F405.54     
      END DO                                                               API1F405.55     
C                                                                          CONVEC3C.2148   
      END IF                                                               CONVEC3C.2149   
CL                                                                         CONVEC3C.2150   
CL---------------------------------------------------------------------    CONVEC3C.2151   
CL DOWNDRAUGHT CALCULATION                                                 CONVEC3C.2152   
CL                                                                         CONVEC3C.2153   
CL CARRIED OUT FOR THOSE CLOUD WHICH ARE TERMINATING                       CONVEC3C.2154   
CL                                                                         CONVEC3C.2155   
CL SUBROUTINE DD_CALL                                                      CONVEC3C.2156   
CL                                                                         CONVEC3C.2157   
CL UM DOCUMENTATION PAPER 27                                               CONVEC3C.2158   
CL SECTION (11)                                                            CONVEC3C.2159   
CL---------------------------------------------------------------------    CONVEC3C.2160   
CL                                                                         CONVEC3C.2161   
C                                                                          CONVEC3C.2162   
      NTERM = 0                                                            CONVEC3C.2163   
      DO 160 I=1,NPNTS                                                     CONVEC3C.2164   
        IF (BTERM(I)) THEN                                                 CONVEC3C.2165   
         NTERM = NTERM + 1                                                 CONVEC3C.2166   
         DTHEF(I) = DTHBYDT(I,K+1)                                         CONVEC3C.2167   
         DQF(I)   = DQBYDT(I,K+1)                                          CONVEC3C.2168   
         IF(L_MOM) THEN                                                    API1F405.56     
          DUEF(I)=DUBYDT(I,K+1)                                            API1F405.57     
          DVEF(I)=DVBYDT(I,K+1)                                            API1F405.58     
         ENDIF                                                             API1F405.59     
                                                                           API1F405.60     
                                                                           API1F405.61     
         DET_LEV(I) = K+1                                                  CONVEC3C.2169   
        END IF                                                             CONVEC3C.2170   
  160 CONTINUE                                                             CONVEC3C.2171   
C                                                                          CONVEC3C.2172   
      IF (NTERM .NE. 0) THEN                                               CONVEC3C.2173   
C                                                                          CONVEC3C.2174   
         CALL DD_CALL (NP_FIELD,NPNTS,K,THP(1,1),QP(1,1),TH(1,1),          CONVEC3C.2175   
     *                 Q(1,1),DTHBYDT(1,1),DQBYDT(1,1),FLX(1,1),           CONVEC3C.2176   
     *                 PSTAR,AK,BK,AKM12,BKM12,DELAK,DELBK,EXNER(1,1),     CONVEC3C.2177   
     *                 PRECIP(1,1),RAIN,SNOW,ICCB,ICCT,BWATER(1,2),        CONVEC3C.2178   
     *                 BTERM,BGMK,TIMESTEP,CCA_2D,NTERM,L_MOM,UP(1,1),     CONVEC3C.2179   
     *                 VP(1,1),U(1,1),V(1,1),DUBYDT(1,1),DVBYDT(1,1),      CONVEC3C.2180   
     *                 EFLUX_U_DD,EFLUX_V_DD,                              CONVEC3C.2181   
     *                 L_TRACER,NTRA,TRAP,TRACER,DTRABYDT,NLEV,TRLEV,      CONVEC3C.2182   
     &                 recip_pstar,L_PHASE_LIM,                            AJX1F405.35     
     &                 DWN_FLUX,FLG_DWN_FLX,ENTRAIN_DWN,                   AJX1F405.36     
     &                 FLG_ENTR_DWN,DETRAIN_DWN,FLG_DETR_DWN               AJX1F405.37     
     &                 )                                                   AJX1F405.38     
C                                                                          CONVEC3C.2184   
C---------------------------------------------------------------------     CONVEC3C.2185   
C ZERO CONVECTION START LEVEL IF CONVECTION TERMINATES                     CONVEC3C.2186   
C---------------------------------------------------------------------     CONVEC3C.2187   
C                                                                          CONVEC3C.2188   
      DO I=1,NPNTS                                                         CONVEC3C.2189   
       IF(BTERM(I))THEN                                                    CONVEC3C.2190   
       START_LEV(I)=0.0                                                    CONVEC3C.2191   
       END IF                                                              CONVEC3C.2192   
      END DO                                                               CONVEC3C.2193   
C                                                                          CONVEC3C.2194   
C---------------------------------------------------------------------     CONVEC3C.2195   
C ADJUSTMENT TO CLOUD BASE, TOP AND AMOUNT                                 CONVEC3C.2196   
C                                                                          CONVEC3C.2197   
C IF CLOUD BASE AND TOP ARE EQUAL THEN ERRORS OCCUR IN RADIATION SCHEME    CONVEC3C.2198   
C                                                                          CONVEC3C.2199   
C ONLY OCCURS IF CONVECTION SATURATES UPON FORCED DETRAINMENT              CONVEC3C.2200   
C                                                                          CONVEC3C.2201   
C WHEN OCCURS ZERO CLOUD BASE, TOP AND AMOUNT                              CONVEC3C.2202   
C                                                                          CONVEC3C.2203   
C---------------------------------------------------------------------     CONVEC3C.2204   
C                                                                          CONVEC3C.2205   
      DO I=1,NPNTS                                                         CONVEC3C.2206   
        IF (BTERM(I) .AND. ICCB(I) .EQ. ICCT(I)) THEN                      CONVEC3C.2207   
          ICCB(I) = 0.0                                                    CONVEC3C.2208   
          ICCT(I) = 0.0                                                    CONVEC3C.2209   
          CCA_2D(I) = 0.0                                                  CONVEC3C.2210   
          TCW(I) = 0.0                                                     CONVEC3C.2211   
          CCLWP(I) = 0.0                                                   CONVEC3C.2212   
        END IF                                                             CONVEC3C.2213   
        IF (BTERM(I) .AND. LCBASE(I) .EQ. LCTOP(I)) THEN                   CONVEC3C.2214   
          LCBASE(I) = 0                                                    CONVEC3C.2215   
          LCTOP(I) = 0                                                     CONVEC3C.2216   
          LCCA(I) = 0.0                                                    CONVEC3C.2217   
          LCCLWP(I) = 0.0                                                  CONVEC3C.2218   
        END IF                                                             CONVEC3C.2219   
      END DO                                                               CONVEC3C.2220   
C                                                                          CONVEC3C.2221   
C---------------------------------------------------------------------     CONVEC3C.2222   
C RESET BTERM TO FALSE                                                     CONVEC3C.2223   
C---------------------------------------------------------------------     CONVEC3C.2224   
C                                                                          CONVEC3C.2225   
      DO 200 I=1,NPNTS                                                     CONVEC3C.2226   
  200  BTERM(I) = .FALSE.                                                  CONVEC3C.2227   
C                                                                          CONVEC3C.2228   
      END IF                                                               CONVEC3C.2229   
CL                                                                         CONVEC3C.2230   
CL=====================================================================    CONVEC3C.2231   
CL END OF MAIN LOOP                                                        CONVEC3C.2232   
CL=====================================================================    CONVEC3C.2233   
CL                                                                         CONVEC3C.2234   
  60  CONTINUE                                                             CONVEC3C.2235   
CL                                                                         CONVEC3C.2236   
CL---------------------------------------------------------------------    CONVEC3C.2237   
CL BALANCE ENERGY BUDGET BY APPLYING CORRECTION TO THE TEMPERATURES        CONVEC3C.2238   
CL                                                                         CONVEC3C.2239   
CL SUBROUTINE COR_ENGY                                                     CONVEC3C.2240   
CL                                                                         CONVEC3C.2241   
CL UM DOCUMENTATION PAPER 27                                               CONVEC3C.2242   
CL SECTION (12)                                                            CONVEC3C.2243   
CL---------------------------------------------------------------------    CONVEC3C.2244   
CL                                                                         CONVEC3C.2245   
      NCNLV = 0                                                            CONVEC3C.2246   
      DO 210 I=1,NPNTS                                                     CONVEC3C.2247   
        IF(BCNLV(I))THEN                                                   CONVEC3C.2248   
          NCNLV = NCNLV + 1                                                CONVEC3C.2249   
          INDEX4(NCNLV) = I                                                CONVEC3C.2250   
        END IF                                                             CONVEC3C.2251   
  210 CONTINUE                                                             CONVEC3C.2252   
C                                                                          CONVEC3C.2253   
C                                                                          CONVEC3C.2254   
C----------------------------------------------------------------------    CONVEC3C.2255   
C WORK SPACE USAGE FOR ENERGY CORRECTION CALCULATION                       CONVEC3C.2256   
C                                                                          CONVEC3C.2257   
C  REFERENCES TO WORK AND WORK2                                            CONVEC3C.2258   
C  REFER TO STARTING ADDRESS                                               CONVEC3C.2259   
C                                                                          CONVEC3C.2260   
C  LENGTH OF COMPRESSES DATA = NCNLV                                       CONVEC3C.2261   
C                                                                          CONVEC3C.2262   
C  WORK(1,1 TO NLEV)        = DTHBYDT(#,1 TO NLEV)                         CONVEC3C.2263   
C  WORK(1,NLEV+1 TO 2*NLEV) = DQBYDT(#,1 TO NLEV)                          CONVEC3C.2264   
C  WORK2(1,1 TO NLEV+1)     = EXNER(#,1 TO NLEV+1)                         CONVEC3C.2265   
C  WORK2(1,NLEV+2)          = TH(#,1)                                      CONVEC3C.2266   
C  WORK2(1,NLEV+3)          = PSTAR(#)                                     CONVEC3C.2267   
C----------------------------------------------------------------------    CONVEC3C.2268   
C                                                                          CONVEC3C.2269   
      IF (NCNLV .NE. 0)THEN                                                CONVEC3C.2270   
C                                                                          CONVEC3C.2271   
        CALL COR_ENGY (NP_FIELD,NPNTS,NCNLV,NLEV,DTHBYDT,DQBYDT,SNOW,      CONVEC3C.2272   
     *                EXNER,PSTAR,DELAK,DELBK,AKM12,BKM12,INDEX4)          CONVEC3C.2273   
CL                                                                         CONVEC3C.2274   
      IF (L_3D_CCA) THEN                                                   CONVEC3C.2275   
        CALL CALC_3D_CCA(NP_FIELD,NPNTS,NLEV,NBL,ANVIL_FACTOR              ADR1F405.34     
     &                  ,TOWER_FACTOR,AKM12,BKM12,ICCB,ICCT                ADR1F405.35     
     &                  ,FREEZE_LEV,PSTAR,CCA_2D,CCA,L_CLOUD_DEEP)         ADR1F405.36     
      ELSE                                                                 ADR1F405.37     
        DO I=1,NPNTS                                                       ADR1F405.38     
          CCA(I,1)=CCA_2D(I)                                               ADR1F405.39     
        ENDDO                                                              ADR1F405.40     
      ENDIF                                                                CONVEC3C.2279   
CL---------------------------------------------------------------------    CONVEC3C.2280   
CL  UPDATE MODEL POTENTIAL TEMPERATURE, MIXING RATIO, U, V                 CONVEC3C.2281   
CL  AND TRACER WITH INCREMENTS DUE TO CONVECTION                           CONVEC3C.2282   
CL---------------------------------------------------------------------    CONVEC3C.2283   
CL                                                                         CONVEC3C.2284   
        DO 250 K=1,NLEV                                                    CONVEC3C.2285   
         DO 250 I=1,NPNTS                                                  CONVEC3C.2286   
           TH(I,K) = TH(I,K) + DTHBYDT(I,K) * TIMESTEP                     CONVEC3C.2287   
           Q(I,K) = Q(I,K) + DQBYDT(I,K) * TIMESTEP                        CONVEC3C.2288   
C                                                                          CONVEC3C.2289   
C---------------------------------------------------------------------     CONVEC3C.2290   
C   Calculation of gridbox mean CCW and CCWP, and CCA x conv. cloud        CONVEC3C.2291   
C   base and top pressure.                                                 CONVEC3C.2292   
C---------------------------------------------------------------------     CONVEC3C.2293   
C                                                                          CONVEC3C.2294   
           IF (CCA_2D(I) .NE. 0.0) THEN                                    CONVEC3C.2295   
             IF (L_3D_CCA) THEN                                            CONVEC3C.2296   
               GBMCCW(I,K) = CCA(I,K) * CCW(I,K)                           CONVEC3C.2297   
               DELPK(I) = -DELAK(K) - DELBK(K)*PSTAR(I)                    AJX4F405.9      
               GBMCCWP(I) = GBMCCWP(I) + CCW(I,K)*DELPK(I)*CCA(I,K)/G      AJX4F405.10     
                 IF (K.EQ.NLEV) THEN                                       CONVEC3C.2299   
                   ICCBPxCCA(I) = CCA(I,ICCB(I)) *                         CONVEC3C.2300   
     *                      (AK(ICCB(I)) + BK(ICCB(I)) * PSTAR(I))         CONVEC3C.2301   
                   ICCTPxCCA(I) = CCA(I,ICCT(I)-1) *                       CONVEC3C.2302   
     *                      (AK(ICCT(I)) + BK(ICCT(I)) * PSTAR(I))         CONVEC3C.2303   
                 ENDIF                                                     CONVEC3C.2304   
             ELSE                                                          CONVEC3C.2305   
               GBMCCW(I,K)  = CCA_2D(I) * CCW(I,K)                         CONVEC3C.2306   
               IF (K.EQ.NLEV) THEN                                         CONVEC3C.2307   
                 GBMCCWP(I)   = CCA_2D(I) * CCLWP(I)                       CONVEC3C.2308   
                 ICCBPxCCA(I) = CCA_2D(I) *                                CONVEC3C.2309   
     *                        (AK(ICCB(I)) + BK(ICCB(I)) * PSTAR(I))       CONVEC3C.2310   
                 ICCTPxCCA(I) = CCA_2D(I) *                                CONVEC3C.2311   
     *                        (AK(ICCT(I)) + BK(ICCT(I)) * PSTAR(I))       CONVEC3C.2312   
               END IF                                                      CONVEC3C.2313   
             ENDIF                                                         CONVEC3C.2314   
           ENDIF                                                           CONVEC3C.2319   
  250   CONTINUE                                                           CONVEC3C.2320   
C                                                                          CONVEC3C.2321   
        IF(L_TRACER)THEN                                                   CONVEC3C.2322   
C                                                                          CONVEC3C.2323   
!                                                                          CONVEC3C.2324   
!      BEFORE UPDATING THE TRACER FIELD, ADJUST THE TIMESTEP TO            CONVEC3C.2325   
!      PREVENT ANY NEGATIVE VALUES INVADING THE TRACER FIELDS.             CONVEC3C.2326   
!      NOTE THAT THE ADJUSTED TIMESTEP IS A FUNCTION OF GEOGRAPHICAL       CONVEC3C.2327   
!      LOCATION AND THE PARTICULAR TRACER.                                 CONVEC3C.2328   
!                                                                          CONVEC3C.2329   
        DO KTRA=1,NTRA                                                     CONVEC3C.2330   
!                                                                          CONVEC3C.2331   
          DO I=1,NPNTS                                                     CONVEC3C.2332   
!                                                                          CONVEC3C.2333   
            DO K=1,NLEV                                                    CONVEC3C.2334   
!                                                                          CONVEC3C.2335   
              STEP_TEST2(K) = DTRABYDT(I,K,KTRA)                           CONVEC3C.2336   
              STEP_TEST1(K) = ( 0.9999*ABS(TRACER(I,K,KTRA)) ) /           CONVEC3C.2337   
     &                  ( ABS(STEP_TEST2(K)) + SAFETY_MARGIN )             CONVEC3C.2338   
!                                                                          CONVEC3C.2339   
            END DO         ! END OF LEVEL (K) LOOP.                        CONVEC3C.2340   
!                                                                          CONVEC3C.2341   
*IF DEF,CRAY,AND,-DEF,T3D                                                  CONVEC3C.2342   
!     Now use CRAY MINVAL function.  Note:                                 CONVEC3C.2343   
!     (a) It must be declared as an INTRINSIC function.                    CONVEC3C.2344   
!     (b) If there are no levels at which rate of change is negative       CONVEC3C.2345   
!        (unlikely) MINVAL generates a huge number. The following          CONVEC3C.2346   
!         statement then replaces that by the base value of the tstep.     CONVEC3C.2347   
!                                                                          CONVEC3C.2348   
            LIMITED_STEP(I) = MINVAL(STEP_TEST1,1,STEP_TEST2.LT.0.0)       CONVEC3C.2349   
            IF (LIMITED_STEP(I) .GT. TIMESTEP) THEN                        CONVEC3C.2350   
              LIMITED_STEP(I) = TIMESTEP                                   CONVEC3C.2351   
            ENDIF                                                          CONVEC3C.2352   
!                                                                          CONVEC3C.2353   
*ELSE                                                                      CONVEC3C.2354   
!                                                                          CONVEC3C.2355   
!     The following fragment of code provides a standard Fortran           CONVEC3C.2356   
!     alternative to the use of the Cray MINVAL function.                  CONVEC3C.2357   
!                                                                          CONVEC3C.2358   
           LIMITED_STEP(I) = TIMESTEP                                      CONVEC3C.2359   
            DO K = 1,NLEV                                                  CONVEC3C.2360   
              IF( STEP_TEST2(K) .LT. 0.0 ) THEN                            CONVEC3C.2361   
               IF ( STEP_TEST1(K) .LT. LIMITED_STEP(I) ) THEN              CONVEC3C.2362   
               LIMITED_STEP(I) = STEP_TEST1(K)                             CONVEC3C.2363   
               ENDIF                                                       CONVEC3C.2364   
              ENDIF                                                        CONVEC3C.2365   
            END DO                                                         CONVEC3C.2366   
!                                                                          CONVEC3C.2367   
!     End of alternative to MINVAL.                                        CONVEC3C.2368   
!                                                                          CONVEC3C.2369   
*ENDIF                                                                     CONVEC3C.2370   
!                                                                          CONVEC3C.2371   
!   Diagnose the factor by which the tstep has been multiplied             CONVEC3C.2372   
!                                                                          CONVEC3C.2373   
            REDUCTION_FACTOR(I,KTRA) = LIMITED_STEP(I)/TIMESTEP            CONVEC3C.2374   
!                                                                          CONVEC3C.2375   
          END DO           ! END OF LOCATION (I) LOOP.                     CONVEC3C.2376   
!                                                                          CONVEC3C.2377   
!     Now update tracer field using  LIMITED STEP.                         CONVEC3C.2378   
!     We can reverse order of  I and K loop now.                           CONVEC3C.2379   
!                                                                          CONVEC3C.2380   
          DO K=1,NLEV                                                      CONVEC3C.2381   
            DO I=1,NPNTS                                                   CONVEC3C.2382   
              TRACER(I,K,KTRA) = TRACER(I,K,KTRA) + DTRABYDT(I,K,KTRA)     CONVEC3C.2383   
     &                           * LIMITED_STEP(I)                         CONVEC3C.2384   
            END DO                                                         CONVEC3C.2385   
          END DO                                                           CONVEC3C.2386   
!                                                                          CONVEC3C.2387   
        END DO             ! END OF LOOP OVER TRACER TYPES (KTRA).         CONVEC3C.2388   
!                                                                          CONVEC3C.2389   
C                                                                          CONVEC3C.2390   
        END IF                                                             CONVEC3C.2391   
C                                                                          CONVEC3C.2392   
      END IF                                                               CONVEC3C.2393   
C                                                                          CONVEC3C.2394   
      RETURN                                                               CONVEC3C.2395   
      END                                                                  CONVEC3C.2396   
C                                                                          CONVEC3C.2397   
*ENDIF                                                                     CONVEC3C.2398