*IF DEF,CONTROL,AND,DEF,ATMOS                                              CHEMCTL1.2      
!    Subroutine CHEM_CTL---------------------------------------------      CHEMCTL1.3      
!                                                                          CHEMCTL1.4      
! Purpose: To perform oxidation chemistry of sulphur dioxide to 3 modes    CHEMCTL1.5      
!          of Sulphate aerosol (Aitken, accumulation and dissolved),       CHEMCTL1.6      
!          and dimethyl sulphide to sulphur dioxide and methyl sulphonic   CHEMCTL1.7      
!          acid.                                                           CHEMCTL1.8      
!                                                                          CHEMCTL1.9      
! Level 2 control routine                                                  CHEMCTL1.10     
!                                                                          CHEMCTL1.11     
! Current owners of code:                M J Woodage                       CHEMCTL1.12     
!                                                                          CHEMCTL1.13     
! History:                                                                 CHEMCTL1.14     
! Version     Date     Comment                                             CHEMCTL1.15     
! -------     ----     -------                                             CHEMCTL1.16     
!  4.1      10/06/96   Original code                     M J Woodage       CHEMCTL1.17     
!                                                                          CHEMCTL1.18     
!  4.4    03/10/07     Add code for settlement of SO4 particles            AWO2F404.1      
!                                              (M Woodage, S Woodward)     AWO2F404.2      
!                                                                          ALR2F405.4      
!   4.5  26/05/98   Call new routine NEW2OLD to convert fresh to aged      ALR2F405.5      
!                   soot and SOOTSCAV to perform nucleation scavenging     ALR2F405.6      
!                   of aged soot.                   Luke Robinson.         ALR2F405.7      
! Code Description:                                                        CHEMCTL1.19     
!  Language: FORTRAN77 + common extensions                                 CHEMCTL1.20     
!  This code is written to UMDP3 v6 programming standards                  CHEMCTL1.21     
!                                                                          CHEMCTL1.22     
! System components covered:                                               CHEMCTL1.23     
!                                                                          CHEMCTL1.24     
! System task:                                                             CHEMCTL1.25     
!                                                                          CHEMCTL1.26     
! Documentation: Not yet available                                         CHEMCTL1.27     
!                                                                          CHEMCTL1.28     
!-----------------------------------------------------------------         CHEMCTL1.29     
!                                                                          CHEMCTL1.30     

      SUBROUTINE CHEM_CTL(CLOUDF,                                           1,8CHEMCTL1.31     
     &                DMS_LEN,                                             CHEMCTL1.32     
     &                Q_LEVELSDA,P_LEVELSDA,P_FIELDDA,ROW_LENGTHDA,        CHEMCTL1.33     
     &                COSZA2D,INT17,                                       CHEMCTL1.34     
*CALL ARGSIZE                                                              CHEMCTL1.35     
*CALL ARGD1                                                                CHEMCTL1.36     
*CALL ARGDUMA                                                              CHEMCTL1.37     
*CALL ARGDUMO                                                              CHEMCTL1.38     
*CALL ARGSTS                                                               CHEMCTL1.39     
*CALL ARGPTRA                                                              CHEMCTL1.40     
*CALL ARGPTRO                                                              CHEMCTL1.41     
*CALL ARGCONA                                                              CHEMCTL1.42     
*CALL ARGPPX                                                               CHEMCTL1.43     
*CALL ARGFLDPT                                                             CHEMCTL1.44     
     &              ICODE,CMESSAGE)                                        CHEMCTL1.45     
!                                                                          CHEMCTL1.46     
      IMPLICIT NONE                                                        CHEMCTL1.47     
