*IF DEF,A05_2A,OR,DEF,A05_2C                                               ARJ1F402.18     
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.14776  
C                                                                          GTS2F400.14777  
C Use, duplication or disclosure of this code is subject to the            GTS2F400.14778  
C restrictions as set forth in the contract.                               GTS2F400.14779  
C                                                                          GTS2F400.14780  
C                Meteorological Office                                     GTS2F400.14781  
C                London Road                                               GTS2F400.14782  
C                BRACKNELL                                                 GTS2F400.14783  
C                Berkshire UK                                              GTS2F400.14784  
C                RG12 2SZ                                                  GTS2F400.14785  
C                                                                          GTS2F400.14786  
C If no contract has been raised with this copy of the code, the use,      GTS2F400.14787  
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.14788  
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.14789  
C Modelling at the above address.                                          GTS2F400.14790  
C ******************************COPYRIGHT******************************    GTS2F400.14791  
C                                                                          GTS2F400.14792  
!   Subroutine GLUE_CONV--------------------------------------             GCONV_2A.3      
!                                                                          GCONV_2A.4      
!   Level 3 control routine                                                GCONV_2A.5      
!                                                                          GCONV_2A.6      
!   Purpose: Calls CONVECT to calculate and add convection increments.     GCONV_2A.7      
!            It is an extra level of Control routine to avoid the          GCONV_2A.8      
!            use of *IF DEF around calls to different CONVECT routines     GCONV_2A.9      
!            as per proposal of S. Foreman 22/8/94 for plug compatible     GCONV_2A.10     
!            routines.                                                     GCONV_2A.11     
!       2A version. Standard downdraught version.                          GCONV_2A.12     
!                                                                          GCONV_2A.13     
!   Code Description:                                                      GCONV_2A.14     
!    Language FORTRAN 77 + extensions.                                     GCONV_2A.15     
!    This code is written to UMDP3 v6 programming standards.               GCONV_2A.16     
!                                                                          GCONV_2A.17     
!         Author: P.Inness        Reviewer: C. Wilson                      GCONV_2A.18     
!                                                                          GCONV_2A.19     
!   Modification History from U.M. version 4.0:                            GCONV_2A.20     
!                                                                          GCONV_2A.21     
!   Version      Date                                                      GCONV_2A.22     
!                                                                          GCONV_2A.23     
!     4.1        10/6/96  : Changed dimensions of momentum arrays          API4F401.30     
!                           to allow convection to be split into           API4F401.31     
!                           segments when momentum transports are          API4F401.32     
!                           used.                                          API4F401.33     
!     4.4        14/10/97 : Argument list changed to be consistent         AJX0F404.145    
!                           with CONV_CTL at vn4.4.    J.M.Gregory         AJX0F404.146    
!LL  4.4    Oct 97  Add halo mask to stop redundant calculations           AAD2F404.89     
!LL                 Add arguments L_XSCOMP and LSDXS to fix                AAD2F404.90     
!LL                 argument mismatch                                      AAD2F404.91     
!LL                                               Alan Dickinson           AAD2F404.92     
!                                                                          API4F401.34     
!   System components covered : P27                                        GCONV_2A.24     
!                                                                          GCONV_2A.25     
!   System task : P0                                                       GCONV_2A.26     
!                                                                          GCONV_2A.27     
!   Documentation:                                                         GCONV_2A.28     
!                                                                          GCONV_2A.29     
!  END -----------------------------------------------------------------   GCONV_2A.30     
                                                                           GCONV_2A.31     

      SUBROUTINE GLUE_CONV(                                                 4,3GCONV_2A.32     
     &     NP_FIELD,NPNTS,NLEV,NBL,                                        GCONV_2A.33     
     &     TH,Q,PSTAR,BLAND,U,V,TRACER,                                    GCONV_2A.34     
     &     DTHBYDT,DQBYDT,DUBYDT,DVBYDT,                                   GCONV_2A.35     
     &     RAIN,SNOW,                                                      GCONV_2A.36     
     &     CCA,ICCB,ICCT,CCLWP,CCW,                                        GCONV_2A.37     
     &     ICCBPxCCA,ICCTPxCCA,GBMCCWP,GBMCCW,                             AJX1F402.58     
     &     LCBASE,LCTOP,LCCA,LCCLWP,                                       GCONV_2A.38     
     &     CAPE,                                                           GCONV_2A.39     
     &     EXNER,AK,BK,AKM12,BKM12,DELAK,DELBK,                            GCONV_2A.40     
     &     TIMESTEP,                                                       GCONV_2A.41     
     &     T1_SD,Q1_SD,                                                    GCONV_2A.42     
     &     L_MOM,L_TRACER,L_CAPE,                                          GCONV_2A.43     
     &     NTRA,TRLEV,L_XSCOMP,L_SDXS                                      AAD2F404.93     
*IF DEF,SCMA                                                               AJC0F405.116    
     &  ,DTHUD,DTHDD,DQUD,DQDD                                             AJC0F405.117    
*ENDIF                                                                     AJC0F405.118    
*IF DEF,MPP                                                                AAD2F404.94     
     &    ,l_halo                                                          AAD2F404.95     
*ENDIF                                                                     AAD2F404.96     
     &     ,N_CCA_LEV, L_3D_CCA, L_CCW, MPARWTR                            AJX0F404.147    
     &     , ANVIL_FACTOR, TOWER_FACTOR, UD_FACTOR                         AJX3F405.58     
     &     , L_CLOUD_DEEP, L_PHASE_LIM                                     AJX3F405.59     
     &     , UP_FLUX,FLG_UP_FLX,DWN_FLUX,FLG_DWN_FLX                       AJX3F405.60     
     &     , ENTRAIN_UP, FLG_ENTR_UP,DETRAIN_UP,FLG_DETR_UP                AJX3F405.61     
     &     , ENTRAIN_DWN, FLG_ENTR_DWN,DETRAIN_DWN,FLG_DETR_DWN            AJX3F405.62     
     & )                                                                   GCONV_2A.45     
      IMPLICIT NONE                                                        GCONV_2A.46     
                                                                           GCONV_2A.47     
