*IF DEF,A05_3B                                                             AJX1F405.164    
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.14555  
C                                                                          GTS2F400.14556  
C Use, duplication or disclosure of this code is subject to the            GTS2F400.14557  
C restrictions as set forth in the contract.                               GTS2F400.14558  
C                                                                          GTS2F400.14559  
C                Meteorological Office                                     GTS2F400.14560  
C                London Road                                               GTS2F400.14561  
C                BRACKNELL                                                 GTS2F400.14562  
C                Berkshire UK                                              GTS2F400.14563  
C                RG12 2SZ                                                  GTS2F400.14564  
C                                                                          GTS2F400.14565  
C If no contract has been raised with this copy of the code, the use,      GTS2F400.14566  
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.14567  
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.14568  
C Modelling at the above address.                                          GTS2F400.14569  
C ******************************COPYRIGHT******************************    GTS2F400.14570  
C                                                                          GTS2F400.14571  
CLL  SUBROUTINE CONVECT------------------------------------------------    CONVEC3A.3      
CLL                                                                        CONVEC3A.4      
CLL  PURPOSE : TOP LEVEL OF THE MASS FLUX CONVECTION SCHEME.               CONVEC3A.5      
CLL            LOOPS ROUND MODEL LEVELS FORM SURFACE UPWARDS               CONVEC3A.6      
CLL            A STABILITY TEST IS CARRIED OUT TO DETERMINE WHICH          CONVEC3A.7      
CLL            POINTS ARE TOO STABLE FOR CONVECTION TO OCCUR               CONVEC3A.8      
CLL            SUBROUTINE LIFTP AND CONVC2 ARE CALLED TO CALCULATE         CONVEC3A.9      
CLL            THE PARCEL ASCENT                                           CONVEC3A.10     
CLL            SUBROUTINE POUR IS CALLED TO CALCULATE THE EVAPORATION      CONVEC3A.11     
CLL            OF FALLING PRECIPITATION                                    CONVEC3A.12     
CLL            SUBROUTINE DD_CALL CALLS THE DOWNDRAUGHT CODE               CONVEC3A.13     
CLL            SUBROUTINE CORNRG IS CALLED TO CONSERVE MOIST STATIC        CONVEC3A.14     
CLL            ENERGY ONCE OTHER CALCULATIONS ARE COMPLETE                 CONVEC3A.15     
CLL                                                                        CONVEC3A.16     
CLL  SUITABLE FOR SINGLE COLUMN MODEL USE                                  CONVEC3A.17     
CLL                                                                        CONVEC3A.18     
CLL  MODEL            MODIFICATION HISTORY FROM MODEL VERSION 3.0:         CONVEC3A.19     
CLL VERSION  DATE                                                          CONVEC3A.20     
CLL  4.0   5/05/95  : New version (based on 2B) incorporating;             CONVEC3A.21     
CLL                   Tracer transports                                    CONVEC3A.22     
CLL                   Convective momentum transports with cloud pressure   CONVEC3A.23     
CLL                   gradients and eddy flux formulation                  CONVEC3A.24     
CLL                   CAPE closure and CAPE diagnostic                     CONVEC3A.25     
CLL                   Diagnosis of deep/shallow/mid convection             CONVEC3A.26     
CLL                   Pressure dependency of evaporation of                CONVEC3A.27     
CLL                   precipitation                                        CONVEC3A.28     
CLL   4.1  10/6/96  : Changed dimensions of momentum arrays to             API4F401.57     
CLL                   allow convection to be split into segments           API4F401.58     
CLL                   with the momentum transport scheme.                  API4F401.59     
CLL                                    Pete Inness                         API4F401.60     
CLL  4.1   25/03/96 : CAPE closure restructured to avoid increments        API1F401.1      
CLL                   from split final detrainment being included          API1F401.2      
CLL                   in the scheme if convection re-initiates             API1F401.3      
CLL                   from a level at which split final detrainment        API1F401.4      
CLL                   has already occurred.                                API1F401.5      
CLL                                        P. Inness.                      API1F401.6      
CLL                                                                        CONVEC3A.29     
CLL  4.1   10/05/96   Include check to prevent negative tracer values      AWO5F401.246    
CLL                   (involves use or CRAY-specific MINVAL function)      AWO5F401.247    
CLL                                           M. Woodage,  D. Roberts      AWO5F401.248    
CLL   4.2    Oct. 96  T3E migration: *DEF CRAY removed                     GSS2F402.267    
CLL                   (was used to switch on WHENIMD & MINVAL)             GSS2F402.268    
CLL                                    S.J.Swarbrick                       GSS2F402.269    
CLL                                                                        AWO5F401.249    
CLL  4.2   26/9/96  : Four new diagnostics added  -                        AJX1F402.219    
CLL                   (i)  Gridbox mean conv. cloud water                  AJX1F402.220    
CLL                   (ii) Gridbox mean conv. cloud liquid water path      AJX1F402.221    
CLL                   (iii)Cloud base pressure weighted by convective      AJX1F402.222    
CLL                        cloud amount (CCA)                              AJX1F402.223    
CLL                   (iv) Cloud top pressure weighted by CCA              AJX1F402.224    
CLL                                                          J.Cairns      AJX1F402.225    
CLL  4.3  Feb. 97   T3E optimisation: introduce recip_pstar,               GSS1F403.140    
CLL                   eliminate copying into workspace arrays              GSS1F403.141    
CLL                   for CORENG call.         S.J.Swarbrick               GSS1F403.142    
CLL  4.3   03/02/97  (i) Pass logical switch L_XSCOMP down to ENVIRON.     ARN2F403.23     
CLL                  (ii) Put setting of bottom model layer parcel         ARN2F403.24     
CLL                       excess to standard deviation of turbulent        ARN2F403.25     
CLL                       fluctuations under control of logical            ARN2F403.26     
CLL                       switch L_SDXS (also passed down to ENVIRON).     ARN2F403.27     
CLL                                                   R.N.B.Smith          ARN2F403.28     
!LL  4.4  Oct 97    Add halo mask to stop redundant calculations           AAD2F404.195    
!LL                                               Alan Dickinson           AAD2F404.196    
CLL  4.4   29/08/97  Pass switch L_CCW down to CLOUD_W to determine if     AJX0F404.206    
CLL                  precip is included in water path and pass in switch   AJX0F404.207    
CLL                  L_3D_CCA to determine if a 3D conv cloud amount       AJX0F404.208    
CLL                  should be calculated in new subroutine CALC_3D_CCA.   AJX0F404.209    
CLL  4.4  26/11/97  Levels loop for DTRABYDT should be NLEV                ARB0F404.25     
CLL                 not TRLEV.  RTHBarnes.                                 ARB0F404.26     
!LL  4.5  5/6/98    Updraught factor and L_CLOUD_DEEP passed into          AJX3F405.33     
!LL                 convection as part of anvil scheme. J.Gregory          AJX3F405.34     
CLL   4.5    Jul. 98  Kill the IBM specific lines (JCThil)                 AJC1F405.21     
!LL  4.5  20/02/98  Remove redundant code. A. Dickinson                    ADR1F405.21     
CLL  4.5  05/05/98  Add Fujitsu vectorization directives.                  GRB0F405.168    
CLL  4.5  05/05/98  Use fortran 90 intrinsic TINY instead of               GRB1F405.76     
CLL                 1.0E-100 for safety_margin. RBarnes@ecmwf.int          GRB1F405.77     
CLL                                                                        ARB0F404.27     
CLL                                                                        ARN2F403.29     
CLL  PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3       CONVEC3A.30     
CLL  VERSION NO. 4  Dated 05/02/92                                         CONVEC3A.31     
CLL                                                                        CONVEC3A.32     
CLL LOGICAL COMPONENTS INCLUDED:                                           CONVEC3A.33     
CLL                                                                        CONVEC3A.34     
CLL  SYSTEM TASK : P27                                                     CONVEC3A.35     
CLL                                                                        CONVEC3A.36     
CLL  DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER P27                 CONVEC3A.37     
CLL                                                                        CONVEC3A.38     
CLLEND-----------------------------------------------------------------    CONVEC3A.39     
C                                                                          CONVEC3A.40     
C*L  ARGUMENTS---------------------------------------------------------    CONVEC3A.41     
C                                                                          CONVEC3A.42     

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