!                                                                          CHEMCTL1.48     
*CALL CMAXSIZE                                                             CHEMCTL1.49     
*CALL CSUBMODL                                                             CHEMCTL1.50     
*CALL TYPSIZE                                                              CHEMCTL1.51     
*CALL TYPD1                                                                CHEMCTL1.52     
*CALL TYPDUMA                                                              CHEMCTL1.53     
*CALL TYPDUMO                                                              CHEMCTL1.54     
*CALL TYPSTS                                                               CHEMCTL1.55     
*CALL TYPPTRA                                                              CHEMCTL1.56     
*CALL TYPPTRO                                                              CHEMCTL1.57     
*CALL TYPCONA                                                              CHEMCTL1.58     
*CALL TYPFLDPT                                                             CHEMCTL1.59     
*CALL PPXLOOK                                                              CHEMCTL1.60     
!                                                                          CHEMCTL1.61     
      INTEGER                                                              CHEMCTL1.62     
     &        DMS_LEN,         !IN length of dimethyl sulphide array       CHEMCTL1.63     
     &        Q_LEVELSDA,      !IN no. of wet levels                       CHEMCTL1.64     
     &        P_LEVELSDA,      !IN no. of pressure levels                  CHEMCTL1.65     
     &        P_FIELDDA,       !IN no. of pts in 2_D field                 CHEMCTL1.66     
     &        ROW_LENGTHDA,    !IN no. of pts in a row                     CHEMCTL1.67     
     &        INT17            !IN dummy for STASH_MAXLEN(17)              CHEMCTL1.68     
      INTEGER ICODE            !OUT  Return code ( >0 for ERROR)           CHEMCTL1.69     
!                                                                          CHEMCTL1.70     
      REAL CLOUDF(P_FIELDDA*Q_LEVELSDA),   !IN  cloud fraction (0-1)       CHEMCTL1.71     
     &     COSZA2D(P_FIELDDA)              !IN  cos(zenith angle)          CHEMCTL1.72     
!                                                                          CHEMCTL1.73     
      CHARACTER*80 CMESSAGE    !OUT Error message                          CHEMCTL1.74     
!                                                                          CHEMCTL1.75     
! Include COMDECKS                                                         CHEMCTL1.76     
!                                                                          CHEMCTL1.77     
*IF DEF,MPP                                                                CHEMCTL1.78     
! Parameters and Common blocks                                             CHEMCTL1.79     
*CALL PARVARS                                                              CHEMCTL1.80     
*ENDIF                                                                     CHEMCTL1.81     
*CALL CHSUNITS                                                             CHEMCTL1.82     
*CALL CCONTROL                                                             CHEMCTL1.83     
*CALL CHISTORY                                                             CHEMCTL1.84     
*CALL CRUNTIMC                                                             CHEMCTL1.85     
*CALL CTIME                                                                CHEMCTL1.86     
*CALL C_SULCHM                                                             AWO2F404.3      
!                                                                          CHEMCTL1.87     
!  External subroutines called                                             CHEMCTL1.88     
      EXTERNAL GRAVSETT, SULPHUR, NEW2OLD, SOOTSCAV                        ALR2F405.8      
!                                                                          AWO2F404.5      
!                                                                          CHEMCTL1.90     
! Local variables                                                          CHEMCTL1.91     
!                                                                          CHEMCTL1.92     
      INTEGER I,J,K           ! loop variables                             CHEMCTL1.93     
      INTEGER FIRST_POINT,    ! First and last pts on which calcns done    CHEMCTL1.94     
     &        LAST_POINT      !  (omits N and S polar rows)                CHEMCTL1.95     
      INTEGER                                                              CHEMCTL1.96     
     &        NPNTS,          ! no. of pts in 3D array on P LEVS           CHEMCTL1.97     
     &        QPNTS           ! no. of pts in 3D array on Q LEVS           CHEMCTL1.98     
!                                                                          CHEMCTL1.99     
      REAL CHEMSTEP                    ! chemistry timestep                CHEMCTL1.100    
!                                                                          CHEMCTL1.101    
!  Dynamically allocated space                                             CHEMCTL1.102    
!                                                                          CHEMCTL1.103    
      REAL DMS(P_FIELDDA*P_LEVELSDA),  ! filled dimethyl sulphide array    CHEMCTL1.104    
     &     PAML(P_FIELDDA*P_LEVELSDA)  ! pressure at model level           CHEMCTL1.105    
      REAL  O3(P_FIELDDA*P_LEVELSDA),   ! 3_D ozone field                  AWO6F405.5      
     &     NH3(P_FIELDDA*P_LEVELSDA),   ! 3_D NH3 field                    AWO6F405.6      
     & NH3_DEP(P_FIELDDA*P_LEVELSDA)    ! NH3 depleted by buffering        AWO6F405.7      
      REAL MSA(P_FIELDDA*P_LEVELSDA),  ! Methyl sulphonic acid             CHEMCTL1.106    
     &     STASHWORK(INT17)            ! for STASH processing              CHEMCTL1.107    