!----------------------------------------------------------------------    GCONV_2A.48     
!Some of the following variables are 'dummy' as they are used in other     GCONV_2A.49     
! CONVECT versions                                                         GCONV_2A.50     
!-----------------------------------------------------------------------   GCONV_2A.51     
!----------------------------------------------------------------------    GCONV_2A.52     
! IN variables                                                             GCONV_2A.53     
!---------------------------------------------------------------------     GCONV_2A.54     
      INTEGER NP_FIELD            ! LENGTH OF DATA (ALSO USED TO           GCONV_2A.55     
                                  ! SPECIFY STARTING POINT OF              GCONV_2A.56     
                                  ! DATA PASSED IN)                        GCONV_2A.57     
C                                                                          GCONV_2A.58     
      INTEGER NPNTS               ! IN FULL VECTOR LENGTH                  GCONV_2A.59     
C                                                                          GCONV_2A.60     
      INTEGER NLEV                ! IN NUMBER OF MODEL LAYERS              GCONV_2A.61     
C                                                                          GCONV_2A.62     
      INTEGER NBL                 ! IN NUMBER OF BOUNDARY LAYER LEVELS     GCONV_2A.63     
C                                                                          GCONV_2A.64     
      INTEGER NTRA                ! NUMBER OF TRACER FIELDS                GCONV_2A.65     
C                                                                          GCONV_2A.66     
      INTEGER TRLEV               ! NUMBER OF MODEL LEVELS ON WHICH        GCONV_2A.67     
                                  ! TRACERS ARE INCLUDED                   GCONV_2A.68     
C                                                                          GCONV_2A.69     
      LOGICAL BLAND(NP_FIELD)     ! IN LAND/SEA MASK                       GCONV_2A.70     
C                                                                          GCONV_2A.71     
      LOGICAL L_TRACER            ! IN SWITCH FOR INCLUSION OF TRACERS     GCONV_2A.72     
C                                                                          GCONV_2A.73     
      LOGICAL L_MOM               ! IN SWITCH FOR INCLUSION OF             GCONV_2A.74     
                                  !    MOMENTUM TRANSPORTS                 GCONV_2A.75     
      LOGICAL L_XSCOMP            ! IN unused argument                     AAD2F404.97     
      LOGICAL L_SDXS              ! IN unused argument                     AAD2F404.98     
C                                                                          GCONV_2A.76     
      LOGICAL L_CAPE              ! IN SWITCH FOR USE OF CAPE CLOSURE      GCONV_2A.77     
!                                                                          GCONV_2A.78     
      REAL PSTAR(NP_FIELD)        ! IN SURFACE PRESSURE (PA)               GCONV_2A.79     
C                                                                          GCONV_2A.80     
      REAL EXNER(NP_FIELD,NLEV+1) ! IN EXNER RATIO                         GCONV_2A.81     
C                                                                          GCONV_2A.82     
      REAL AK(NLEV),              ! IN HYBRID CO-ORDINATE COEFFICIENTS     GCONV_2A.83     
     *     BK(NLEV)               !    DEFINE PRESSURE AT MID-POINT        GCONV_2A.84     
                                  !    OF LAYER K                          GCONV_2A.85     
