*IF DEF,A04_2E                                                             ADM0F405.293    
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.14980  
C                                                                          GTS2F400.14981  
C Use, duplication or disclosure of this code is subject to the            GTS2F400.14982  
C restrictions as set forth in the contract.                               GTS2F400.14983  
C                                                                          GTS2F400.14984  
C                Meteorological Office                                     GTS2F400.14985  
C                London Road                                               GTS2F400.14986  
C                BRACKNELL                                                 GTS2F400.14987  
C                Berkshire UK                                              GTS2F400.14988  
C                RG12 2SZ                                                  GTS2F400.14989  
C                                                                          GTS2F400.14990  
C If no contract has been raised with this copy of the code, the use,      GTS2F400.14991  
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.14992  
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.14993  
C Modelling at the above address.                                          GTS2F400.14994  
C ******************************COPYRIGHT******************************    GTS2F400.14995  
C                                                                          GTS2F400.14996  
!   SUBROUTINE GLUE_LSPP------------------------------------------------   GLSPP_2D.3      
!                                                                          GLSPP_2D.4      
!   Level 3 control routine                                                GLSPP_2D.5      
!                                                                          GLSPP_2D.6      
!   Purpose: Calculate large-scale (dynamical) precipitation. LS_PPNC is   GLSPP_2D.7      
!            the gather/scatter routine which then calls LSP_EVAP,         GLSPP_2D.8      
!            LSP_FRMT,LSP_FORM.                                            GLSPP_2D.9      
!            GLUE is an extra level of control routine to avoid using      GLSPP_2D.10     
!            *IF DEF around calls to different LS_PPN versions, as per     GLSPP_2D.11     
!            S. Foreman's 22/8/94 proposal for plug compatibility.         GLSPP_2D.12     
!                                                                          GLSPP_2D.13     
!   A04_2D : Moisture distribution about mean gridbox supersaturation.     GLSPP_2D.14     
!            Long timestep and explicit short timestep ice fallouts.       GLSPP_2D.15     
!   A04_2E : MPP version of 2D scheme (loss of exact bit comparison).      ADM3F404.3      
!                                                                          GLSPP_2D.16     
!   Called by : LSPP_CTL1                                                  GLSPP_2D.17     
!                                                                          GLSPP_2D.18     
!   Code description: Language FORTRAN 77 + extensions.                    GLSPP_2D.19     
!                                                                          GLSPP_2D.20     
!   Programming standard: Unified Model Documentation Paper No 3,          GLSPP_2D.21     
!                         Version 6.                                       GLSPP_2D.22     
!                                                                          GLSPP_2D.23     
!   Author: Andrew Bushell     Reviewer: C. Wilson                         GLSPP_2D.24     
!                                                                          GLSPP_2D.25     
!   Modification History from UM Version 4.0:                              GLSPP_2D.26     
!    Version      Date                                                     GLSPP_2D.27     
!                                                                          GLSPP_2D.28     
!   4.1  06/06/96  Add Sulphur Cycle tracers for wet scavenging in         AWO4F401.69     
!                  Version 2D of LS_PPN                    M. Woodage      AWO4F401.70     
!   4.4  01/07/97  Changes to use of arguments if 2A cloud scheme is       ADM3F404.4      
!                  chosen. MUST USE 1A cloud scheme with 2D, 2E ppn.       ADM3F404.5      
!   4.4  08/09/97  Add RHCRIT argument   D.Wilson                          ADM3F404.6      
!    4.5  02/04/98   Add NH3 to argument list and pass to LS_PPN           AWO4F405.131    
!                     (For S Cycle)               M Woodage                AWO4F405.132    
!    4.5  12/03/98   Add aged soot to argument list and pass to            AWO4F405.133    
!                    LS_PPN                       Luke Robinson.           AWO4F405.134    
!   4.5  03/09/97  Added dummy 3D rain and snow variables. D.Wilson        ADM0F405.27     
!   4.5  01/05/98  Restrict murk aerosol calculations to aerosol           APC0F405.786    
!                  levels=boundary levels. P.Clark                         APC0F405.787    
!   4.5  13/05/98  Altered call to glue routine (dummy variables).         ASK1F405.237    
!                                  S. Cusack                               ASK1F405.238    
!                                                                          GLSPP_2D.29     
!   System components covered :                                            GLSPP_2D.30     
!                                                                          GLSPP_2D.31     
!   System task :                                                          GLSPP_2D.32     
!                                                                          GLSPP_2D.33     
!   Documentation: UMDP No.                                                GLSPP_2D.34     
!                                                                          GLSPP_2D.35     
!  END -----------------------------------------------------------------   GLSPP_2D.36     
!                                                                          GLSPP_2D.37     

      SUBROUTINE GLUE_LSPP(                                                 2,3GLSPP_2D.38     
     & AK,BK,CF,DELTA_AK,DELTA_BK,PSTAR,TIMESTEP                           GLSPP_2D.39     
     &,BLAND,CW_SEA,CW_LAND                                                GLSPP_2D.40     
     &,LS_GRID_QC,LS_BS                                                    GLSPP_2D.41     
     &,RHCRIT,DUMMY, L_DUMMY                                               ASK1F405.239    
     &,Q_LEVELS,PFIELD                                                     GLSPP_2D.42     
     &,POINTS,K1STPT,LSPICE_DIM1,LSPICE_DIM2,A_LEVELS,Q,QCF,QCL,T          ADM0F405.28     
     &,SO2,L_SULPC_SO2                                                     AWO4F401.71     
     &,NH3,L_SULPC_NH3                                                     AWO4F405.135    
     &,SO4_AIT,SO4_ACC,SO4_DIS                                             AWO4F401.72     
     &  ,AGED_SOOT                     !INOUT                              AWO4F405.297    
     &  ,L_SOOT                                                            AWO4F405.298    
     &,AEROSOL,L_MURK,LSRAIN,LSSNOW,LSRAIN3D,LSSNOW3D                      ADM0F405.29     
     &,LSCAV_SO2,LSCAV_SO4AIT,LSCAV_SO4ACC,LSCAV_SO4DIS                    AWO4F401.73     
     &,LSCAV_NH3                                                           AWO4F405.136    
     &  ,LSCAV_AGEDSOOT                !INOUT                              AWO4F405.299    
     &,ERROR                                                               GLSPP_2D.45     
     & )                                                                   GLSPP_2D.46     
      IMPLICIT NONE                                                        GLSPP_2D.47     