!                                                                          AWO2F404.6      
      REAL SETTDEP(P_FIELDDA)    ! settlement depn flux from lev 2         AWO2F404.7      
!                                                                          CHEMCTL1.108    
!                                                                          CHEMCTL1.109    
      FIRST_POINT = START_POINT_NO_HALO                                    CHEMCTL1.110    
      LAST_POINT  = END_P_POINT_NO_HALO                                    CHEMCTL1.111    
!                                                                          CHEMCTL1.112    
      NPNTS=P_FIELDDA*P_LEVELSDA                                           CHEMCTL1.113    
      QPNTS=P_FIELDDA*Q_LEVELSDA                                           CHEMCTL1.114    
!                                                                          ALR2F405.9      
      IF (L_SULPC_SO2) THEN                                                ALR2F405.10     
!                                                                          AWO2F404.8      
!  Call routine GRAVSETT to do settlement of Aitken and accumulation       AWO2F404.9      
!  mode sulphate particles                                                 AWO2F404.10     
!                                                                          AWO2F404.11     
        CALL GRAVSETT(                                                     AWO2F404.12     
     &  P_FIELD,P_LEVELS,D1(JSO4_AITKEN(1))                                AWO2F404.13     
     &  ,DIAM_AIT,RHO_SO4,D1(JPSTAR),A_LEVDEPC(JAK),A_LEVDEPC(JBK)         AWO2F404.14     
     &  ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK),D1(JTHETA(1))           AWO2F404.15     
     &  ,FIRST_POINT,LAST_POINT                                            AWO2F404.16     
     &  ,SECS_PER_STEPim(atmos_im),SETTDEP)                                AWO2F404.17     
!                                                                          AWO2F404.18     
!                                                                          AWO6F405.8      
       IF (SF(201,17)) THEN     ! write depn flux for SO4 AIT to stash     AWO6F405.9      
         CALL COPYDIAG(                                                    AWO6F405.10     
     &          STASHWORK(SI(201,17,internal_model_index(atmos_im))),      AWO6F405.11     
     &                 SETTDEP,                                            AWO6F405.12     
     &                 FIRST_POINT,LAST_POINT,                             AWO6F405.13     
     &                 P_FIELD,ROW_LENGTH,                                 AWO6F405.14     
     &                 atmos_im,17,201,                                    AWO6F405.15     
*CALL ARGPPX                                                               AWO6F405.16     
     &              ICODE,CMESSAGE)                                        AWO6F405.17     
       ENDIF                                                               AWO6F405.18     
!                                                                          AWO6F405.19     
!                                                                          AWO2F404.19     
        CALL GRAVSETT(                                                     AWO2F404.20     
     &  P_FIELD,P_LEVELS,D1(JSO4_ACCU(1))                                  AWO2F404.21     
     &  ,DIAM_ACC,RHO_SO4,D1(JPSTAR),A_LEVDEPC(JAK),A_LEVDEPC(JBK)         AWO2F404.22     
     &  ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK),D1(JTHETA(1))           AWO2F404.23     
     &  ,FIRST_POINT,LAST_POINT                                            AWO2F404.24     
     &  ,SECS_PER_STEPim(atmos_im),SETTDEP)                                AWO2F404.25     
!                                                                          AWO2F404.26     
!                                                                          AWO6F405.20     
       IF (SF(202,17)) THEN     ! write depn flux for SO4 ACC to stash     AWO6F405.21     
         CALL COPYDIAG(                                                    AWO6F405.22     
     &          STASHWORK(SI(202,17,internal_model_index(atmos_im))),      AWO6F405.23     
     &                 SETTDEP,                                            AWO6F405.24     
     &                 FIRST_POINT,LAST_POINT,                             AWO6F405.25     
     &                 P_FIELD,ROW_LENGTH,                                 AWO6F405.26     
     &                 atmos_im,17,202,                                    AWO6F405.27     
*CALL ARGPPX                                                               AWO6F405.28     
     &              ICODE,CMESSAGE)                                        AWO6F405.29     
       ENDIF                                                               AWO6F405.30     