C                                                                          GCONV_2A.86     
      REAL AKM12(NLEV+1),         ! IN HYBRID CO-ORDINATE COEFFICIENTS     GCONV_2A.87     
     *     BKM12(NLEV+1)          !    TO DEFINE PRESSURE AT               GCONV_2A.88     
                                  !    LEVEL K-1/2                         GCONV_2A.89     
C                                                                          GCONV_2A.90     
      REAL DELAK(NLEV),           ! IN DIFFERENCE IN HYBRID CO-ORDINATE    GCONV_2A.91     
     *     DELBK(NLEV)            !    COEFFICIENTS ACROSS LAYER K         GCONV_2A.92     
C                                                                          GCONV_2A.93     
      REAL TIMESTEP               ! IN MODEL TIMESTEP (SECS)               GCONV_2A.94     
C                                                                          GCONV_2A.95     
      REAL U(NP_FIELD,NLEV)       ! IN MODEL U FIELD (M/S)                 API4F401.35     
C                                                                          GCONV_2A.97     
      REAL V(NP_FIELD,NLEV)       ! IN MODEL V FIELD (M/S)                 API4F401.36     
C                                                                          GCONV_2A.99     
      REAL T1_SD(NP_FIELD)        ! IN Standard deviation of turbulent     GCONV_2A.100    
                                  !    fluctuations of layer 1             GCONV_2A.101    
                                  !    temperature (K).                    GCONV_2A.102    
      REAL Q1_SD(NP_FIELD)        ! IN Standard deviation of turbulent     GCONV_2A.103    
                                  !    fluctuations of layer 1             GCONV_2A.104    
                                  !    humidity (kg/kg).                   GCONV_2A.105    
*IF DEF,MPP                                                                AAD2F404.99     
      LOGICAL l_halo(NP_FIELD)    ! IN Mask for halos                      AAD2F404.100    
*ENDIF                                                                     AAD2F404.101    
!                                                                          GCONV_2A.106    
!----------------------------------------------------------------------    GCONV_2A.107    
! INOUT variables                                                          GCONV_2A.108    
!----------------------------------------------------------------------    GCONV_2A.109    
      REAL TH(NP_FIELD,NLEV)      ! INOUT                                  GCONV_2A.110    
                                  ! IN MODEL POTENTIAL TEMPERATURE (K)     GCONV_2A.111    
                                  ! OUT MODEL POTENTIAL TEMPERATURE        GCONV_2A.112    
                                  !     AFTER CONVECTION (K)               GCONV_2A.113    
C                                                                          GCONV_2A.114    
      REAL Q(NP_FIELD,NLEV)       ! INOUT                                  GCONV_2A.115    
                                  ! IN MODEL MIXING RATIO (KG/KG)          GCONV_2A.116    
                                  ! OUT MODEL MIXING RATIO AFTER           GCONV_2A.117    
                                  !     AFTER CONVECTION (KG/KG)           GCONV_2A.118    
C                                                                          GCONV_2A.119    
      REAL TRACER(NP_FIELD,TRLEV,NTRA)! INOUT                              GCONV_2A.120    
                                      ! IN  MODEL TRACER FIELDS (KG/KG)    GCONV_2A.121    
                                      ! OUT MODEL TRACER FIELDS AFTER      GCONV_2A.122    
                                      !     CONVECTION (KG/KG)             GCONV_2A.123    
C                                                                          GCONV_2A.124    
                                                                           GCONV_2A.125    
!----------------------------------------------------------------------    GCONV_2A.126    
! OUT variables                                                            GCONV_2A.127    
!----------------------------------------------------------------------    GCONV_2A.128    
      REAL DTHBYDT(NP_FIELD,NLEV) ! OUT INCREMENTS TO POTENTIAL            GCONV_2A.129    
                                  !     TEMPERATURE DUE TO CONVECTION      GCONV_2A.130    
                                  !     (K/S)                              GCONV_2A.131    
C                                                                          GCONV_2A.132    
      REAL DQBYDT(NP_FIELD,NLEV)  ! OUT INCREMENTS TO MIXING RATIO         GCONV_2A.133    
                                  !     DUE TO CONVECTION (KG/KG/S)        GCONV_2A.134    
C                                                                          GCONV_2A.135    
      REAL DUBYDT(NP_FIELD,NLEV)  ! OUT INCREMENTS TO U DUE TO             API4F401.37     
                                  !     CONVECTIVE MOMENTUM TRANSPORT      GCONV_2A.137    
                                  !     (M/S**2)                           GCONV_2A.138    
