*IF DEF,A04_2B,OR,DEF,A04_2C GLSPP_2B.2
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.14963
C GTS2F400.14964
C Use, duplication or disclosure of this code is subject to the GTS2F400.14965
C restrictions as set forth in the contract. GTS2F400.14966
C GTS2F400.14967
C Meteorological Office GTS2F400.14968
C London Road GTS2F400.14969
C BRACKNELL GTS2F400.14970
C Berkshire UK GTS2F400.14971
C RG12 2SZ GTS2F400.14972
C GTS2F400.14973
C If no contract has been raised with this copy of the code, the use, GTS2F400.14974
C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.14975
C to do so must first be obtained in writing from the Head of Numerical GTS2F400.14976
C Modelling at the above address. GTS2F400.14977
C ******************************COPYRIGHT****************************** GTS2F400.14978
C GTS2F400.14979
! SUBROUTINE GLUE_LSPP------------------------------------------------ GLSPP_2B.3
! GLSPP_2B.4
! Level 3 control routine GLSPP_2B.5
! GLSPP_2B.6
! Purpose: Calculate large-scale (dynamical) precipitation. LS_PPNC is GLSPP_2B.7
! the gather/scatter routine which then calls LSP_EVAP, GLSPP_2B.8
! LSP_FRMT,LSP_FORM. GLSPP_2B.9
! GLUE is an extra level of control routine to avoid using GLSPP_2B.10
! *IF DEF around calls to different LS_PPN versions, as per GLSPP_2B.11
! S. Foreman's 22/8/94 proposal for plug compatibility. GLSPP_2B.12
! GLSPP_2B.13
! A04_2B : Change to LSP_EVAP, fpl = 0. GLSPP_2B.14
! A04_2C : Change to LSP_EVAP, fpl = 1. GLSPP_2B.15
! GLSPP_2B.16
! Called by : LSPP_CTL1 GLSPP_2B.17
! GLSPP_2B.18
! Code description: Language FORTRAN 77 + extensions. GLSPP_2B.19
! GLSPP_2B.20
! Programming standard: Unified Model Documentation Paper No 3, GLSPP_2B.21
! Version 6. GLSPP_2B.22
! GLSPP_2B.23
! Author: Andrew Bushell Reviewer: C. Wilson GLSPP_2B.24
! GLSPP_2B.25
! Modification History from UM Version 4.0: GLSPP_2B.26
! Version Date GLSPP_2B.27
! GLSPP_2B.28
! 4.1 06/06/96 Add Sulphur Cycle tracers for wet scavenging in AWO4F401.91
! Version 2D of LS_PPN M. Woodage AWO4F401.92
! 4.4 08/09/97 Add RHCRIT argument D.Wilson ADM3F404.22
! 4.5 03/09/98 Added dummy 3D rain and snow variables. D.Wilson ADM0F405.16
! 4.5 28/09/98 Add NH3 and soot variables to argument list ADM0F405.17
! (dummies as S Cycle and soot not in A04_2B) MJW ADM0F405.18
! 4.5 01/05/98 Restrict murk aerosol calculations to aerosol APC0F405.773
! levels=boundary levels. P.Clark APC0F405.774
! 4.5 13/05/98 Altered call to glue routine (dummy variables). ASK1F405.244
! S. Cusack ASK1F405.245
! GLSPP_2B.29
! System components covered : GLSPP_2B.30
! GLSPP_2B.31
! System task : GLSPP_2B.32
! GLSPP_2B.33
! Documentation: UMDP No. GLSPP_2B.34
! GLSPP_2B.35
! END ----------------------------------------------------------------- GLSPP_2B.36
! GLSPP_2B.37
SUBROUTINE GLUE_LSPP( 2,3GLSPP_2B.38
& AK,BK,CF,DELTA_AK,DELTA_BK,PSTAR,TIMESTEP GLSPP_2B.39
&,BLAND,CW_SEA,CW_LAND GLSPP_2B.40
&,LS_GRID_QC,LS_BS GLSPP_2B.41
&,RHCRIT,DUMMY, L_DUMMY ASK1F405.246
&,Q_LEVELS,PFIELD GLSPP_2B.42
&,POINTS,K1STPT,LSPICE_DIM1,LSPICE_DIM2,A_LEVELS,Q,QCF,QCL,T ADM0F405.19
&,SO2,L_SULPC_SO2 AWO4F401.93
& ,NH3,L_SULPC_NH3 AWO4F405.122
&,SO4_AIT,SO4_ACC,SO4_DIS AWO4F401.94
& ,AGED_SOOT,L_SOOT AWO4F405.123
&,AEROSOL,L_MURK,LSRAIN,LSSNOW,LSRAIN3D,LSSNOW3D ADM0F405.20
&,LSCAV_SO2,LSCAV_SO4AIT,LSCAV_SO4ACC,LSCAV_SO4DIS AWO4F401.95
& ,LSCAV_NH3,LSCAV_AGEDSOOT AWO4F405.124
&,ERROR GLSPP_2B.45
& ) GLSPP_2B.46
IMPLICIT NONE GLSPP_2B.47
!----------------------------------------------------------------------- GLSPP_2B.48
! Some of the following variables are dummy, for use in other LS_PPN GLSPP_2B.49
! versions. GLSPP_2B.50
!----------------------------------------------------------------------- GLSPP_2B.51
! IN variables GLSPP_2B.52
!----------------------------------------------------------------------- GLSPP_2B.53
INTEGER Q_LEVELS ! No. of "wet" levels in the model. GLSPP_2B.54
! GLSPP_2B.55
INTEGER POINTS ! No. of gridpoints being processed. GLSPP_2B.56
! GLSPP_2B.57
INTEGER PFIELD ! No. of points in global field (at one GLSPP_2B.58
! vertical level). GLSPP_2B.59
INTEGER K1STPT ! First gridpoint processed within GLSPP_2B.60
! within complete field. GLSPP_2B.61
INTEGER A_LEVELS ! No.of aerosol levels used APC0F405.775
INTEGER LSPICE_DIM1 ! Dimension of dummy LSRAIN3D ADM0F405.21
! and LSSNOW3D. ADM0F405.22
INTEGER LSPICE_DIM2 ! Dimension of dummy LSRAIN3D ADM0F405.23
! and LSSNOW3D. ADM0F405.24
REAL CF(PFIELD,Q_LEVELS) ! Cloud fraction. GLSPP_2B.62
! GLSPP_2B.63
REAL PSTAR(PFIELD) ! Surface pressure (Pa). GLSPP_2B.64
! GLSPP_2B.65
REAL AK(Q_LEVELS) ! Hybrid co-ordinate for centre of layer. GLSPP_2B.66
! GLSPP_2B.67
REAL BK(Q_LEVELS) ! Hybrid co-ordinate for centre of layer. GLSPP_2B.68
! GLSPP_2B.69
REAL RHCRIT(Q_LEVELS) ! Critical humidity for cloud formation. ADM3F404.24
! ADM3F404.25
REAL DUMMY(PFIELD,Q_LEVELS) ! Dummy variable in this version ASK1F405.247
! ASK1F405.248
REAL DELTA_AK(Q_LEVELS) ! Change of hybrid co-ord across layer. GLSPP_2B.70
! (Upper minus lower). GLSPP_2B.71
REAL DELTA_BK(Q_LEVELS) ! Change of hybrid co-ord across layer. GLSPP_2B.72
! (Upper minus lower). GLSPP_2B.73
REAL LS_GRID_QC(PFIELD,Q_LEVELS) ! DUMMY VARIABLE. GLSPP_2B.74
REAL LS_BS(PFIELD,Q_LEVELS) ! DUMMY VARIABLE. GLSPP_2B.75
! GLSPP_2B.76
REAL TIMESTEP ! Timestep (sec). GLSPP_2B.77
! GLSPP_2B.78
REAL CW_SEA ! Threshold cloud liquid water content GLSPP_2B.79
! over sea for conversion to ppn GLSPP_2B.80
! (kg water per m**3) GLSPP_2B.81
REAL CW_LAND ! Threshold cloud liquid water content GLSPP_2B.82
! over land for conversion to ppn GLSPP_2B.83
! (kg water per m**3) GLSPP_2B.84
LOGICAL BLAND(PFIELD) ! Land/sea mask GLSPP_2B.85
! GLSPP_2B.86
LOGICAL L_MURK ! Aerosol needs scavenging. GLSPP_2B.87
! GLSPP_2B.88
! AWO4F401.96
LOGICAL L_SULPC_SO2 ! Sulphur Cycle on, tracers to be scavenged AWO4F401.97
& ,L_SULPC_NH3 AWO4F405.125
& ,L_SOOT AWO4F405.126
AWO4F401.98
LOGICAL L_DUMMY ! Dummy variable ASK1F405.249
! ASK1F405.250
!----------------------------------------------------------------------- GLSPP_2B.89
! INOUT variables GLSPP_2B.90
!----------------------------------------------------------------------- GLSPP_2B.91
REAL Q(PFIELD,Q_LEVELS) ! Specific humidity GLSPP_2B.92
! (kg water/kg air). GLSPP_2B.93
REAL QCF(PFIELD,Q_LEVELS) ! Cloud ice (kg per kg air). GLSPP_2B.94
! GLSPP_2B.95
REAL QCL(PFIELD,Q_LEVELS) ! Cloud liquid water (kg/ kg air). GLSPP_2B.96
! GLSPP_2B.97
REAL T(PFIELD,Q_LEVELS) ! Temperature (K). GLSPP_2B.98
! GLSPP_2B.99
REAL AEROSOL(PFIELD,Q_LEVELS) ! Aerosol (K). GLSPP_2B.100
! GLSPP_2B.101
REAL ! Sulphur Cycle tracers for wet scavenging AWO4F401.99
& SO2(PFIELD,Q_LEVELS) AWO4F401.100
& ,SO4_AIT(PFIELD,Q_LEVELS) AWO4F401.101
& ,SO4_ACC(PFIELD,Q_LEVELS) AWO4F401.102
& ,SO4_DIS(PFIELD,Q_LEVELS) AWO4F401.103
& ,NH3(PFIELD,Q_LEVELS) AWO4F405.127
& ,AGED_SOOT(PFIELD,Q_LEVELS) AWO4F405.128
! AWO4F401.104
!----------------------------------------------------------------------- GLSPP_2B.102
! OUT variables GLSPP_2B.103
!----------------------------------------------------------------------- GLSPP_2B.104
REAL LSRAIN(PFIELD) ! Surface rainfall rate (kg per sq m per s). GLSPP_2B.105
! GLSPP_2B.106
REAL LSSNOW(PFIELD) ! Surface snowfall rate (kg per sq m per s). GLSPP_2B.107
REAL LSRAIN3D(LSPICE_DIM1,LSPICE_DIM2) ! Dummy ADM0F405.25
REAL LSSNOW3D(LSPICE_DIM1,LSPICE_DIM2) ! Dummy ADM0F405.26
! GLSPP_2B.108
REAL ! column totals of scavenged S Cycle tracers AWO4F401.105
& LSCAV_SO2(PFIELD) AWO4F401.106
& ,LSCAV_SO4AIT(PFIELD) AWO4F401.107
& ,LSCAV_SO4ACC(PFIELD) AWO4F401.108
& ,LSCAV_SO4DIS(PFIELD) AWO4F401.109
& ,LSCAV_NH3(PFIELD) AWO4F405.129
& ,LSCAV_AGEDSOOT(PFIELD) AWO4F405.130
! AWO4F401.110
INTEGER ERROR ! Return code - 0 if OK, GLSPP_2B.109
! 1 if bad arguments. GLSPP_2B.110
! GLSPP_2B.111
! External subroutine called ---------------------------------------- GLSPP_2B.112
EXTERNAL LS_PPN GLSPP_2B.113
!---------------------------------------------------------------------- GLSPP_2B.114
! GLSPP_2B.115
CALL LS_PPN
( GLSPP_2B.116
! Input data not changed on output GLSPP_2B.117
& AK,BK,CF GLSPP_2B.118
&,DELTA_AK,DELTA_BK,PSTAR,TIMESTEP GLSPP_2B.119
&,BLAND,CW_SEA,CW_LAND GLSPP_2B.120
! Size and control data GLSPP_2B.121
&,Q_LEVELS,PFIELD,POINTS,K1STPT,A_LEVELS APC0F405.776
! Input data changed on output GLSPP_2B.123
&,Q,QCF,QCL,T GLSPP_2B.124
&,AEROSOL,L_MURK GLSPP_2B.125
! Output data GLSPP_2B.126
&,LSRAIN,LSSNOW GLSPP_2B.127
&,ERROR) GLSPP_2B.128
! GLSPP_2B.129
RETURN GLSPP_2B.130
END GLSPP_2B.131
*ENDIF GLSPP_2B.132