!                                                                          AWO6F405.31     
!                                                                          AWO2F404.27     
!                                                                          CHEMCTL1.115    
!   Calculate pressure at model level for use in SULPHUR                   CHEMCTL1.116    
      DO K=1,P_LEVELSDA                                                    CHEMCTL1.117    
        DO I=FIRST_POINT,LAST_POINT                                        CHEMCTL1.118    
        PAML((K-1)*P_FIELDDA+I)=A_LEVDEPC(JAK+K-1)+                        CHEMCTL1.119    
     &                          A_LEVDEPC(JBK+K-1)*D1(JPSTAR+I-1)          CHEMCTL1.120    
        END DO                                                             CHEMCTL1.121    
      END DO                                                               CHEMCTL1.122    
!                                                                          CHEMCTL1.123    
      ENDIF  ! L_SULPC_SO2                                                 ALR2F405.11     
!                                                                          ALR2F405.12     
!  Fill DMS array for passing to SULPHATE                                  CHEMCTL1.124    
      IF (L_SULPC_DMS)  THEN                                               CHEMCTL1.125    
!                                                                          CHEMCTL1.126    
        IF (DMS_LEN.EQ.NPNTS) THEN                                         CHEMCTL1.127    
          DO J=1,NPNTS-P_FIELDDA+1,P_FIELDDA                               CHEMCTL1.128    
            DO I=FIRST_POINT,LAST_POINT                                    CHEMCTL1.129    
            K=I+J-1                                                        CHEMCTL1.130    
            DMS(K)=D1(JDMS(1)+K-1)        ! Fill DMS from values in D1     CHEMCTL1.131    
            END DO                                                         CHEMCTL1.132    
          END DO                                                           CHEMCTL1.133    
        ELSE                                                               CHEMCTL1.134    
          ICODE=1                                                          CHEMCTL1.135    
          CMESSAGE='DMS_LEN.NE.NPNTS FOR DMS=T, CANNOT CALL SULPHATE'      CHEMCTL1.136    
          RETURN                                                           CHEMCTL1.137    
        END IF                                                             CHEMCTL1.138    
!                                                                          CHEMCTL1.139    
      ELSE                                                                 CHEMCTL1.140    
         DO J=1,NPNTS-P_FIELDDA+1,P_FIELDDA                                CHEMCTL1.141    
           DO I=FIRST_POINT,LAST_POINT                                     CHEMCTL1.142    
           K=I+J-1                                                         CHEMCTL1.143    
           DMS(K)=0.0                    ! Fill DMS array with zeros       CHEMCTL1.144    
           END DO                                                          CHEMCTL1.145    
         END DO                                                            CHEMCTL1.146    
!                                                                          CHEMCTL1.147    
      END IF               ! END L_SULPC_DMS IF                            CHEMCTL1.148    
!  Fill O3 and NH3 arrays for passing to SULPHUR                           AWO6F405.32     
!                                                                          AWO6F405.33     
      IF (L_SULPC_OZONE)  THEN                                             AWO6F405.34     
!                                                                          AWO6F405.35     
         DO J=1,NPNTS-P_FIELDDA+1,P_FIELDDA                                AWO6F405.36     
            DO I=FIRST_POINT,LAST_POINT                                    AWO6F405.37     
            K=I+J-1                                                        AWO6F405.38     
            O3(K)=D1(JO3_CHEM(1)+K-1)     ! Fill O3 from values in D1      AWO6F405.39     
            END DO                                                         AWO6F405.40     
          END DO                                                           AWO6F405.41     
      ELSE                                                                 AWO6F405.42     
         DO J=1,NPNTS-P_FIELDDA+1,P_FIELDDA                                AWO6F405.43     
           DO I=FIRST_POINT,LAST_POINT                                     AWO6F405.44     
           K=I+J-1                                                         AWO6F405.45     
           O3(K)=0.0                      ! Fill O3 array with zeros       AWO6F405.46     
           END DO                                                          AWO6F405.47     
         END DO                                                            AWO6F405.48     
!                                                                          AWO6F405.49     
      END IF               ! END L_SULPC_OZONE condition                   AWO6F405.50     
!                                                                          AWO6F405.51     
      IF (L_SULPC_NH3)  THEN                                               AWO6F405.52     