!-----------------------------------------------------------------------   GLSPP_2D.48     
! Some of the following variables are dummy, for use in other LS_PPN       GLSPP_2D.49     
! versions.                                                                GLSPP_2D.50     
!-----------------------------------------------------------------------   GLSPP_2D.51     
! IN variables                                                             GLSPP_2D.52     
!-----------------------------------------------------------------------   GLSPP_2D.53     
      INTEGER Q_LEVELS         ! No. of "wet" levels in the model.         GLSPP_2D.54     
!                                                                          GLSPP_2D.55     
      INTEGER POINTS           ! No. of gridpoints being processed.        GLSPP_2D.56     
!                                                                          GLSPP_2D.57     
      INTEGER PFIELD           ! No. of points in global field (at one     GLSPP_2D.58     
!                                vertical level).                          GLSPP_2D.59     
      INTEGER K1STPT           ! First gridpoint processed within          GLSPP_2D.60     
!                                within complete field.                    GLSPP_2D.61     
      INTEGER A_LEVELS         ! No.of aerosol levels used                 APC0F405.788    
      INTEGER LSPICE_DIM1       ! Dimension of dummy LSRAIN3D              ADM0F405.30     
!                                 and LSSNOW3D.                            ADM0F405.31     
      INTEGER LSPICE_DIM2       ! Dimension of dummy LSRAIN3D              ADM0F405.32     
!                                 and LSSNOW3D.                            ADM0F405.33     
      REAL CF(PFIELD,Q_LEVELS) ! Cloud fraction.                           GLSPP_2D.62     
!                                                                          GLSPP_2D.63     
      REAL PSTAR(PFIELD)       ! Surface pressure (Pa).                    GLSPP_2D.64     
!                                                                          GLSPP_2D.65     
      REAL AK(Q_LEVELS)        ! Hybrid co-ordinate for centre of layer.   GLSPP_2D.66     
!                                                                          GLSPP_2D.67     
      REAL BK(Q_LEVELS)        ! Hybrid co-ordinate for centre of layer.   GLSPP_2D.68     
!                                                                          GLSPP_2D.69     
      REAL RHCRIT(Q_LEVELS)    ! Critical humidity for cloud formation.    ADM3F404.8      