C                                                                          GCONV_2A.139    
      REAL DVBYDT(NP_FIELD,NLEV)  ! OUT INCREMENTS TO V DUE TO             API4F401.38     
                                  !     CONVECTIVE MOMENTUM TRANSPORT      GCONV_2A.141    
                                  !     (M/S**2)                           GCONV_2A.142    
*IF DEF,SCMA                                                               AJC0F405.119    
      Real DTHUD(NP_FIELD,NLEV)                                            AJC0F405.120    
      Real DTHDD(NP_FIELD,NLEV)                                            AJC0F405.121    
      Real DQUD(NP_FIELD,NLEV)                                             AJC0F405.122    
      Real DQDD(NP_FIELD,NLEV)                                             AJC0F405.123    
*ENDIF                                                                     AJC0F405.124    
C                                                                          GCONV_2A.143    
      REAL RAIN(NP_FIELD)         ! OUT SURFACE CONVECTIVE RAINFALL        GCONV_2A.144    
                                  !     (KG/M**2/S)                        GCONV_2A.145    
C                                                                          GCONV_2A.146    
      REAL SNOW(NP_FIELD)         ! OUT SURFACE CONVECTIVE SNOWFALL        GCONV_2A.147    
                                  !     (KG/M**2/S)                        GCONV_2A.148    
C                                                                          GCONV_2A.149    
      REAL CCA(NP_FIELD)          ! OUT CONVECTIVE CLOUD AMOUNT (%)        GCONV_2A.150    
C                                                                          GCONV_2A.151    
      INTEGER ICCB(NP_FIELD)      ! OUT CONVECTIVE CLOUD BASE LEVEL        GCONV_2A.152    
C                                                                          GCONV_2A.153    
      INTEGER ICCT(NP_FIELD)      ! OUT CONVECTIVE CLOUD TOP LEVEL         GCONV_2A.154    
C                                                                          GCONV_2A.155    
      REAL CCLWP(NP_FIELD)        ! OUT CONDENSED WATER PATH (KG/M**2)     GCONV_2A.156    
C                                                                          GCONV_2A.157    
      REAL CCW(NP_FIELD,NLEV)     ! OUT CONVECTIVE CLOUD LIQUID WATER      GCONV_2A.158    
                                  ! (G/KG) ON MODEL LEVELS                 GCONV_2A.159    
C                                                                          GCONV_2A.160    
      REAL ICCBPxCCA(NP_FIELD)    ! OUT CONV. CLD BASE PRESSURE x CCA      AJX1F402.59     
C                                                                          AJX1F402.60     
      REAL ICCTPxCCA(NP_FIELD)    ! OUT CONV. CLD TOP PRESSURE x CCA       AJX1F402.61     
C                                                                          AJX1F402.62     
      REAL GBMCCWP(NP_FIELD)      ! OUT GRIDBOX MEAN CCWP                  AJX1F402.63     
C                                                                          AJX1F402.64     
      REAL GBMCCW(NP_FIELD,NLEV)  ! OUT GRIDBOX MEAN CCW                   AJX1F402.65     
C                                                                          AJX1F402.66     
      REAL LCCA(NP_FIELD)         ! OUT LOWEST CONV.CLOUD AMOUNT (%)       GCONV_2A.161    
C                                                                          GCONV_2A.162    
      INTEGER LCBASE(NP_FIELD)    ! OUT LOWEST CONV.CLOUD BASE LEVEL       GCONV_2A.163    
C                                                                          GCONV_2A.164    
      INTEGER LCTOP(NP_FIELD)     ! OUT LOWEST CONV.CLOUD TOP LEVEL        GCONV_2A.165    
C                                                                          GCONV_2A.166    
      REAL LCCLWP(NP_FIELD)       ! OUT CONDENSED WATER PATH (KG/M**2)     GCONV_2A.167    
                                  !     FOR LOWEST CONV.CLOUD              GCONV_2A.168    
C                                                                          GCONV_2A.169    
      REAL CAPE(NPNTS)            ! OUT MODEL VALUES OF CONVECTIVE         GCONV_2A.170    
                                  !     AVAILABLE POTENTIAL ENERGY         GCONV_2A.171    
                                  !     FOR DIAGNOSTIC OUTPUT              GCONV_2A.172    
                                                                           GCONV_2A.173    
! External subroutines called                                              GCONV_2A.174    
                                                                           GCONV_2A.175    
      EXTERNAL                                                             GCONV_2A.176    
     &      CONVECT                                                        GCONV_2A.177    
                                                                           GCONV_2A.178    
