*IF DEF,A04_2E,OR,DEF,A04_3B                                               ADM0F405.288    
C *****************************COPYRIGHT******************************     SLSPSC1A.3      
C (c) CROWN COPYRIGHT 1996, METEOROLOGICAL OFFICE, All Rights Reserved.    SLSPSC1A.4      
C                                                                          SLSPSC1A.5      
C Use, duplication or disclosure of this code is subject to the            SLSPSC1A.6      
C restrictions as set forth in the contract.                               SLSPSC1A.7      
C                                                                          SLSPSC1A.8      
C                Meteorological Office                                     SLSPSC1A.9      
C                London Road                                               SLSPSC1A.10     
C                BRACKNELL                                                 SLSPSC1A.11     
C                Berkshire UK                                              SLSPSC1A.12     
C                RG12 2SZ                                                  SLSPSC1A.13     
C                                                                          SLSPSC1A.14     
C If no contract has been raised with this copy of the code, the use,      SLSPSC1A.15     
C duplication or disclosure of it is strictly prohibited.  Permission      SLSPSC1A.16     
C to do so must first be obtained in writing from the Head of Numerical    SLSPSC1A.17     
C Modelling at the above address.                                          SLSPSC1A.18     
C ******************************COPYRIGHT******************************    SLSPSC1A.19     
!                                                                          SLSPSC1A.20     
!   SUBROUTINE SLSPSCV ----------------------------------------------      SLSPSC1A.21     
!                                                                          SLSPSC1A.22     
! Purpose: This subroutine carries out wet scavenging of S Cycle tracers   SLSPSC1A.23     
!          assuming   loss rate = cost * ls ppn rate in layer above.       SLSPSC1A.24     
!                                                                          SLSPSC1A.25     
!          Called by LS_PPNC Version 2D if Sulphur Cycle is on.            SLSPSC1A.26     
!                                                                          SLSPSC1A.27     
! Current code owner: M. Woodage                                           SLSPSC1A.28     
!                                                                          SLSPSC1A.29     
! History:                                                                 SLSPSC1A.30     
! Version   Date     Comment                                               SLSPSC1A.31     
! -------   ----     ------                                                SLSPSC1A.32     
!   4.1   06/06/96   Original code            M. Woodage                   SLSPSC1A.33     
!                                                                          SLSPSC1A.34     
! Code description:                                                        SLSPSC1A.35     
!   Language: FORTRAN 77  + common extensions                              SLSPSC1A.36     
!   This code is written to UMDP3 v6 programming standards.                SLSPSC1A.37     
!                                                                          SLSPSC1A.38     
! System Components covered:                                               SLSPSC1A.39     
!                                                                          SLSPSC1A.40     
! System task:                                                             SLSPSC1A.41     
!                                                                          SLSPSC1A.42     
! Documentation:  Not yet available                                        SLSPSC1A.43     
!                                                                          SLSPSC1A.44     
!-------------------------------------------------------------------       SLSPSC1A.45     
!                                                                          SLSPSC1A.46     

      SUBROUTINE SLSPSCV(TRACER,        ! INOUT, S Cycle tracer             12SLSPSC1A.47     
     &                   LSCAV_TR,      ! INOUT, accumulated scavngd tr    SLSPSC1A.48     
     &                   K_RAIN,        ! IN, scavenging coeff for rain    SLSPSC1A.49     
     &                   K_SNOW,        ! IN, scavenging coeff for snow    SLSPSC1A.50     
     &                   RDZ,           ! IN, AIR MASS P.U.AREA OF LAYER   SLSPSC1A.51     
     &                   TSTEP,         ! IN                               SLSPSC1A.52     
     &                   NGPTS,         ! IN, NO. OF GATHERED POINTS       SLSPSC1A.53     
     &                   RAINRATE,      ! IN, LS RAIN IN LAYER ABOVE       SLSPSC1A.54     
     &                   SNOWRATE)      ! IN, LS SNOW IN LAYER ABOVE       SLSPSC1A.55     
!                                                                          SLSPSC1A.56     
      IMPLICIT NONE                                                        SLSPSC1A.57     
!                                                                          SLSPSC1A.58     
      INTEGER NGPTS                ! IN, no points to be processed         SLSPSC1A.59     