!                                                                          AWO6F405.53     
         DO J=1,NPNTS-P_FIELDDA+1,P_FIELDDA                                AWO6F405.54     
            DO I=FIRST_POINT,LAST_POINT                                    AWO6F405.55     
            K=I+J-1                                                        AWO6F405.56     
            NH3(K)=D1(JNH3(1)+K-1)       ! Fill NH3 from values in D1      AWO6F405.57     
            END DO                                                         AWO6F405.58     
          END DO                                                           AWO6F405.59     
      ELSE                                                                 AWO6F405.60     
         DO J=1,NPNTS-P_FIELDDA+1,P_FIELDDA                                AWO6F405.61     
           DO I=FIRST_POINT,LAST_POINT                                     AWO6F405.62     
           K=I+J-1                                                         AWO6F405.63     
           NH3(K)=0.0                     ! Fill NH3 array with zeros      AWO6F405.64     
           END DO                                                          AWO6F405.65     
         END DO                                                            AWO6F405.66     
!                                                                          AWO6F405.67     
      END IF               ! END L_SULPC_NH3 condition                     AWO6F405.68     
!                                                                          AWO6F405.69     
!                                                                          CHEMCTL1.149    
!    Call routine SULPHUR to do sulphur chemistry, in-cloud scavenging     CHEMCTL1.150    
!    and production of accumulation mode aerosol by evaporation of         CHEMCTL1.151    
!    cloud droplets.                                                       CHEMCTL1.152    
!    Routine may be called several times per physics timestep              CHEMCTL1.153    
!                                                                          CHEMCTL1.154    
      CHEMSTEP=SECS_PER_STEPim(atmos_im)/CALL_CHEM_FREQ                    CHEMCTL1.155    
!                                                                          CHEMCTL1.156    
      DO I=1,CALL_CHEM_FREQ                                                CHEMCTL1.157    
!                                                                          CHEMCTL1.158    
      IF ( L_SULPC_SO2 ) THEN                                              ALR2F405.13     
      CALL SULPHUR(D1(JSO2(1)),                                            CHEMCTL1.159    
     &             D1(JSO4_AITKEN(1)),                                     CHEMCTL1.160    
     &             D1(JSO4_ACCU(1)),                                       CHEMCTL1.161    
     &             D1(JSO4_DISS(1)),                                       CHEMCTL1.162    
     &            NH3,NH3_DEP,O3,L_SULPC_OZONE,                            AWO6F405.70     
     &            DMS,                                                     AWO1F403.1      
     &             D1(JH2O2(1)),                                           CHEMCTL1.164    
     &             CLOUDF,                                                 CHEMCTL1.165    
     &             NPNTS,QPNTS,P_FIELDDA,CHEMSTEP,                         CHEMCTL1.166    
     &             D1(JQCL(1)),D1(JQCF(1)),                                CHEMCTL1.167    
     &             D1(JLAND),                                              CHEMCTL1.168    
     &             COSZA2D,                                                CHEMCTL1.169    
     &             PAML,                                                   CHEMCTL1.170    
     &             D1(JTHETA(1)),            ! Temperature (not theta)     CHEMCTL1.171    
     &             D1(JQ(1)),                                              CHEMCTL1.172    
     &             D1(JOH(1)),D1(JH2O2_LIMIT(1)),D1(JHO2(1)),              CHEMCTL1.173    
     &             FIRST_POINT,LAST_POINT,                                 CHEMCTL1.174    
     &             MSA,L_SULPC_DMS)                                        CHEMCTL1.175    
!                                                                          CHEMCTL1.176    
      ENDIF ! Test on L_SULPC_SO2                                          ALR2F405.14     
                                                                           ALR2F405.15     
      IF (L_SOOT) THEN  ! Call the routines to convert fresh to aged       ALR2F405.16     
                        ! soot and to scavenge some aged soot within       ALR2F405.17     
                        ! cloud droplets.                                  ALR2F405.18     
!                                                                          ALR2F405.19     
      CALL NEW2OLD(NPNTS,                                                  ALR2F405.20     
     &             FIRST_POINT,                                            ALR2F405.21     
     &             LAST_POINT,                                             ALR2F405.22     
     &             P_FIELD,                                                ALR2F405.23     
     &             D1(JSOOT_NEW(1)),                                       ALR2F405.24     
     &             D1(JSOOT_AGD(1)),                                       ALR2F405.25     
     &             SECS_PER_STEPim(atmos_im))                              ALR2F405.26     