!                                                                          ADM3F404.9      
      REAL DUMMY(PFIELD,Q_LEVELS)    ! Dummy variable in this version      ASK1F405.240    
!                                                                          ASK1F405.241    
      REAL DELTA_AK(Q_LEVELS)  ! Change of hybrid co-ord across layer.     GLSPP_2D.70     
!                                (Upper minus lower).                      GLSPP_2D.71     
      REAL DELTA_BK(Q_LEVELS)  ! Change of hybrid co-ord across layer.     GLSPP_2D.72     
!                                (Upper minus lower).                      GLSPP_2D.73     
      REAL LS_GRID_QC(PFIELD,Q_LEVELS)                                     ADM3F404.10     
! WARNING: Input contents of this argument are dependent upon ls cloud     ADM3F404.11     
! scheme chosen,                                                           ADM3F404.12     
! 1A: Grid-box mean cloud condensate at processed levels (kg/ kg air).     ADM3F404.13     
! 2A: Liquid cloud fraction on model levels.                               ADM3F404.14     
! This glue routine is only compatible with the 1A choice.                 ADM3F404.15     
      REAL LS_BS(PFIELD,Q_LEVELS)                                          ADM3F404.16     
! WARNING: Input contents of this argument are dependent upon ls cloud     ADM3F404.17     
! scheme chosen,                                                           ADM3F404.18     
! 1A: Maximum moisture fluctuation /6*sigma on levels (kg per kg air).     ADM3F404.19     
! 2A: Frozen cloud fraction on model levels.                               ADM3F404.20     
! This glue routine is only compatible with the 1A choice.                 ADM3F404.21     
      REAL TIMESTEP            ! Timestep (sec).                           GLSPP_2D.78     
!                                                                          GLSPP_2D.79     
      REAL CW_SEA              ! Threshold cloud liquid water content      GLSPP_2D.80     
!                                over sea for conversion to ppn            GLSPP_2D.81     
!                                (kg water per m**3)                       GLSPP_2D.82     
      REAL CW_LAND             ! Threshold cloud liquid water content      GLSPP_2D.83     
!                                over land for conversion to ppn           GLSPP_2D.84     
!                                (kg water per m**3)                       GLSPP_2D.85     
      LOGICAL BLAND(PFIELD)    ! Land/sea mask                             GLSPP_2D.86     
!                                                                          GLSPP_2D.87     
      LOGICAL L_MURK           ! Aerosol needs scavenging.                 GLSPP_2D.88     
!                                                                          AWO4F401.74     
      LOGICAL L_SULPC_SO2   ! Sulphur Cycle on, tracers to be scavenged    AWO4F401.75     
     &       ,L_SULPC_NH3         ! indicates if NH3 present               AWO4F405.137    
!                                                                          GLSPP_2D.89     
      LOGICAL L_SOOT        ! soot on, tracers to be scavenged             AWO4F405.300    
!                                                                          AWO4F405.301    
      LOGICAL L_DUMMY ! Dummy variable                                     ASK1F405.242    
!                                                                          ASK1F405.243    
!-----------------------------------------------------------------------   GLSPP_2D.90     
! INOUT variables                                                          GLSPP_2D.91     
!-----------------------------------------------------------------------   GLSPP_2D.92     
      REAL Q(PFIELD,Q_LEVELS)        ! Specific humidity                   GLSPP_2D.93     
!                                      (kg water/kg air).                  GLSPP_2D.94     
      REAL QCF(PFIELD,Q_LEVELS)      ! Cloud ice (kg per kg air).          GLSPP_2D.95     
!                                                                          GLSPP_2D.96     
      REAL QCL(PFIELD,Q_LEVELS)      ! Cloud liquid water (kg/ kg air).    GLSPP_2D.97     
!                                                                          GLSPP_2D.98     
      REAL T(PFIELD,Q_LEVELS)        ! Temperature (K).                    GLSPP_2D.99     
!                                                                          GLSPP_2D.100    
      REAL AEROSOL(PFIELD,Q_LEVELS)  ! Aerosol (K).                        GLSPP_2D.101    
      REAL                  ! Sulphur Cycle tracers for wet scavenging     AWO4F401.76     
     &    SO2(PFIELD,Q_LEVELS)                                             AWO4F401.77     
     &    ,NH3(PFIELD,Q_LEVELS)                                            AWO4F405.138    
     &   ,SO4_AIT(PFIELD,Q_LEVELS)                                         AWO4F401.78     
     &   ,SO4_ACC(PFIELD,Q_LEVELS)                                         AWO4F401.79     
     &   ,SO4_DIS(PFIELD,Q_LEVELS)                                         AWO4F401.80     
     &   ,AGED_SOOT(PFIELD,Q_LEVELS)   !INOUT                              AWO4F405.302    