! Local variables                                                          GCONV_2A.179    
                                                                           GCONV_2A.180    
      REAL    MPARWTR        ! \                                           AJX0F404.149    
     &,       ANVIL_FACTOR   !  \ DUMMY variables added to match           AJX3F405.63     
     &,       TOWER_FACTOR   ! /  argument list                            AJX0F404.151    
     &,       UD_FACTOR      ! /                                           AJX3F405.64     
!                                                                          AJX0F404.152    
      INTEGER N_CCA_LEV      !    DUMMY                                    AJX0F404.153    
!                                                                          AJX0F404.154    
      LOGICAL L_3D_CCA       !\   DUMMY variables added to match arg.      AJX3F405.65     
     &,       L_CCW          ! \  list passed in from CONV_CTL             AJX3F405.66     
     &,       L_CLOUD_DEEP   ! /                                           AJX3F405.67     
     &,       L_PHASE_LIM    !/                                            AJX3F405.68     
!                                                                          AJX3F405.69     
      LOGICAL FLG_UP_FLX     ! Dummy variable to match CONV_CTL arg list   AJX3F405.70     
!                                                                          AJX3F405.71     
      LOGICAL FLG_DWN_FLX    !              " "                            AJX3F405.72     
!                                                                          AJX3F405.73     
      LOGICAL FLG_ENTR_UP    !              " "                            AJX3F405.74     
!                                                                          AJX3F405.75     
      LOGICAL FLG_ENTR_DWN   !              " "                            AJX3F405.76     
!                                                                          AJX3F405.77     
      LOGICAL FLG_DETR_UP    !              " "                            AJX3F405.78     
!                                                                          AJX3F405.79     
      LOGICAL FLG_DETR_DWN   !              " "                            AJX3F405.80     
!                                                                          AJX3F405.81     
      REAL UP_FLUX(NP_FIELD,NLEV)     !     " "                            AJX3F405.82     
!                                                                          AJX3F405.83     
      REAL DWN_FLUX(NP_FIELD,NLEV)    !     " "                            AJX3F405.84     
!                                                                          AJX3F405.85     
      REAL ENTRAIN_UP(NP_FIELD,NLEV)  !     " "                            AJX3F405.86     
!                                                                          AJX3F405.87     
      REAL DETRAIN_UP(NP_FIELD,NLEV)  !     " "                            AJX3F405.88     
!                                                                          AJX3F405.89     
      REAL ENTRAIN_DWN(NP_FIELD,NLEV) !     " "                            AJX3F405.90     
!                                                                          AJX3F405.91     
      REAL DETRAIN_DWN(NP_FIELD,NLEV) !     " "                            AJX3F405.92     
                                                                           GCONV_2A.181    
!--------------- SECTION 5 CONVECTION ------------------------             GCONV_2A.182    
                                                                           GCONV_2A.183    
!  5.2 Call CONVECT to calculate and add convection increments             GCONV_2A.184    
                                                                           GCONV_2A.185    
      CALL CONVECT(                                                        GCONV_2A.186    
     &     NP_FIELD,NPNTS,NLEV,                                            GCONV_2A.187    
     &     TH,Q,PSTAR,BLAND,                                               GCONV_2A.188    
     &     DTHBYDT,DQBYDT,                                                 GCONV_2A.189    
     &     RAIN,SNOW,                                                      GCONV_2A.190    
     &     CCA,ICCB,ICCT,CCLWP,CCW,                                        GCONV_2A.191    
     &     ICCBPxCCA,ICCTPxCCA,GBMCCWP,GBMCCW,                             AJX1F402.67     
     &     LCBASE,LCTOP,LCCA,LCCLWP,                                       GCONV_2A.192    
     &     CAPE,                                                           GCONV_2A.193    
     &     EXNER,AK,BK,AKM12,BKM12,DELAK,DELBK,                            GCONV_2A.194    
     &     TIMESTEP                                                        GCONV_2A.195    
*IF DEF,SCMA                                                               AJC0F405.125    
     &    ,DTHUD,DTHDD,DQUD,DQDD                                           AJC0F405.126    
*ENDIF                                                                     AJC0F405.127    
*IF DEF,MPP                                                                AAD2F404.102    
     &    , l_halo                                                         AAD2F404.103    
*ENDIF                                                                     AAD2F404.104    
     & )                                                                   GCONV_2A.196    
                                                                           GCONV_2A.197    
      RETURN                                                               GCONV_2A.198    
      END                                                                  GCONV_2A.199    
*ENDIF                                                                     GCONV_2A.200