!                                                                          ALR2F405.27     
      CALL SOOTSCAV(                                                       ALR2F405.28     
     &             D1(JSOOT_AGD(1)),                                       ALR2F405.29     
     &             D1(JSOOT_CLD(1)),                                       ALR2F405.30     
     &             CLOUDF,                       ! Cloud fraction          ALR2F405.31     
     &             NPNTS,QPNTS,P_FIELD,                                    ALR2F405.32     
     &             SECS_PER_STEPim(atmos_im),                              ALR2F405.33     
     &             D1(JQCL(1)),D1(JQCF(1)),                                ALR2F405.34     
     &             FIRST_POINT,LAST_POINT                                  ALR2F405.35     
     &             )                                                       ALR2F405.36     
!                                                                          ALR2F405.37     
      ENDIF ! L_SOOT test                                                  ALR2F405.38     
      END DO                                                               CHEMCTL1.177    
!                                                                          CHEMCTL1.178    
!  Read DMS values back to D1 array  if DMS=T                              CHEMCTL1.179    
!                                                                          CHEMCTL1.180    
      IF (L_SULPC_DMS) THEN                                                CHEMCTL1.181    
        DO J=1,NPNTS-P_FIELDDA+1,P_FIELDDA                                 CHEMCTL1.182    
          DO I=FIRST_POINT,LAST_POINT                                      CHEMCTL1.183    
          K=I+J-1                                                          CHEMCTL1.184    
          D1(JDMS(1)+K-1)=DMS(K)                                           CHEMCTL1.185    
          END DO                                                           CHEMCTL1.186    
        END DO                                                             CHEMCTL1.187    
      END IF                                                               CHEMCTL1.188    
!                                                                          AWO6F405.71     
!  Read NH3 values back into D1 array if L_SULPC_NH3                       AWO6F405.72     
!  (O3 is unchanged so need not be read back to D1)                        AWO6F405.73     
!                                                                          AWO6F405.74     
      IF (L_SULPC_NH3) THEN                                                AWO6F405.75     
        DO J=1,NPNTS-P_FIELDDA+1,P_FIELDDA                                 AWO6F405.76     
          DO I=FIRST_POINT,LAST_POINT                                      AWO6F405.77     
          K=I+J-1                                                          AWO6F405.78     
          D1(JNH3(1)+K-1)=NH3(K)                                           AWO6F405.79     
          END DO                                                           AWO6F405.80     
        END DO                                                             AWO6F405.81     
      END IF                                                               AWO6F405.82     
!                                                                          AWO6F405.83     
!                                                                          AWO6F405.84     
! Write MSA to STASH if DMS included                                       AWO6F405.85     
      IF (L_SULPC_DMS) THEN                                                AWO6F405.86     
!                                                                          AWO6F405.87     
      IF (SF(203,17)) THEN                                                 AWO6F405.88     
!                                                                          AWO6F405.89     
        DO J=1,NPNTS-P_FIELDDA+1,P_FIELDDA                                 AWO6F405.90     
          DO I=FIRST_POINT,LAST_POINT                                      AWO6F405.91     
          K=I+J-1                                                          AWO6F405.92     
       STASHWORK(SI(203,17,internal_model_index(atmos_im))+K-1)=MSA(K)     AWO6F405.93     
          END DO                                                           AWO6F405.94     
        END DO                                                             AWO6F405.95     
!                                                                          AWO6F405.96     
! Copy FIRST_POINT values to unfilled locations                            AWO6F405.97     
        DO J=1,NPNTS-P_FIELDDA+1,P_FIELDDA                                 AWO6F405.98     
          DO I=1,FIRST_POINT                                               AWO6F405.99     
          K=I+J-1                                                          AWO6F405.100    
       STASHWORK(SI(203,17,internal_model_index(atmos_im))+K-1) =          AWO6F405.101    
     &     STASHWORK(SI(203,17,internal_model_index(atmos_im))+            AWO6F405.102    
     &                                        J+FIRST_POINT-2)             AWO6F405.103    
          END DO                                                           AWO6F405.104    
        END DO                                                             AWO6F405.105    