!                                                                          SLSPSC1A.60     
      REAL TSTEP                   ! IN, timestep in secs                  SLSPSC1A.61     
      REAL K_RAIN                  ! IN, scav rate const for rain          SLSPSC1A.62     
      REAL K_SNOW                  ! IN, scav rate const for snow          SLSPSC1A.63     
      REAL RDZ(NGPTS)              ! IN, -(DELTA_AK+DELTA_BK*PSTAR)/G      SLSPSC1A.64     
      REAL RAINRATE(NGPTS)         ! IN, rain rate mm/hr=kg/m2/s*3600      SLSPSC1A.65     
      REAL SNOWRATE(NGPTS)         ! IN, snow rate  "                      SLSPSC1A.66     
      REAL TRACER(NGPTS)           ! INOUT, tracer to be scavenged         SLSPSC1A.67     
      REAL LSCAV_TR(NGPTS)         ! INOUT, accumulated scavenged tr       SLSPSC1A.68     
!                                                                          SLSPSC1A.69     
!  Local variables                                                         SLSPSC1A.70     
      INTEGER I,J                   ! LOOP COUNTERS                        SLSPSC1A.71     
!                                                                          SLSPSC1A.72     
      REAL TERMR                    ! local vars to assist calcn           SLSPSC1A.73     
      REAL TERMS                    !                                      SLSPSC1A.74     
      REAL DELTA_TR                 ! tracer increment due to scavnging    SLSPSC1A.75     
      REAL TOTRATE                  ! total LSPPN scavenging rate          SLSPSC1A.76     
      REAL INVTRAT                  ! 1/(1+TOTRATE)                        SLSPSC1A.77     
!                                                                          SLSPSC1A.78     
! Calculate total scavenging rate array                                    SLSPSC1A.79     
!                                                                          SLSPSC1A.80     
      DO I=1,NGPTS                                                         SLSPSC1A.81     
!                                                                          SLSPSC1A.82     
        IF (RAINRATE(I).LE.0.0) THEN      ! Check for negative ppn         SLSPSC1A.83     
          TERMR=0.0                                                        SLSPSC1A.84     
         ELSE                                                              SLSPSC1A.85     
          TERMR=K_RAIN*RAINRATE(I)                                         SLSPSC1A.86     
        ENDIF                                                              SLSPSC1A.87     
!                                                                          SLSPSC1A.88     
        IF (SNOWRATE(I).LE.0.0) THEN                                       SLSPSC1A.89     
          TERMS=0.0                                                        SLSPSC1A.90     
         ELSE                                                              SLSPSC1A.91     
          TERMS=K_SNOW*SNOWRATE(I)                                         SLSPSC1A.92     
        ENDIF                                                              SLSPSC1A.93     
!                                                                          SLSPSC1A.94     
! Calculate TOTRATE, *3600.0 because K_RAIN and K_SNOW values are          SLSPSC1A.95     
!  suitable for ppn rate in mm/hr, but model rates are in kg/m2/s          SLSPSC1A.96     
        TOTRATE=(TERMR+TERMS)*3600.0*TSTEP                                 SLSPSC1A.97     
        INVTRAT=1.0/(1.0+TOTRATE)                                          SLSPSC1A.98     
!                                                                          SLSPSC1A.99     
! Do scavenging                                                            SLSPSC1A.100    
! Calculate proportion of tracer mixing ratio scavenged out                SLSPSC1A.101    
        DELTA_TR=TRACER(I)*(1.0-INVTRAT)                                   SLSPSC1A.102    
!                                                                          SLSPSC1A.103    
! Increment accumulated scavenged tracer in column, multiplying by  RDZ    SLSPSC1A.104    
! to convert mmr to mass per unit area.                                    SLSPSC1A.105    
        LSCAV_TR(I)=LSCAV_TR(I)+DELTA_TR*RDZ(I)                            SLSPSC1A.106    
!                                                                          SLSPSC1A.107    
! Decrement tracer mixing ratio                                            SLSPSC1A.108    
        TRACER(I)=TRACER(I)-DELTA_TR                                       SLSPSC1A.109    
!                                                                          SLSPSC1A.110    
        END DO                             ! END OF I LOOP                 SLSPSC1A.111    
!                                                                          SLSPSC1A.112    
      RETURN                                                               SLSPSC1A.113    
      END                                                                  SLSPSC1A.114    
!                                                                          SLSPSC1A.115    
*ENDIF                                                                     SLSPSC1A.116