!                                                                          AWO4F401.81     
!                                                                          GLSPP_2D.102    
!-----------------------------------------------------------------------   GLSPP_2D.103    
! OUT variables                                                            GLSPP_2D.104    
!-----------------------------------------------------------------------   GLSPP_2D.105    
      REAL LSRAIN(PFIELD)   ! Surface rainfall rate (kg per sq m per s).   GLSPP_2D.106    
!                                                                          GLSPP_2D.107    
      REAL LSSNOW(PFIELD)   ! Surface snowfall rate (kg per sq m per s).   GLSPP_2D.108    
      REAL LSRAIN3D(LSPICE_DIM1,LSPICE_DIM2) ! Dummy                       ADM0F405.34     
      REAL LSSNOW3D(LSPICE_DIM1,LSPICE_DIM2) ! Dummy                       ADM0F405.35     
      REAL                  ! column totals of scavenged S Cycle tracers   AWO4F401.82     
     &    LSCAV_SO2(PFIELD)                                                AWO4F401.83     
     &    ,LSCAV_NH3(PFIELD)                                               AWO4F405.139    
!                                                                          AWO4F405.140    
     &   ,LSCAV_SO4AIT(PFIELD)                                             AWO4F401.84     
     &   ,LSCAV_SO4ACC(PFIELD)                                             AWO4F401.85     
     &   ,LSCAV_SO4DIS(PFIELD)                                             AWO4F401.86     
     &   ,LSCAV_AGEDSOOT(PFIELD)       !INOUT                              AWO4F405.303    
!                                                                          AWO4F401.87     
!                                                                          GLSPP_2D.109    
      INTEGER ERROR         ! Return code - 0 if OK,                       GLSPP_2D.110    
!                                           1 if bad arguments.            GLSPP_2D.111    
!                                                                          GLSPP_2D.112    
!    External subroutine called ----------------------------------------   GLSPP_2D.113    
      EXTERNAL  LS_PPN                                                     GLSPP_2D.114    
!----------------------------------------------------------------------    GLSPP_2D.115    
!                                                                          GLSPP_2D.116    
      CALL LS_PPN(                                                         GLSPP_2D.117    
! Input data not changed on output                                         GLSPP_2D.118    
     & AK,BK,CF                                                            GLSPP_2D.119    
     &,DELTA_AK,DELTA_BK,PSTAR,TIMESTEP                                    GLSPP_2D.120    
     &,BLAND,CW_SEA,CW_LAND                                                GLSPP_2D.121    
     &,LS_GRID_QC,LS_BS                                                    GLSPP_2D.122    
! Size and control data                                                    GLSPP_2D.123    
     &,Q_LEVELS,PFIELD,POINTS,K1STPT,A_LEVELS                              APC0F405.789    
! Input data changed on output                                             GLSPP_2D.125    
     &,Q,QCF,QCL,T                                                         GLSPP_2D.126    
     &,SO2,L_SULPC_SO2                                                     AWO4F401.88     
     &,NH3,L_SULPC_NH3                                                     AWO4F405.141    
     &,SO4_AIT,SO4_ACC,SO4_DIS                                             AWO4F401.89     
     &   ,AGED_SOOT                    !INOUT                              AWO4F405.304    
     &   ,L_SOOT                                                           AWO4F405.305    
     &,AEROSOL,L_MURK                                                      GLSPP_2D.127    
! Output data                                                              GLSPP_2D.128    
     &,LSRAIN,LSSNOW                                                       GLSPP_2D.129    
     &,LSCAV_SO2,LSCAV_SO4AIT,LSCAV_SO4ACC,LSCAV_SO4DIS                    AWO4F401.90     
     &,LSCAV_NH3                                                           AWO4F405.142    
     &   ,LSCAV_AGEDSOOT               !INOUT                              AWO4F405.306    
     &,ERROR)                                                              GLSPP_2D.130    
!                                                                          GLSPP_2D.131    
      RETURN                                                               GLSPP_2D.132    
      END                                                                  GLSPP_2D.133    
*ENDIF                                                                     GLSPP_2D.134