!                                                                          AWO6F405.106    
! Copy LAST_POINT values to unfilled locations                             AWO6F405.107    
        DO J=1,NPNTS-P_FIELDDA+1,P_FIELDDA                                 AWO6F405.108    
          DO I=LAST_POINT,P_FIELDDA                                        AWO6F405.109    
          K=I+J-1                                                          AWO6F405.110    
       STASHWORK(SI(203,17,internal_model_index(atmos_im))+K-1) =          AWO6F405.111    
     &     STASHWORK(SI(203,17,internal_model_index(atmos_im))+            AWO6F405.112    
     &                                         J+LAST_POINT-2)             AWO6F405.113    
          END DO                                                           AWO6F405.114    
        END DO                                                             AWO6F405.115    
!                                                                          AWO6F405.116    
      END IF                                                               AWO6F405.117    
!                                                                          AWO6F405.118    
      END IF         ! END L_SULPC_DMS condition                           AWO6F405.119    
!                                                                          AWO6F405.120    
!                                                                          AWO6F405.121    
! Write NH3_DEP to STASH if NH3 included                                   AWO6F405.122    
      IF (L_SULPC_OZONE) THEN                                              AWO6F405.123    
!                                                                          AWO6F405.124    
      IF (SF(204,17)) THEN                                                 AWO6F405.125    
!                                                                          AWO6F405.126    
        DO J=1,NPNTS-P_FIELDDA+1,P_FIELDDA                                 AWO6F405.127    
          DO I=FIRST_POINT,LAST_POINT                                      AWO6F405.128    
          K=I+J-1                                                          AWO6F405.129    
       STASHWORK(SI(204,17,internal_model_index(atmos_im))+K-1)=           AWO6F405.130    
     &                                                    NH3_DEP(K)       AWO6F405.131    
          END DO                                                           AWO6F405.132    
        END DO                                                             AWO6F405.133    
!                                                                          AWO6F405.134    
! Copy FIRST_POINT values to unfilled locations                            AWO6F405.135    
        DO J=1,NPNTS-P_FIELDDA+1,P_FIELDDA                                 AWO6F405.136    
          DO I=1,FIRST_POINT                                               AWO6F405.137    
          K=I+J-1                                                          AWO6F405.138    
       STASHWORK(SI(204,17,internal_model_index(atmos_im))+K-1) =          AWO6F405.139    
     &     STASHWORK(SI(204,17,internal_model_index(atmos_im))+            AWO6F405.140    
     &                                        J+FIRST_POINT-2)             AWO6F405.141    
          END DO                                                           AWO6F405.142    
        END DO                                                             AWO6F405.143    
!                                                                          AWO6F405.144    
! Copy LAST_POINT values to unfilled locations                             AWO6F405.145    
        DO J=1,NPNTS-P_FIELDDA+1,P_FIELDDA                                 AWO6F405.146    
          DO I=LAST_POINT,P_FIELDDA                                        AWO6F405.147    
          K=I+J-1                                                          AWO6F405.148    
       STASHWORK(SI(204,17,internal_model_index(atmos_im))+K-1) =          AWO6F405.149    
     &     STASHWORK(SI(204,17,internal_model_index(atmos_im))+            AWO6F405.150    
     &                                         J+LAST_POINT-2)             AWO6F405.151    
          END DO                                                           AWO6F405.152    
        END DO                                                             AWO6F405.153    
!                                                                          AWO6F405.154    
      END IF                                                               AWO6F405.155    
!                                                                          AWO6F405.156    
      END IF         ! END L_SULPC_OZONE condition                         AWO6F405.157    
!                                                                          AWO6F405.158    
!                                                                          CHEMCTL1.189    
!                                                                          AWO6F405.159    
! Call STASH                                                               AWO6F405.160    
      CALL STASH(a_sm,a_im,17,STASHWORK,                                   AWO6F405.161    
*CALL ARGSIZE                                                              AWO6F405.162    
*CALL ARGD1                                                                AWO6F405.163    
*CALL ARGDUMA                                                              AWO6F405.164    
*CALL ARGDUMO                                                              AWO6F405.165    
*CALL ARGDUMW                                                              AWO6F405.166    
*CALL ARGSTS                                                               AWO6F405.167    
*CALL ARGPPX                                                               AWO6F405.168    
     &        ICODE,CMESSAGE)                                              AWO6F405.169    
!                                                                          AWO6F405.170    
      RETURN                                                               CHEMCTL1.190    
      END                                                                  CHEMCTL1.191    
!                                                                          CHEMCTL1.192    
*ENDIF                                                                     CHEMCTL1.193