*IF DEF,CONTROL,AND,DEF,ATMOS                                              BL_CTL1.2      
C ******************************COPYRIGHT******************************    GTS2F400.577    
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.578    
C                                                                          GTS2F400.579    
C Use, duplication or disclosure of this code is subject to the            GTS2F400.580    
C restrictions as set forth in the contract.                               GTS2F400.581    
C                                                                          GTS2F400.582    
C                Meteorological Office                                     GTS2F400.583    
C                London Road                                               GTS2F400.584    
C                BRACKNELL                                                 GTS2F400.585    
C                Berkshire UK                                              GTS2F400.586    
C                RG12 2SZ                                                  GTS2F400.587    
C                                                                          GTS2F400.588    
C If no contract has been raised with this copy of the code, the use,      GTS2F400.589    
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.590    
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.591    
C Modelling at the above address.                                          GTS2F400.592    
C ******************************COPYRIGHT******************************    GTS2F400.593    
C                                                                          GTS2F400.594    
CLL Subroutine BL_CTL -----------------------------------------------      BL_CTL1.3      
CLL                                                                        BL_CTL1.4      
CLL Purpose : Calls BDY_LAYR to calculate and add boundary layer and       BL_CTL1.5      
CLL          surface increments. Recalculates cloud ice and water          BL_CTL1.6      
CLL          content, and cloud amounts. Calculates T and q at 1.5m if     BL_CTL1.7      
CLL          required.                                                     BL_CTL1.8      
CLL                                                                        BL_CTL1.9      
CLL Level 2 control routine                                                BL_CTL1.10     
CLL version for CRAY YMP                                                   BL_CTL1.11     
CLL                                                                        BL_CTL1.12     
CLL C.Wilson    <- programmer of some or all of previous code or changes   BL_CTL1.13     
CLL                                                                        BL_CTL1.14     
CLL  Model            Modification history from model version 3.0:         BL_CTL1.15     
CLL version  Date                                                          BL_CTL1.16     
CLL  3.1   8/02/93 : added comdeck CHSUNITS to define NUNITS for           RS030293.197    
CLL                  comdeck CCONTROL.                                     RS030293.198    
CLL  3.1  20/01/93  Add diagnostic - visibility at 1.5m - R.T.H.Barnes     RB200193.1      
CLL  3.1  11/02/93  Orographic roughness passed to BDY_LAYR and used       PC120793.1      
CLL                  in special code in SF_EXCH if L_Z0_OROG.eq.T          RB150293.2      
CLL   3.2    13/07/93 Changed CHARACTER*(*) to CHARACTER*(80) for          TS150793.29     
CLL                   portability. Author: Tracey Smith.                   TS150793.30     
CLL  3.2  07/06/93  Extend LAM TSTAR values to N&S rows - R.T.H.Barnes     RB070693.6      
CLL  3.2  06/05/93  Interface to FOG_FR to diagnose screen level fog       PC120793.2      
CLL                 Programmer for Pete Clark.                             PC120793.4      
CLL  3.2  13/04/93  Dynamic allocation of main arrays. PFLD replaced by    @DYALLOC.616    
CLL                 P_FIELD. R T H Barnes.                                 @DYALLOC.617    
CLL  3.3  18/11/93  New user diagnostic 249,3 for 10m windspeed.           TJ181193.1      
!LL  4.0  22/11/94  Add two extra arguments to pass Qc and bs from         AYY2F400.102    
!LL                 LS_CLD routine up to ATMPHYS. A.C.Bushell.             AYY2F400.103    
CLL  3.4  11/11/93  Mixing of tracers in the boundary layer scheme         ASJ1F304.1      
CLL                 included     Simon Jackson                             ASJ1F304.2      
CLL  3.4  13/05/94  Argument LTIMER passed to BDY_LAYR, FOG_FR             ASJ1F304.3      
CLL                 DEF EMCORR replaced by LOGICAL LEMCORR                 ASJ1F304.4      
CLL                                                 S.J.Swarbrick          ASJ1F304.5      
CLL  3.4  21/6/94   Pass silhouette area and peak to trough height         ASJ1F304.6      
CLL                 into BDY_LYR as part of effective roughness scheme.    ASJ1F304.7      
CLL                 New user diagnostic for effective roughness lengths    ASJ1F304.8      
CLL                 for heat and momentum                                  ASJ1F304.9      
CLL                          Simon Jackson                                 ASJ1F304.10     
CLL  3.3  28/4/94   Screen dewpoint diagnostic added.                      ASW0F304.1      
CLL                 Steve Woltering.                                       ASW0F304.2      
CLL                                                                        BL_CTL1.17     
CLL  3.4  13/06/94  Modified visibility and fog fraction calls             APC3F304.1      
CLL                 to use aerosols. Added new mist probability            APC3F304.2      
CLL                 diagnostic. Pete Clark                                 APC3F304.3      
CLL                                                                        APC5F400.1      
CLL  3.5  28/03/95  Sub-model changes : Remove run time constants          ADR1F305.38     
CLL                 from Atmos Dump headers. D. Robinson.                  ADR1F305.39     
CLL                                                                        ADR1F305.40     
CLL  3.5    9/5/95   MPP code: Change updateable area,                     AJS1F400.198    
CLL                   add halo updates    P.Burton                         AJS1F400.199    
CLL                                                                        AJS1F400.200    
CLL  4.0  22/05/95  Altered to remove * IF DEF's around call to            AJS1F400.201    
CLL                 appropriate BDYLYR (extra intermediate control         AJS1F400.202    
CLL                 routine added for each BDYLYR version).                AJS1F400.203    
CLL                 Cyndy Bunton                                           AJS1F400.204    
CLL  4.0  23/05/95  Extra OUT arguments ASURF and SNOWMELT for Penman-     AJS1F400.205    
CLL                 Monteith formulation 4A .                              AJS1F400.206    
CLL                 Cyndy Bunton                                           AJS1F400.207    
CLL  4.0  24/4/95   Diagnostics for 4D-Var project added                   AJS1F400.208    
CLL                           Simon Jackson                                AJS1F400.209    
CLL  4.0  05/09/95 Added TL and QT at 1.5 m diagnostics. Pete Clark        AJS1F401.207    
CLL  4.1  06/02/96 Added extra diagnostics and prognostics                 AJS1F401.208    
CLL                required by MOSES scheme J.Smith                        AJS1F401.209    
CLL  4.1  01/05/96 Add calculation of resistance factors and diagnostics   AJS1F401.210    
CLL                for dry deposition of Sulphur Cycle tracers.            AJS1F401.211    
CLL                Modify call to TR_MIX for free tracers and MURK, and    AJS1F401.212    
CLL                add calls to TR_MIX for Sulphur Cycle tracers.          AJS1F401.213    
CLL                Add call to TRSRCE for high level SO2 emmissions        AJS1F401.214    
CLL                                                M.Woodage               AJS1F401.215    
CLL                                                                        AJS1F401.216    
!LL  4.1  21/05/96  Added TYPFLDPT arguments and MPP code                  APBGF401.19     
!LL                 and multi-level POLAR call          P.Burton           APBGF401.20     
!LL  4.2  25/11/96  Corrections to allow LAM to run in MPP mode.           ARB2F402.11     
!LL                                                   RTHBarnes.           ARB2F402.12     
!LL  4.3  10/02/97  Added PPX arguments to COPY_DIAG and                   GPB1F403.302    
!LL                 EXT_DIAG                             P.Burton          GPB1F403.303    
!LL  4.3  22/01/97  Extra SWAPBOUNDS to get results independent of         ADR5F403.75     
!LL                 domain decomposition with Convective Momentum          ADR5F403.76     
!LL                 Transport. D. Robinson.                                ADR5F403.77     
CLL  4.3  04/02/97  Logical switches L_MOM and L_MIXLEN added to           ARN1F403.1      
CLL                 call to BL_INTCT                  R.N.B.Smith          ARN1F403.2      
CLL  4.3   18/3/97  Remove definition & calculation of CO2 level - now     AWI1F403.352    
CLL                       available in COMMON.  William Ingram             AWI1F403.353    
!LL  4.4  05/07/97  FLUX_DIAG args changed. S.D.Mullerworth                GSM3F404.31     
!    4.4  22/02/96  Mixing of ice in the boundary layer scheme included    AYY1F404.31     
!                                                  Sue ballard             AYY1F404.32     
!    4.4  01/07/97  Output separate ice and water cloud fractions.         AYY1F404.33     
!                                                  A.C.Bushell             AYY1F404.34     
!    4.4  01/07/97  Pass round logical indicating 3A Precip scheme.        AYY1F404.35     
!                                                  A.C.Bushell             AYY1F404.36     
!    4.4  Sept 97   Include call to new deck BL_LSP if quick boundary      AYY1F404.37     
!                   layer treatment of ice is required for 3A precip       AYY1F404.38     
!                   scheme. Damian Wilson.                                 AYY1F404.39     
!                                                                          AYY1F404.40     
!  4.4   30/09/97    Correct S Cycle diagnostics to prevent                AWO1F404.145    
!                    possible failure.                  (M Woodage)        AWO1F404.146    
CLL  4.4  29/10/97  Extra arguments added for MOSES II.     R. Essery      ARE1F404.58     
CLL  4.4  10/10/97  Ammend call to BL_INTCT to allow for convective        AJX0F404.467    
CLL                 cloud on model levels.              J.M.Gregory        AJX0F404.468    
!!!  4.4   18/9/97  New argument RADHEAT for BDYLYR6A                      ARN1F404.149    
CLL  4.5   24/04/98  New diagnostics ZHT and BL_TYPE_1 to _6.              ARN0F405.1      
CLL                   R.N.B.Smith                                          ARN0F405.2      
!LL  4.5  05/05/98  FOG_FR and VISBTY calls changed and moved              APC0F405.3      
!LL                                                     Pete Clark         APC0F405.4      
CLL  4.5    2/9/98  Code added to include carbon cycle. Chris Jones        ACN1F405.2      
!!!  4.5    5/3/98  Make soil evapotranspiration, canopy evaporation,      ABX1F405.190    
!!!                 surface sublimation and transpiration available        ABX1F405.191    
!!!                 as rates (kg/m2/s)                     R.A.Betts       ABX1F405.192    
!!!  4.5   24/6/98  Include MOSES II diagnostics.  R.A.Betts               ABX1F405.193    
CLL  4.5  13/05/98  Altered calls to GLUE_CLD.     S. Cusack               ASK1F405.225    
!LL  4.5  17/03/98   Add call to TR_MIX to add surface emissions and       AWO3F405.5      
!LL                  do dry deposition of NH3 (for S Cycle) M Woodage      AWO3F405.6      
!LL                  Add DAMP_FACTOR to reduce surface resistance          AWO3F405.7      
!LL                  to dry deposition for SO2 and NH3      M Woodage      AWO3F405.8      
!LL  4.5  12/03/98   Call TR_MIX to mix fresh soot emissions and dry       AWO3F405.9      
!LL                  deposit each of 3 soot modes. Luke Robinson.          AWO3F405.10     
CLL  4.5  19/01/98  Replace JVEG_FLDS & JSOIL_FLDS pointers with new       GDR6F405.86     
CLL                 pointers. D. Robinson.                                 GDR6F405.87     
CLL Programming standard : unified model documentation paper No 3          BL_CTL1.18     
CLL                                                                        BL_CTL1.19     
CLL System components covered : P24                                        BL_CTL1.20     
CLL                                                                        BL_CTL1.21     
CLL System task : P0                                                       BL_CTL1.22     
CLL                                                                        BL_CTL1.23     
CLL Documentation : Unified Model documentation paper No P0                BL_CTL1.24     
CLL                 version 11, dated 26/11/90                             BL_CTL1.25     
CLLEND -----------------------------------------------------------------   BL_CTL1.26     
C*L Arguments                                                              BL_CTL1.27     
                                                                           BL_CTL1.28     

      SUBROUTINE BL_CTL(CLOUD_FRACTION,SNOW_SUBLIMATION,SNOWMELT,           1,151AJS1F401.217    
     &           CANOPY_EVAPORATION,EXT,                                   AJS1F401.218    
     &           SOIL_EVAPORATION,SURF_HT_FLUX,SURF_RADFLUX,               AJS1F401.219    
     &           T1_SD,Q1_SD,WORK1,WORK2,WORK3,                            ASJ1F304.11     
     &           PHOTOSYNTH_ACT_RAD,PDF_QC_OR_CF_LIQ,PDF_BS_OR_CF_ICE,     AYY1F404.41     
     &           RADHEAT_RATE,RADHEAT_DIM1,                                ARN1F404.150    
     &           P_FIELDDA,Q_LEVELSDA,BL_LEVELSDA,                         AJS1F401.221    
     &           ST_LEVELSDA,SM_LEVELSDA,INT3,                             AJS1F401.222    
     &           LAND_FIELDDA,                                             AJS1F401.223    
     &           TILE_FIELDDA,TILE_PTS,TILE_INDEX,                         ARE1F404.59     
     &           RAD_NO_SNOW,RAD_SNOW,SNOW_FRAC,                           ARE1F404.60     
     &           ECAN_TILE,SNOW_SURF_HTF,SOIL_SURF_HTF,                    ARE1F404.61     
*CALL ARGSIZE                                                              @DYALLOC.620    
*CALL ARGD1                                                                @DYALLOC.621    
*CALL ARGDUMA                                                              @DYALLOC.622    
*CALL ARGDUMO                                                              @DYALLOC.623    
*CALL ARGDUMW                                                              GKR1F401.189    
*CALL ARGSTS                                                               @DYALLOC.624    
*CALL ARGPTRA                                                              @DYALLOC.625    
*CALL ARGPTRO                                                              @DYALLOC.626    
*CALL ARGCONA                                                              @DYALLOC.627    
*CALL ARGPPX                                                               GKR0F305.907    
*CALL ARGFLDPT                                                             APBGF401.21     
     &           ICODE,CMESSAGE)                                           @DYALLOC.628    
                                                                           BL_CTL1.32     
      IMPLICIT NONE                                                        BL_CTL1.33     
C                                                                          @DYALLOC.629    
*CALL CMAXSIZE                                                             @DYALLOC.630    
*CALL CSUBMODL                                                             GSS1F305.921    
*CALL TYPSIZE                                                              @DYALLOC.631    
*CALL TYPD1                                                                @DYALLOC.632    
*CALL TYPDUMA                                                              @DYALLOC.633    
*CALL TYPDUMO                                                              @DYALLOC.634    
*CALL TYPDUMW                                                              GKR1F401.190    
*CALL TYPSTS                                                               @DYALLOC.635    
*CALL TYPPTRA                                                              @DYALLOC.636    
*CALL TYPPTRO                                                              @DYALLOC.637    
*CALL TYPCONA                                                              @DYALLOC.638    
*CALL PPXLOOK                                                              GKR0F305.908    
! All TYPFLDPT arguments are intent IN                                     APBGF401.22     
*CALL TYPFLDPT                                                             APBGF401.23     
                                                                           BL_CTL1.34     
      INTEGER                                                              BL_CTL1.35     
     &       INT3,        ! Dummy variable for STASH_MAXLEN(3)             BL_CTL1.36     
     &       ICODE,       ! Return code : 0 Normal Exit                    BL_CTL1.37     
C                         !             : >0 Error                         BL_CTL1.38     
     &       P_FIELDDA,   ! Extra copy of P_FIELD for dynamic alloc        @DYALLOC.639    
     &       LAND_FIELDDA,! Extra copy of LAND_FIELD for dynamic alloc     AJS1F401.224    
     &       TILE_FIELDDA,! LAND_FIELD for tiled diagnostics (7A only)     ARE1F404.62     
     &       Q_LEVELSDA,  ! and Q_LEVELS                                   @DYALLOC.640    
     &       BL_LEVELSDA, ! and BL_LEVELS                                  @DYALLOC.641    
     &       RADHEAT_DIM1,  ! and dimension of RADHEAT rate either         ARN1F404.151    
!                           ! P_FIELD or 1 according to version of Sec.3   ARN1F404.152    
     &       ST_LEVELSDA, ! and ST_LEVELS                                  AJS1F401.225    
     &       SM_LEVELSDA  ! and SM_LEVELS                                  AJS1F401.226    
                                                                           BL_CTL1.41     
      REAL                                                                 BL_CTL1.42     
     &       PDF_QC_OR_CF_LIQ(P_FIELDDA,Q_LEVELSDA), ! INOUT               AYY1F404.42     
     &       PDF_BS_OR_CF_ICE(P_FIELDDA,Q_LEVELSDA), ! INOUT               AYY1F404.43     
     &       ASURF(P_FIELDDA),                     !                       AJS1F400.212    
     &       CLOUD_FRACTION(P_FIELDDA,Q_LEVELSDA), ! Used to pass          @DYALLOC.643    
     &       SNOWMELT(P_FIELDDA),                  ! information           AJS1F400.213    
     &       SNOW_SUBLIMATION(P_FIELDDA),          ! to other sections     AJS1F400.214    
     &       CANOPY_EVAPORATION(P_FIELDDA),        !                       AJS1F400.215    
     &       EXT(LAND_FIELDDA,SM_LEVELSDA),        !                       AJS1F401.227    
     &       SOIL_EVAPORATION(P_FIELDDA),          !                       @DYALLOC.646    
     &       SURF_HT_FLUX(P_FIELDDA),              !                       AJS1F401.228    
     &       SURF_RADFLUX(P_FIELDDA),              !                       @DYALLOC.647    
     &       PHOTOSYNTH_ACT_RAD(P_FIELDDA),        !                       AJS1F401.229    
     &       RADHEAT_RATE(RADHEAT_DIM1,BL_LEVELSDA),                       ARN1F404.153    
     &       T1_SD(P_FIELDDA),                                             ASJ1F304.12     
     &       Q1_SD(P_FIELDDA),                                             ASJ1F304.13     
     &       WORK1(P_FIELDDA),          ! Used as workspace                @DYALLOC.648    
     &       WORK2(P_FIELDDA),          ! within its section               @DYALLOC.649    
     &       WORK3(P_FIELDDA),          !                                  ASJ1F304.14     
     &       QCF_FLUX(P_FIELDDA,BL_LEVELSDA), ! Flux of ice                AYY1F404.44     
     &       TR_FLUX(P_FIELDDA,BL_LEVELSDA)                                ASJ1F304.15     
     &,       EPOT(P_FIELDDA)            ! potential evaporation           ANG1F405.5      
     &,       FSMC(LAND_FIELDDA)         ! soil moisture availability      ANG1F405.6      
                                                                           BL_CTL1.52     
                                                                           ARN0F405.3      
! Type identifiers for boundary layers:                                    ARN0F405.4      
      REAL                                                                 ARN0F405.5      
     & BL_TYPE_1(P_FIELDDA)      ! OUT Indicator set to 1.0 if stable      ARN0F405.6      
!                                !     b.l. diagnosed, 0.0 otherwise.      ARN0F405.7      
     &,BL_TYPE_2(P_FIELDDA)      ! OUT Indicator set to 1.0 if Sc over     ARN0F405.8      
!                                !     stable surface layer diagnosed,     ARN0F405.9      
!                                !     0.0 otherwise.                      ARN0F405.10     
     &,BL_TYPE_3(P_FIELDDA)      ! OUT Indicator set to 1.0 if well        ARN0F405.11     
!                                !     mixed b.l. diagnosed,               ARN0F405.12     
!                                !     0.0 otherwise.                      ARN0F405.13     
     &,BL_TYPE_4(P_FIELDDA)      ! OUT Indicator set to 1.0 if             ARN0F405.14     
!                                !     decoupled Sc layer (not over        ARN0F405.15     
!                                !     cumulus) diagnosed,                 ARN0F405.16     
!                                !     0.0 otherwise.                      ARN0F405.17     
     &,BL_TYPE_5(P_FIELDDA)      ! OUT Indicator set to 1.0 if             ARN0F405.18     
!                                !     decoupled Sc layer over cumulus     ARN0F405.19     
!                                      diagnosed, 0.0 otherwise.           ARN0F405.20     
     &,BL_TYPE_6(P_FIELDDA)      ! OUT Indicator set to 1.0 if a           ARN0F405.21     
!                                !     cumulus capped b.l. diagnosed,      ARN0F405.22     
!                                !     0.0 otherwise.                      ARN0F405.23     
                                                                           ARN0F405.24     
! Additional arguments for 7A boundary layer (MOSES II)                    ARE1F404.63     
*CALL NSTYPES                                                              ARE1F404.64     
      INTEGER                                                              ARE1F404.65     
     &       TILE_PTS(NTYPE),                      ! OUT                   ABX1F405.194    
     &       TILE_INDEX(TILE_FIELDDA,NTYPE)        ! OUT                   ABX1F405.195    
      REAL                                                                 ARE1F404.68     
     &       RAD_NO_SNOW(P_FIELDDA),               ! IN                    ARE1F404.69     
     &       RAD_SNOW(P_FIELDDA),                  ! IN                    ARE1F404.70     
     &       SNOW_FRAC(TILE_FIELDDA),              ! IN                    ARE1F404.71     
     &       ECAN_TILE(TILE_FIELDDA,NTYPE-1),      ! OUT                   ARE1F404.72     
     &       SNOW_SURF_HTF(TILE_FIELDDA),          ! OUT                   ARE1F404.73     
     &       SOIL_SURF_HTF(TILE_FIELDDA)           ! OUT                   ARE1F404.74     
                                                                           ARE1F404.75     
      CHARACTER*80                                                         TS150793.31     
     &       CMESSAGE     ! Error message if return code >0                BL_CTL1.54     
                                                                           BL_CTL1.55     
*IF DEF,MPP                                                                APB1F305.116    
! Parameters and Common blocks                                             APB1F305.117    
*CALL PARVARS                                                              APB1F305.118    
*ENDIF                                                                     APB1F305.119    
*CALL CHSUNITS                                                             RS030293.199    
*CALL CCONTROL                                                             BL_CTL1.57     
*CALL C_R_CP                                                               BL_CTL1.61     
*CALL C_LHEAT                                                              BL_CTL1.62     
*CALL CHISTORY                                                             GDR3F305.12     
*CALL CTRACERA                                                             ASJ1F304.18     
*CALL CRUNTIMC                                                             ADR1F305.41     
*CALL CTIME                                                                ADR1F305.42     
                                                                           BL_CTL1.63     
*CALL C_MDI                                                                ACN1F405.3      
*CALL C_PI                                                                 APC3F304.4      
*CALL C_VISBTY            ! Version of visibility code                     APC3F304.5      
*CALL C_SULBDY            ! parameters for Sulphur Cycle                   AJS1F401.232    
CL External subroutines called                                             BL_CTL1.64     
                                                                           BL_CTL1.65     
      EXTERNAL                                                             BL_CTL1.66     
     &       BL_INTCT,EXTDIAG,TIMER,STASH,                                 AJS1F400.216    
     &       TR_MIX,POLAR_UV,GLUE_CLD,POLAR,                               AYY2F400.107    
     &       FLUX_DIAG,                                                    ASJ1F304.20     
     &       TRSRCE,                                                       AJS1F401.233    
     &       SET_LEVELS_LIST,FROM_LAND_POINTS,COPYDIAG_3D,                 ASJ1F304.21     
     &       DEWPNT,                                                       ASW0F304.3      
     &       COPYDIAG,VISBTY,QSAT,QSAT_WAT,BL_LSP                          ADM3F404.425    
                                                                           BL_CTL1.75     
CL Dynamically allocated area for stash processing                         BL_CTL1.76     
                                                                           BL_CTL1.77     
      REAL                                                                 BL_CTL1.78     
     &       STASHWORK(INT3),                                              BL_CTL1.79     
     &       WORK4(P_FIELDDA*BL_LEVELSDA),                                 @DYALLOC.651    
     &       WORK5(P_FIELDDA*BL_LEVELSDA),                                 ASW0F304.4      
     &       WORK6(P_FIELDDA),                                             AJS1F401.234    
     &       WORK7(LAND_FIELDDA),                                          AJS1F401.235    
     &       WORK8(LAND_FIELDDA),                                          AJS1F401.236    
     &       WORK9(LAND_FIELDDA),                                          AJS1F401.237    
     &       WORK10(P_FIELDDA)                                             AJS1F401.238    
                                                                           BL_CTL1.82     
      REAL                                                                 ARE1F404.76     
     &       ESOIL_TILE(TILE_FIELDDA,NTYPE-1),                             ARE1F404.77     
     &       FTL_TILE(TILE_FIELDDA,NTYPE),                                 ARE1F404.78     
     &       G_LEAF(TILE_FIELDDA,NPFT),                                    ARE1F404.79     
     &       GPP_FT(TILE_FIELDDA,NPFT),                                    ABX1F405.196    
     &       NPP_FT(TILE_FIELDDA,NPFT),                                    ARE1F404.80     
     &       RESP_P_FT(TILE_FIELDDA,NPFT),                                 ABX1F405.197    
     &       RESP_S(TILE_FIELDDA),                                         ARE1F404.81     
     &       RESP_W_FT(TILE_FIELDDA,NPFT),                                 ARE1F404.82     
     &       RIB_TILE(TILE_FIELDDA,NTYPE)                                  ARE1F404.83     
                                                                           ARE1F404.84     
C Local variables                                                          BL_CTL1.83     
      REAL                           ! FOR PROGNOSTIC ICE PRECIP           AYY1F404.45     
     &       CLOUD_FRAC_BL(P_FIELDDA,Q_LEVELSDA)                           AYY1F404.46     
                                                                           BL_CTL1.84     
      REAL                           ! FOR SULPHUR CYCLE                   AJS1F401.239    
     &   RHO_ARESIST(P_FIELDDA),     !   RHOSTAR*CD_STD*VSHR               AJS1F401.240    
     &   ARESIST(P_FIELDDA),         !   1/(CD_STD*VSHR)                   AJS1F401.241    
     &   RESIST_B(P_FIELDDA),        !   (1/CH-1/CD_STD)/VSHR              AJS1F401.242    
     &   RESIST_S(P_FIELDDA),        !   stomatal resistance               AJS1F401.243    
     &   RHO_ARESIST_TILE(TILE_FIELDDA,NTYPE),                             ARE1F404.85     
!                                    !   RHO_ARESIST on land tiles         ARE1F404.86     
     &   ARESIST_TILE(TILE_FIELDDA,NTYPE),                                 ARE1F404.87     
!                                    !   ARESIST on land tiles             ARE1F404.88     
     &   RESIST_B_TILE(TILE_FIELDDA,NTYPE),                                ARE1F404.89     
!                                    !   RESIST_B on land tiles            ARE1F404.90     
     &   DRYDEP_STR(P_FIELDDA),      ! surface dry deposited Sulphur       AJS1F401.244    
!                                    !Cycle tracers for output to STASH    AJS1F401.245    
     &   STR_RESIST_B(P_FIELDDA),    ! Rb for Sulphur Cycle tracer         AJS1F401.246    
     &   STR_RESIST_S(P_FIELDDA),    ! Rs for Sulphur Cycle tracer         AJS1F401.247    
     &   RES_FACTOR(P_FIELDDA),      ! Ra/(Ra+Rb+Rs) for dry deposition    AJS1F401.248    
     &   ZERO_FIELD(P_FIELDDA),      ! dummy array of zeros                AJS1F401.249    
     &   CO2_FLUX(P_FIELDDA),        ! array of total CO2 flux             ACN1F405.4      
     &   LAND_CO2(P_FIELDDA),        ! array of CO2 land flux              ACN1F405.5      
     &   LAND_CO2_L(LAND_FIELDDA),   ! land points CO2 land flux           ACN1F405.6      
     &  DAMP_FACTOR(P_FIELDDA),           ! Canopy moistening factor       AWO3F405.11     
     &   SNOW_F                      ! calculated snow fraction            AJS1F401.250    
     &,  TILE_FRAC(TILE_FIELDDA,NTYPE) ! snow-adjusted tile fraction       ABX1F405.200    
     &,  CCA(P_FIELDDA)              ! convective cloud amt on one level   AJX0F404.469    
      INTEGER                                                              AJX0F404.470    
     &   LEV                         ! used in calculation of CCA          AJX0F404.471    
!                                                                          AJS1F401.251    
      REAL                                                                 BL_CTL1.85     
     &       AK1P5M,       ! Value of AK at 1.5 metres                     BL_CTL1.86     
     &       BK1P5M        ! Value of BK at 1.5 metres                     BL_CTL1.87     
      PARAMETER(                                                           PC120793.5      
     &  AK1P5M =0.0,                                                       PC120793.6      
     &  BK1P5M =1.0)                                                       PC120793.7      
                                                                           BL_CTL1.88     
      INTEGER                                                              BL_CTL1.89     
     &       ROWS,                                                         BL_CTL1.91     
     &       FIRST_POINT,                                                  BL_CTL1.92     
     &       LAST_POINT,                                                   BL_CTL1.93     
     &       POINTS,                                                       BL_CTL1.94     
     &       JS,                                                           BL_CTL1.95     
     &       LEVEL_OUT,                                                    BL_CTL1.96     
     &       LEVEL,                                                        BL_CTL1.97     
     &       PSLEVEL,      !  loop counter for pseudolevels                ABX1F405.198    
     &       PSLEVEL_OUT,  !  index for pseudolevels sent to STASH         ABX1F405.199    
     &       I,J,                                                          AJS1F401.252    
     &       NRML(P_FIELDDA),                                              ASJ1F304.23     
     &       N_TRACER                                                      ASJ1F304.24     
     &      ,im_ident       !  Internal model identifier                   GDR4F305.5      
     &      ,im_index       !  Internal model index for stash arrays       GDR4F305.6      
     &      ,STHU_PTR               ! local pointer to D1 array for STHU   AJS1F401.253    
     &      ,STHF_PTR               ! local pointer to D1 array for STHF   AJS1F401.254    
     &      ,LAND_FIELD_TRIF !\ For dimensioning variables in BL_INTCTL    ABX1F405.201    
     &      ,NPFT_TRIF       !/ depending on whether TRIFFID is in use.    ABX1F405.202    
     &      ,CO2_DIM      ! dimension for CO2 field to be passed down      ACN1F405.7      
      LOGICAL                                                              BL_CTL1.100    
     &       L_COMPRESS_SEAICE, ! Convert to sea_ice points within         BL_CTL1.101    
C                               ! BDY_LYR                                  BL_CTL1.102    
     &       LIST(ST_LEVELSDA)                                             AJS1F401.255    
     & ,     SF225              ! local flag for 10m wind U-comp           TJ181193.2      
     & ,     SF226              ! local flag for 10m wind V-comp           TJ181193.3      
     & ,     SF236              ! local flag for 1.5T                      BL_CTL1.104    
     & ,     SF237              ! local flag for 1.5Q                      BL_CTL1.105    
     & ,     PLLTYPE(NTYPE)     ! pseudolevel list for surface types       ABX1F405.203    
     & ,     PLLPFT(NPFT)       ! pseudolevel list for PFTs                ABX1F405.204    
     & ,     PLLNIT(NTYPE-1)    ! pseudolevel list for non-ice types       ABX1F405.205    
                                                                           ABX1F405.206    
                                                                           BL_CTL1.106    
*CALL C_ST_BDY                                                             AWO3F405.117    
!                                                                          AWO3F405.118    
      DATA L_COMPRESS_SEAICE /.TRUE./                                      BL_CTL1.107    
                                                                           BL_CTL1.108    
CL                                                                         BL_CTL1.109    
CL--- SECTION 3 --- BOUNDARY LAYER & SURFACE ----------                    BL_CTL1.110    
CL                                                                         BL_CTL1.111    
CL SECTION 3.1 Initialisation                                              BL_CTL1.112    
CL                                                                         BL_CTL1.113    
!     L_bl_lspice_if1:                                                     AYY1F404.47     
      IF (L_BL_LSPICE) THEN                                                AYY1F404.48     
! Prognostic cloud ice, BL scheme works on liquid water cloud only         AYY1F404.49     
        DO J=1,Q_LEVELS                                                    AYY1F404.50     
          DO I=1,P_FIELD                                                   AYY1F404.51     
            CLOUD_FRAC_BL(I,J) = PDF_QC_OR_CF_LIQ(I,J)                     AYY1F404.52     
          END DO                                                           AYY1F404.53     
        END DO                                                             AYY1F404.54     
      ELSE                                                                 AYY1F404.55     
! Prognostic total water, BL scheme works with only cloud fraction         AYY1F404.56     
        DO J=1,Q_LEVELS                                                    AYY1F404.57     
          DO I=1,P_FIELD                                                   AYY1F404.58     
            CLOUD_FRAC_BL(I,J) = CLOUD_FRACTION(I,J)                       AYY1F404.59     
          END DO                                                           AYY1F404.60     
        END DO                                                             AYY1F404.61     
      ENDIF  ! L_bl_lspice_if1                                             AYY1F404.62     
!                                                                          AYY1F404.63     
      im_ident = atmos_im                                                  GDR4F305.7      
      im_index = internal_model_index(im_ident)                            GDR4F305.8      
                                                                           GDR4F305.9      
      FIRST_POINT=START_POINT_NO_HALO                                      APBGF401.24     
      LAST_POINT=END_P_POINT_INC_HALO                                      APBGF401.25     
      POINTS=LAST_POINT-FIRST_POINT+1                                      APBGF401.26     
      ROWS=POINTS/ROW_LENGTH                                               APBGF401.27     
      JS = FIRST_POINT-1                                                   ARB2F402.13     
                                                                           BL_CTL1.121    
CL   Set implied diagnostics flags                                         BL_CTL1.122    
      SF225=SF(225,3).OR.SF(249,3)                                         TJ181193.4      
      SF226=SF(226,3).OR.SF(249,3)                                         TJ181193.5      
      SF236=SF(236,3).OR.SF(237,3).OR.                                     BL_CTL1.123    
     &    SF(242,3).OR.SF(243,3).OR.SF(244,3).OR.SF(245,3).OR.SF(247,3)    RB200193.3      
     &    .OR.SF(253,3)     ! Needed for mist fraction at 1.5 m)           APC3F304.6      
     &    .OR.SF(248,3)     ! Needed for fog fraction at 1.5 m)            PC120793.8      
     &    .OR.SF(250,3)     ! Needed for dewpoint at 1.5 m                 ASW0F304.6      
     &    .OR.SF(254,3)     ! Needed for TL at 1.5 m                       APC5F400.3      
      SF237=SF(237,3).OR.SF(236,3).OR.                                     BL_CTL1.125    
     &    SF(242,3).OR.SF(243,3).OR.SF(244,3).OR.SF(245,3).OR.SF(247,3)    RB200193.4      
     &    .OR.SF(253,3)     ! Needed for mist fraction at 1.5 m)           APC3F304.7      
     &    .OR.SF(248,3)     ! Needed for fog fraction at 1.5 m)            PC120793.9      
     &    .OR.SF(250,3)     ! Needed for dewpoint at 1.5 m                 ASW0F304.7      
     &    .OR.SF(255,3)     ! Needed for QT at 1.5 m                       APC5F400.4      
                                                                           BL_CTL1.127    
CL   Zero work array to prevent i/o problems with unaccessed polar rows    BL_CTL1.128    
                                                                           BL_CTL1.129    
       DO I=1,INT3                                                         BL_CTL1.130    
         STASHWORK(I)=0.0                                                  BL_CTL1.131    
       END DO                                                              BL_CTL1.132    
                                                                           BL_CTL1.133    
C  Initialise output arrays to zero                                        BL_CTL1.134    
                                                                           BL_CTL1.135    
      DO I=1,P_FIELD                                                       BL_CTL1.136    
        CANOPY_EVAPORATION(I)=0.0                                          BL_CTL1.137    
        SNOW_SUBLIMATION(I) = 0.0                                          BL_CTL1.138    
        SOIL_EVAPORATION(I) = 0.0                                          BL_CTL1.139    
        SURF_HT_FLUX(I) = 0.0                                              AJS1F401.256    
        SNOWMELT(I)=0.0                                                    AJS1F400.217    
        ZERO_FIELD(I)=0.0                ! for input to TR_MIX             AJS1F401.257    
! Set up CO2 source field. Units in kg(CO2)/m2/s                           ACN1F405.8      
      CO2_FLUX(I)  = 0.0                                                   ACN1F405.9      
      LAND_CO2(I)  = 0.0                                                   ACN1F405.10     
      END DO                                                               BL_CTL1.140    
      IF ( LMOSES ) THEN                                                   AJS1F401.258    
        DO I=1,LAND_FIELD                                                  AJS1F401.259    
          DO J=1,SM_LEVELS                                                 AJS1F401.260    
            EXT(I,J)=0.0                                                   AJS1F401.261    
          ENDDO                                                            AJS1F401.262    
        LAND_CO2_L(I) = 0.0                                                ACN1F405.11     
        ENDDO                                                              AJS1F401.263    
      ENDIF                                                                AJS1F401.264    
C                                                                          AJS1F401.265    
C Set up pointers for D1 store for these arrays as SM_LEVELS=0 for Singl   AJS1F401.266    
C layer hydrology so JSTHU(1) will not exist.                              AJS1F401.267    
C                                                                          AJS1F401.268    
      IF (LSINGLE_HYDROL) THEN                                             AJS1F401.269    
        STHU_PTR = 1                                                       AJS1F401.270    
        STHF_PTR = 1                                                       AJS1F401.271    
      ELSE                                                                 AJS1F401.272    
        STHU_PTR = JSTHU(1)                                                AJS1F401.273    
        STHF_PTR = JSTHF(1)                                                AJS1F401.274    
      ENDIF                                                                AJS1F401.275    
C                                                                          AJX0F404.472    
C Set up a single level array of convective cloud amount for use in        AJX0F404.473    
C EXCOEFF.                                                                 AJX0F404.474    
C                                                                          AJX0F404.475    
      IF (L_3D_CCA) THEN                                                   AJX0F404.476    
        DO I=1,P_FIELD                                                     AJX0F404.477    
          IF (ID1(JCCB+I-1) .GT. 0.0) THEN                                 AJX0F404.478    
            LEV=ID1(JCCB+I-1)                                              AJX0F404.479    
            CCA(I)=D1(JCCA(LEV)+I-1)                                       AJX0F404.480    
          ELSE                                                             AJX0F404.481    
            CCA(I)=0.0                                                     AJX0F404.482    
          ENDIF                                                            AJX0F404.483    
        ENDDO                                                              AJX0F404.484    
      ELSE                                                                 AJX0F404.485    
        DO I=1,P_FIELD                                                     AJX0F404.486    
          CCA(I)=D1(JCCA(1)+I-1)                                           AJX0F404.487    
        ENDDO                                                              AJX0F404.488    
      ENDIF                                                                AJX0F404.489    
!                                                                          ABX1F405.207    
! Set LAND_FIELD_TRIF and NPFT_TRIF according to TRIFFID on/off            ABX1F405.208    
!                                                                          ABX1F405.209    
      IF (L_TRIFFID) THEN                                                  ABX1F405.210    
        LAND_FIELD_TRIF = LAND_FIELD                                       ABX1F405.211    
        NPFT_TRIF = NPFT                                                   ABX1F405.212    
      ELSE                                                                 ABX1F405.213    
        LAND_FIELD_TRIF = 1                                                ABX1F405.214    
        NPFT_TRIF = 1                                                      ABX1F405.215    
      ENDIF                                                                ABX1F405.216    
!                                                                          ACN1F405.12     
!  set up CO2 field to be passed down                                      ACN1F405.13     
!                                                                          ACN1F405.14     
      IF (L_CO2_INTERACTIVE) THEN                                          ACN1F405.15     
        CO2_DIM = P_FIELD                                                  ACN1F405.16     
      ELSE                                                                 ACN1F405.17     
        CO2_DIM = 1                                                        ACN1F405.18     
      ENDIF                                                                ACN1F405.19     
CL                                                                         AJS1F401.285    
CL SECTION 3.2 Call BL_INTCT to calculate and add boundary layer           AJS1F401.286    
CL             increments                                                  AJS1F401.287    
                                                                           BL_CTL1.141    
      IF (LTIMER) THEN                                                     ASJ1F304.25     
        CALL TIMER('BL_INTCT',3)                                           AJS1F400.219    
      END IF                                                               BL_CTL1.148    
                                                                           BL_CTL1.149    
                                                                           ASJ1F304.26     
CL *********************************************************************   ASJ1F304.27     
CL CALL THE INTERMEDIATE CONTROL LEVEL 'glued' to the BDY_LAYR version.    AJS1F400.220    
CL The arguments in the call include all those used in each version        AJS1F400.221    
CL *********************************************************************   ASJ1F304.31     
                                                                           ASJ1F304.32     
      CALL BL_INTCT(                                                       AJS1F400.222    
                                                                           BL_CTL1.151    
C IN values defining field dimensions and subset to be processed :         BL_CTL1.152    
                                                                           BL_CTL1.153    
     & P_FIELD,U_FIELD,LAND_FIELD,LAND_FIELD_TRIF,NPFT_TRIF,               ABX1F405.217    
     & P_ROWS,FIRST_ROW,ROWS,ROW_LENGTH,                                   AJS1F401.289    
                                                                           BL_CTL1.155    
C IN values defining vertical grid of model atmosphere :                   BL_CTL1.156    
                                                                           BL_CTL1.157    
     & BL_LEVELS,P_LEVELS,A_LEVDEPC(JAK),A_LEVDEPC(JBK),AKH,               BL_CTL1.158    
     & BKH,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK),D1(JP_EXNER(1)),      BL_CTL1.159    
                                                                           BL_CTL1.160    
C IN soil/vegetation/land surface data :                                   BL_CTL1.161    
                                                                           BL_CTL1.162    
     & D1(JLAND),L_COMPRESS_SEAICE,LAND_LIST,                              AJS1F401.290    
     & ST_LEVELS,SM_LEVELS,                                                AJS1F401.291    
     & D1(JCANHT),D1(JCANOPY_WATER),                                       AJS1F401.292    
     & D1(JSURF_CAP),D1(JTHERM_CAP),                                       GDR6F405.88     
     & D1(JTHERM_COND),D1(JLAI),                                           GDR6F405.89     
     & A_LEVDEPC(JSOIL_THICKNESS),D1(JSNODEP),                             AJS1F401.295    
     & D1(JSURF_RESIST),D1(JROOT_DEPTH),D1(JSMC),D1(JVOL_SMC_CRIT),        GDR6F405.90     
     & D1(JVOL_SMC_SAT),D1(JVOL_SMC_WILT),D1(JVEG_FRAC),                   GDR6F405.91     
     & D1(JZ0),D1(JOROG_SIL),L_Z0_OROG,D1(JOROG_HO2),                      AJS1F401.297    
                                                                           BL_CTL1.168    
C IN sea/sea-ice data :                                                    BL_CTL1.169    
                                                                           BL_CTL1.170    
     & D1(JICE_THICKNESS),D1(JICE_FRACTION),D1(JU_SEA),D1(JV_SEA),         BL_CTL1.171    
                                                                           BL_CTL1.172    
C IN Cloud data :                                                          BL_CTL1.173    
                                                                           BL_CTL1.174    
     & CLOUD_FRAC_BL,D1(JQCF(1)),D1(JQCL(1)),                              AYY1F404.64     
     & CCA,ID1(JCCB),ID1(JCCT),                                            AJX0F404.490    
                                                                           BL_CTL1.177    
C IN everything not covered so far :                                       BL_CTL1.178    
                                                                           BL_CTL1.179    
     & RADHEAT_RATE,RADHEAT_DIM1,                                          ARN1F404.154    
     & CO2_MMR,PHOTOSYNTH_ACT_RAD,D1(JPSTAR),                              AJS1F401.298    
     & SURF_RADFLUX,SECS_PER_STEPim(atmos_im),L_RMBL,                      AYY1F404.65     
     & L_BL_LSPICE,L_MOM,L_MIXLEN,                                         AYY1F404.66     
                                                                           BL_CTL1.181    
C INOUT data :                                                             BL_CTL1.182    
                                                                           BL_CTL1.183    
     & D1(JGS),D1(JQ(1)),D1(STHF_PTR),D1(STHU_PTR),D1(JTHETA(1)),          AJS1F401.300    
     & D1(J_DEEP_SOIL_TEMP(1)),D1(JTI),D1(JTSTAR),                         AJS1F400.225    
     & D1(JU(1)),D1(JV(1)),D1(JZ0),                                        AJS1F400.226    
                                                                           BL_CTL1.186    
C OUT Diagnostic not requiring STASH flags :                               BL_CTL1.187    
                                                                           BL_CTL1.188    
     & WORK1,WORK2,                                                        AJS1F400.227    
     & STASHWORK(SI(232,3,im_index)),WORK10,                               AJS1F401.301    
     & STASHWORK(SI(223,3,im_index)),STASHWORK(SI(217,3,im_index)),        AJS1F401.302    
     & WORK7,STASHWORK(SI(228,3,im_index)),WORK8,WORK9,                    AJS1F401.303    
     & WORK4,WORK5,                                                        BL_CTL1.191    
     & STASHWORK(SI(208,3,im_index)),STASHWORK(SI(201,3,im_index)),        GDR4F305.27     
     & STASHWORK(SI(219,3,im_index)),                                      AJS1F401.304    
     & STASHWORK(SI(220,3,im_index)),WORK3,                                GDR4F305.29     
     & STASHWORK(SI(304,3,im_index)),                                      ARN0F405.25     
! OUT Diagnostic requiring STASH flags :                                   ARN0F405.26     
     & EPOT,FSMC,                                                          ANG1F405.1      
                                                                           ANG1F405.2      
! OUT diagnostic requiring STASH flags :                                   ANG1F405.3      
                                                                           ANG1F405.4      
     & STASHWORK(SI(224,3,im_index)),STASHWORK(SI(235,3,im_index)),        GDR4F305.30     
     & STASHWORK(SI(258,3,im_index)),                                      AJS1F400.229    
     & STASHWORK(SI(234,3,im_index)),STASHWORK(SI(237,3,im_index)),        GDR4F305.31     
     & STASHWORK(SI(236,3,im_index)),STASHWORK(SI(225,3,im_index)),        GDR4F305.32     
     & STASHWORK(SI(226,3,im_index)),                                      ANG1F405.7      
                                                                           ANG1F405.8      
! IN STASH flags :-                                                        ANG1F405.9      
                                                                           ANG1F405.10     
     & SF(224,3),SF(235,3),SF(258,3),                                      ANG1F405.11     
     & SF(234,3),SF237,SF236,SF225,SF226,                                  AJS1F400.231    
                                                                           BL_CTL1.199    
C OUT data required for tracer mixing :                                    ASJ1F304.106    
                                                                           ASJ1F304.107    
     & RHO_ARESIST,ARESIST,RESIST_B,                                       AJS1F401.305    
     & NRML,                                                               AJS1F400.232    
                                                                           AJS1F400.233    
C OUT data required for 4D_var :                                           AJS1F400.234    
                                                                           AJS1F400.235    
     & STASHWORK(SI(256,3,im_index)),STASHWORK(SI(257,3,im_index)),        AJS1F400.236    
                                                                           ASJ1F304.109    
C OUT data required elsewhere in UM system :                               BL_CTL1.200    
                                                                           BL_CTL1.201    
     & BL_TYPE_1,BL_TYPE_2,BL_TYPE_3,BL_TYPE_4,BL_TYPE_5,BL_TYPE_6,        ARN0F405.27     
     & CANOPY_EVAPORATION,SNOW_SUBLIMATION,                                AJS1F401.306    
     & SOIL_EVAPORATION,EXT,SNOWMELT,SURF_HT_FLUX,                         AJS1F401.307    
     & D1(JZH),T1_SD,Q1_SD,                                                AJS1F401.308    
     & ICODE,                                                              AJS1F400.240    
                                                                           ARE1F404.91     
! Additional arguments for 7A boundary layer (MOSES II)                    ARE1F404.92     
! IN                                                                       ARE1F404.93     
     & L_PHENOL,L_TRIFFID,L_NEG_TSTAR,                                     ABX1F405.218    
     & D1(JCANHT_PFT),D1(JCAN_WATER_NIT),D1(JCATCH_NIT),                   ARE1F404.95     
     & D1(JSOIL_CARB),D1(JLAI_PFT),D1(JFRAC_TYP),                          ARE1F404.96     
     & SNOW_FRAC,RAD_NO_SNOW,RAD_SNOW,D1(JTSNOW),D1(JZ0_TYP),              ARE1F404.97     
     & D1(JCO2(1)),CO2_DIM,L_CO2_INTERACTIVE,                              ACN1F405.20     
! INOUT                                                                    ARE1F404.98     
     & D1(JTSTAR_TYP),                                                     ARE1F404.99     
     & D1(JG_LF_PFT_ACC),D1(JNPP_PFT_ACC),                                 ARE1F404.100    
     & D1(JRSP_W_PFT_ACC),D1(JRSP_S_ACC),                                  ARE1F404.101    
! OUT                                                                      ARE1F404.102    
     & ECAN_TILE,ESOIL_TILE,FTL_TILE,                                      ARE1F404.103    
     & G_LEAF,GPP_FT,NPP_FT,RESP_P_FT,RESP_S,RESP_W_FT,                    ABX1F405.219    
     & RHO_ARESIST_TILE,ARESIST_TILE,RESIST_B_TILE,                        ARE1F404.105    
     & RIB_TILE,SNOW_SURF_HTF,SOIL_SURF_HTF,                               ARE1F404.106    
     & TILE_INDEX,TILE_PTS,TILE_FRAC,                                      ABX1F405.220    
                                                                           BL_CTL1.204    
C LOGICAL switch LTIMER                                                    ASJ1F304.111    
                                                                           ASJ1F304.112    
     &   LTIMER)                                                           ASJ1F304.113    
                                                                           ASJ1F304.114    
                                                                           ASJ1F304.115    
      IF (LTIMER) THEN                                                     ASJ1F304.118    
        CALL TIMER('BL_INTCT',4)                                           AJS1F400.241    
      END IF                                                               BL_CTL1.207    
                                                                           BL_CTL1.208    
*IF DEF,MPP                                                                APB1F305.141    
! Do a boundary swap on the U,V and THETA arrays that have just            APB1F305.142    
! been calculated                                                          APB1F305.143    
      CALL SWAPBOUNDS(D1(JU(1)),ROW_LENGTH,tot_P_ROWS,                     APBGF401.29     
     &                EW_Halo,NS_Halo,BL_LEVELS)                           APBGF401.30     
      CALL SWAPBOUNDS(D1(JV(1)),ROW_LENGTH,tot_P_ROWS,                     APBGF401.31     
     &                EW_Halo,NS_Halo,BL_LEVELS)                           APBGF401.32     
      CALL SWAPBOUNDS(D1(JTHETA(1)),ROW_LENGTH,tot_P_ROWS,                 APBGF401.33     
     &                EW_Halo,NS_Halo,BL_LEVELS)                           APBGF401.34     
      CALL SWAPBOUNDS(D1(JQ(1)),ROW_LENGTH,tot_P_ROWS,                     ADR5F403.78     
     &                EW_Halo,NS_Halo,BL_LEVELS)                           ADR5F403.79     
      CALL SWAPBOUNDS(T1_SD,ROW_LENGTH,tot_P_ROWS,                         ADR5F403.80     
     &                EW_Halo,NS_Halo,1)                                   ADR5F403.81     
      CALL SWAPBOUNDS(Q1_SD,ROW_LENGTH,tot_P_ROWS,                         ADR5F403.82     
     &                EW_Halo,NS_Halo,1)                                   ADR5F403.83     
*ENDIF                                                                     APB1F305.150    
CL *********************************************************************   ASJ1F304.119    
CL SECTION 3.3 Implicit mixing of tracers in boundary layer                ASJ1F304.120    
CL *********************************************************************   ASJ1F304.121    
                                                                           ASJ1F304.122    
      IF (LTIMER) THEN                                                     ASJ1F304.123    
        CALL TIMER('TR_MIX',3)                                             ASJ1F304.124    
      END IF                                                               ASJ1F304.125    
                                                                           ASJ1F304.126    
      IF (L_BL_TRACER_MIX) THEN                                            ASJ1F304.127    
                                                                           ASJ1F304.128    
        DO N_TRACER = 1,TR_VARS                                            ASJ1F304.129    
                                                                           ASJ1F304.130    
          CALL  TR_MIX (                                                   ASJ1F304.131    
     &      P_FIELD,BL_LEVELS,FIRST_ROW,ROW_LENGTH,ROWS                    ASJ1F304.132    
     &     ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK)                      ASJ1F304.133    
     &     ,WORK4(P_FIELDDA+1),WORK4(1)                                    ASJ1F304.134    
     &     ,D1(JPSTAR)                                                     ASJ1F304.135    
     &     ,SECS_PER_STEPim(atmos_im)                                      ADR1F305.45     
     &     ,TR_FLUX,D1(JTRACER(1,N_TRACER))                                ASJ1F304.137    
     &     ,ZERO_FIELD,ZERO_FIELD,DRYDEP_STR                               AJS1F401.309    
     &     ,NRML,ICODE,LTIMER                                              ASJ1F304.138    
     &     )                                                               ASJ1F304.139    
                                                                           ASJ1F304.140    
           IF (ICODE .GT. 0) GOTO 9999                                     GPB1F403.304    
                                                                           ASJ1F304.141    
           IF (SF(99+N_TRACER,3)) THEN                                     ASJ1F304.142    
                                                                           ASJ1F304.143    
             CALL COPYDIAG(STASHWORK(SI(99+N_TRACER,3,im_index)),          GDR4F305.34     
     &          TR_FLUX,FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,         GPB1F403.305    
     &          im_ident,3,99+N_TRACER,                                    GPB1F403.306    
*CALL ARGPPX                                                               GPB1F403.307    
     &          ICODE,CMESSAGE)                                            GPB1F403.308    
                                                                           GPB1F403.309    
             IF (ICODE .GT. 0) GOTO 9999                                   GPB1F403.310    
           END IF                                                          ASJ1F304.146    
                                                                           ASJ1F304.147    
                                                                           ASJ1F304.151    
        END DO   ! End of N_TRACER loop                                    ASJ1F304.152    
      ENDIF    ! End of L_BL_TRACER_MIX block                              ASJ1F304.153    
                                                                           ASJ1F304.154    
CL *********************************************************************   ASJ1F304.155    
CL SECTION 3.3.1 Implicit mixing of aerosol in boundary layer              ASJ1F304.156    
CL *********************************************************************   ASJ1F304.157    
                                                                           ASJ1F304.158    
      IF (L_MURK_ADVECT) THEN                                              ASJ1F304.159    
                                                                           ASJ1F304.160    
                                                                           ASJ1F304.161    
          CALL  TR_MIX (                                                   ASJ1F304.162    
     &      P_FIELD,BL_LEVELS,FIRST_ROW,ROW_LENGTH,ROWS                    ASJ1F304.163    
     &     ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK)                      ASJ1F304.164    
     &     ,WORK4(P_FIELDDA+1),WORK4(1)                                    ASJ1F304.165    
     &     ,D1(JPSTAR)                                                     ASJ1F304.166    
     &     ,SECS_PER_STEPim(atmos_im)                                      ADR1F305.46     
     &     ,TR_FLUX,D1(JMURK(1))                                           ASJ1F304.168    
     &     ,ZERO_FIELD,ZERO_FIELD,DRYDEP_STR                               AJS1F401.310    
     &     ,NRML,ICODE,LTIMER                                              ASJ1F304.169    
     &     )                                                               ASJ1F304.170    
                                                                           ASJ1F304.171    
           IF (ICODE .GT. 0) GOTO 9999                                     GPB1F403.311    
                                                                           ASJ1F304.172    
           IF (SF(129,3)) THEN                                             ASJ1F304.173    
                                                                           ASJ1F304.174    
             CALL COPYDIAG(STASHWORK(SI(129,3,im_index)),TR_FLUX,          GDR4F305.36     
     &          FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                 GPB1F403.312    
     &          im_ident,3,129,                                            GPB1F403.313    
*CALL ARGPPX                                                               GPB1F403.314    
     &          ICODE,CMESSAGE)                                            GPB1F403.315    
                                                                           GPB1F403.316    
             IF (ICODE .GT. 0) GOTO 9999                                   GPB1F403.317    
           END IF                                                          ASJ1F304.177    
                                                                           ASJ1F304.178    
                                                                           ASJ1F304.182    
      ENDIF    ! End of L_MURK_ADVECT block                                ASJ1F304.183    
                                                                           ASJ1F304.184    
! **********************************************************************   AYY1F404.67     
!  SECTION 3.3.1a Implicit mixing of ice in boundary layer                 AYY1F404.68     
! **********************************************************************   AYY1F404.69     
!     L_lspice_if2:                                                        AYY1F404.70     
      IF (L_LSPICE) THEN                                                   AYY1F404.71     
        CALL  TR_MIX (                                                     AYY1F404.72     
     &        P_FIELD,BL_LEVELS,FIRST_ROW,ROW_LENGTH,ROWS                  AYY1F404.73     
     &       ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK)                    AYY1F404.74     
     &       ,WORK4(P_FIELDDA+1),WORK4(1)                                  AYY1F404.75     
     &       ,D1(JPSTAR)                                                   AYY1F404.76     
     &       ,SECS_PER_STEPim(atmos_im)                                    AYY1F404.77     
     &       ,QCF_FLUX,D1(JQCF(1))                                         AYY1F404.78     
     &       ,ZERO_FIELD,ZERO_FIELD,DRYDEP_STR                             AYY1F404.79     
     &       ,NRML,ICODE,LTIMER                                            AYY1F404.80     
     &        )                                                            AYY1F404.81     
!                                                                          AYY1F404.82     
        IF (ICODE.GT.0) THEN                                               AYY1F404.83     
          RETURN                                                           AYY1F404.84     
        ENDIF                                                              AYY1F404.85     
      ENDIF  ! L_lspice_if2                                                AYY1F404.86     
!                                                                          AYY1F404.87     
CL********************************************************************     AJS1F401.311    
CL SECTION 3.3.2 Implicit mixing of SULPHUR CYCLE tracers in b.layer       AJS1F401.312    
CL               including dry deposition and injection of emissions       AJS1F401.313    
CL               Explicit addition of non_surface emissions                AJS1F401.314    
CL********************************************************************     AJS1F401.315    
!                                                                          AJS1F401.316    
        IF (L_SULPC_SO2) THEN     ! SULPHUR CYCLE IS REQUIRED              AJS1F401.317    
!                                                                          AJS1F401.318    
            IF (L_SO2_HILEM) THEN      ! Add non-surface emissions         AJS1F401.319    
!                                                                          AJS1F401.320    
            CALL TRSRCE( A_LEVDEPC(JDELTA_AK+SO2_HIGH_LEVEL-1),            AJS1F401.321    
     &                   A_LEVDEPC(JDELTA_BK+SO2_HIGH_LEVEL-1),            AJS1F401.322    
     &                   P_FIELD,P_FIELD,                                  AJS1F401.323    
     &                   D1(JPSTAR),                                       AJS1F401.324    
     &                   D1(JSO2(SO2_HIGH_LEVEL)),                         AJS1F401.325    
     &                   D1(JSO2_HILEM),                                   AJS1F401.326    
     &                   SECS_PER_STEPim(atmos_im),                        AJS1F401.327    
     &                   I_HOUR,                                           AJS1F401.328    
     &                   I_MINUTE,                                         AJS1F401.329    
     &                   0.0,        !AMPlitude of diurnal var of emiss    AJS1F401.330    
     &                   ICODE)                                            AJS1F401.331    
!                                                                          AJS1F401.332    
            END IF                                                         AJS1F401.333    
!                                                                          AJS1F401.334    
!   Calculate STR_RESIST_B and STR_RESIST_S for dry deposition and         AJS1F401.335    
!   output to STASH.                                                       AJS1F401.336    
!                                                                          AJS1F401.337    
!   For RESIST_B check to eliminate possible negative values               AJS1F401.338    
      DO I=FIRST_POINT,LAST_POINT                                          AJS1F401.339    
        IF (RESIST_B(I) .LT. 0.0)     THEN                                 AJS1F401.340    
          RESIST_B(I) = 0.0                                                AJS1F401.341    
        END IF                                                             AJS1F401.342    
      END DO                                                               AJS1F401.343    
!                                                                          AJS1F401.344    
!   For STR_RESIST_S values depend on surface type (land, sea,             AJS1F401.345    
!    snow,ice) as well as tracer identity.                                 AJS1F401.346    
!                                                                          AJS1F401.347    
!   First calculate stomatal resistance; initialise to zero, then fill     AJS1F401.348    
!   available land point values.                                           AJS1F401.349    
!                                                                          AJS1F401.350    
        DO I=1,P_FIELD                                                     AJS1F401.351    
          RESIST_S(I)=0.0                                                  AJS1F401.352    
       DAMP_FACTOR(I) = 1.0                                                AWO3F405.12     
        END DO                                                             AJS1F401.353    
!                                                                          AJS1F401.354    
        DO I=1,LAND_FIELD                                                  AJS1F401.355    
!                                                                          AJS1F401.356    
C Use JGS for interactive stomatal conductance (MOSES) or                  AJS1F401.357    
C JVEG_FLDS(5) for old stomatal resistances, both on land points only      AJS1F401.358    
!                                                                          AJS1F401.359    
               IF ( D1(JGS+I-1) .GT. COND_LIM) THEN                        AJS1F401.360    
                 RESIST_S(LAND_LIST(I))= 1.0/D1(JGS+I-1)                   AJS1F401.361    
               ELSE                                                        AJS1F401.362    
                 RESIST_S(LAND_LIST(I))=1.0/COND_LIM     ! Avoid  /0.0     AJS1F401.363    
               END IF                                                      AJS1F401.364    
!                                                                          AJS1F401.365    
COMMENT OUT    RESIST_S(LAND_LIST(I))= D1(JVEG_FLDS(5)+I-1)                AJS1F401.366    
!                                                                          AJS1F401.367    
!  Reduce the surface resistance by up to two-thirds if                    AWO3F405.13     
!  the canopy is damp, because SO2 and NH3 both dissolve                   AWO3F405.14     
!  in the canopy water. (The value of 2/3 is empirical.)                   AWO3F405.15     
!  Two special cases need to be trapped here. The canopy                   AWO3F405.16     
!  capacity (JSURF_CAP) is zero at land ice points, so                     AWO3F405.17     
!  exclude these from the calculation. Also, there is a                    AWO3F405.18     
!  possibility that canopy water may exceed canopy capacity                AWO3F405.19     
!  due to leaves having fallen, so take care of this too.                  AWO3F405.20     
!  Note that instead of applying DAMP_FACTOR here, we store                AWO3F405.21     
!  it so that it can be applied later. This means that it                  AWO3F405.22     
!  does not automatically apply to all the species.                        AWO3F405.23     
!                                                                          AWO3F405.24     
        IF( (D1(JSURF_CAP+I-1) .GT. 0.01) .AND.                            AWO3F405.25     
     &      (D1(JCANOPY_WATER+I-1) .GT. 0.0) ) THEN                        AWO3F405.26     
!                                                                          AWO3F405.27     
          IF( D1(JCANOPY_WATER+I-1) .LE. D1(JSURF_CAP+I-1) ) THEN          AWO3F405.28     
            DAMP_FACTOR(LAND_LIST(I)) = 1.0 - 0.66667*                     AWO3F405.29     
     &      ( D1(JCANOPY_WATER+I-1) / D1(JSURF_CAP+I-1) )                  AWO3F405.30     
          ELSE                                                             AWO3F405.31     
            DAMP_FACTOR(LAND_LIST(I)) = 0.33333                            AWO3F405.32     
          ENDIF                                                            AWO3F405.33     
!                                                                          AWO3F405.34     
        ENDIF                                                              AWO3F405.35     
!                                                                          AWO3F405.36     
       END DO                                                              AJS1F401.368    
!                                                                          AJS1F401.369    
! **CODE FOR SO2**                                                         AJS1F401.370    
!                                                                          AJS1F401.371    
!   Note that RESIST_S = 0  over non-land points and Antarctica, so need   AJS1F401.372    
!   to reset STR_RESIST_S for SO2 to  suitable values over snow and ice    AJS1F401.373    
!   (0 is acceptable over sea ).                                           AJS1F401.374    
!   Where there is snow cover, calculate an approximate snow fraction      AJS1F401.375    
!    for the grid box using the formula 1-exp(-ASNOW*SNODEP)               AJS1F401.376    
!   (Note that for atmospheric model run there should not be any sea       AJS1F401.377    
!    points with SNODEP.GT.0, and land_ice points should all have          AJS1F401.378    
!    large values of SNODEP. Over Antarctica RESIST_S (for H2O) is 0       AJS1F401.379    
!    so STR_RESIST_S for SO2 has to be set separately to R_SNOW )          AJS1F401.380    
!                                                                          AJS1F401.381    
      DO I=FIRST_POINT,LAST_POINT                                          AJS1F401.382    
!                                                                          AJS1F401.383    
          STR_RESIST_B(I)=RESB_SO2*RESIST_B(I)                             AJS1F401.384    
          STR_RESIST_S(I) = RESS_SO2*RESIST_S(I)*DAMP_FACTOR(I)            AWO3F405.37     
!                                                                          AJS1F401.386    
       IF (D1(JSNODEP+I-1).GT.0.0 .AND. STR_RESIST_S(I).GT.0.0) THEN       AJS1F401.387    
          SNOW_F=1.0-EXP(-ASNOW*D1(JSNODEP+I-1))                           AJS1F401.388    
          STR_RESIST_S(I) = 1.0 /                                          AJS1F401.389    
     &    (SNOW_F/R_SNOW + (1.0-SNOW_F)/STR_RESIST_S(I))                   AJS1F401.390    
!                                                                          AJS1F401.391    
       ELSE  IF ((D1(JSNODEP+I-1).GT.0.0 .AND. RESIST_S(I).EQ.0.0) .OR.    AJS1F401.392    
     &           (D1(JICE_FRACTION+I-1).GT.0.0) )      THEN                AJS1F401.393    
          STR_RESIST_S(I)=R_SNOW                                           AJS1F401.394    
!                                                                          AJS1F401.395    
       END IF                                                              AJS1F401.396    
!                                                                          AJS1F401.397    
!  Calculate RES_FACTOR for SO2  to allow dry deposition                   AJS1F401.398    
!                                                                          AJS1F401.399    
       RES_FACTOR(I) = ARESIST(I) /                                        AJS1F401.400    
     &           (ARESIST(I)+ STR_RESIST_B(I)+STR_RESIST_S(I))             AJS1F401.401    
!                                                                          AJS1F401.402    
      END DO                         ! END I LOOP                          AJS1F401.403    
!                                                                          AJS1F401.404    
!  CALL TR_MIX FOR SO2                                                     AJS1F401.405    
!                                                                          AJS1F401.406    
      IF (L_SO2_SURFEM) THEN           ! mix in surface emissions          AJS1F401.407    
!                                                                          AJS1F401.408    
      CALL TR_MIX(                                                         AJS1F401.409    
     &        P_FIELD,BL_LEVELS,FIRST_ROW,ROW_LENGTH,ROWS                  AJS1F401.410    
     &       ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK)                    AJS1F401.411    
     &       ,WORK4(P_FIELDDA+1),RHO_ARESIST                               AJS1F401.412    
     &       ,D1(JPSTAR),SECS_PER_STEPim(atmos_im)                         AJS1F401.413    
     &       ,TR_FLUX,D1(JSO2(1))                                          AJS1F401.414    
     &       ,D1(JSO2_EM),RES_FACTOR,DRYDEP_STR                            AJS1F401.415    
     &       ,NRML                                                         AJS1F401.416    
     &       ,ICODE,TIMER)                                                 AJS1F401.417    
!                                                                          AJS1F401.418    
      ELSE                              ! no surface emissions             AJS1F401.419    
!                                                                          AJS1F401.420    
      CALL TR_MIX(                                                         AJS1F401.421    
     &        P_FIELD,BL_LEVELS,FIRST_ROW,ROW_LENGTH,ROWS                  AJS1F401.422    
     &       ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK)                    AJS1F401.423    
     &       ,WORK4(P_FIELDDA+1),RHO_ARESIST                               AJS1F401.424    
     &       ,D1(JPSTAR),SECS_PER_STEPim(atmos_im)                         AJS1F401.425    
     &       ,TR_FLUX,D1(JSO2(1))                                          AJS1F401.426    
     &       ,ZERO_FIELD,RES_FACTOR,DRYDEP_STR                             AJS1F401.427    
     &       ,NRML                                                         AJS1F401.428    
     &       ,ICODE,TIMER)                                                 AJS1F401.429    
!                                                                          AJS1F401.430    
      END IF                                                               AJS1F401.431    
      IF (ICODE .GT. 0) GOTO 9999                                          GPB1F403.318    
!                                                                          AJS1F401.432    
! WRITE TO STASH                                                           AJS1F401.433    
!                                                                          AJS1F401.434    
       IF(SF(270,3)) THEN           ! write dry dep FLUX SO2 to stash      AJS1F401.435    
!  Change sign of dry dep flux (otherwise negative)                        AJS1F401.436    
      DO I=FIRST_POINT,LAST_POINT                                          AJS1F401.437    
      DRYDEP_STR(I) = -DRYDEP_STR(I)                                       AJS1F401.438    
      END DO                                                               AJS1F401.439    
!                                                                          AJS1F401.440    
         CALL COPYDIAG(STASHWORK(SI(270,3,im_index)),DRYDEP_STR,           AJS1F401.441    
     &                 FIRST_POINT,LAST_POINT,                             AJS1F401.442    
     &                 P_FIELD,ROW_LENGTH,                                 GPB1F403.319    
     &                 im_ident,3,270,                                     GPB1F403.320    
*CALL ARGPPX                                                               GPB1F403.321    
     &          ICODE,CMESSAGE)                                            GPB1F403.322    
                                                                           GPB1F403.323    
         IF (ICODE .GT. 0) GOTO 9999                                       GPB1F403.324    
       END IF                                                              AJS1F401.444    
C                                                                          AJS1F401.445    
C                                                                          AJS1F401.446    
       IF(SF(274,3).OR.SF(282,3)) THEN  ! write Rb for SO2 to stash        AWO1F404.147    
         CALL COPYDIAG(STASHWORK(SI(274,3,im_index)),STR_RESIST_B,         AJS1F401.448    
     &                 FIRST_POINT,LAST_POINT,                             AJS1F401.449    
     &                 P_FIELD,ROW_LENGTH,                                 GPB1F403.325    
     &                 im_ident,3,274,                                     GPB1F403.326    
*CALL ARGPPX                                                               GPB1F403.327    
     &          ICODE,CMESSAGE)                                            GPB1F403.328    
                                                                           GPB1F403.329    
         IF (ICODE .GT. 0) GOTO 9999                                       GPB1F403.330    
       END IF                                                              AJS1F401.451    
C                                                                          AJS1F401.452    
       IF(SF(278,3).OR.SF(282,3)) THEN  ! write Rs for SO2 to stash        AWO1F404.148    
         CALL COPYDIAG(STASHWORK(SI(278,3,im_index)),STR_RESIST_S,         AJS1F401.454    
     &                 FIRST_POINT,LAST_POINT,                             AJS1F401.455    
     &                 P_FIELD,ROW_LENGTH,                                 GPB1F403.331    
     &                 im_ident,3,278,                                     GPB1F403.332    
*CALL ARGPPX                                                               GPB1F403.333    
     &          ICODE,CMESSAGE)                                            GPB1F403.334    
                                                                           GPB1F403.335    
         IF (ICODE .GT. 0) GOTO 9999                                       GPB1F403.336    
       END IF                                                              AJS1F401.457    
C                                                                          AJS1F401.458    
!  ** FOR NH3 IF PRESENT **                                                AWO3F405.38     
!                                                                          AWO3F405.39     
      IF (L_SULPC_NH3) THEN                                                AWO3F405.40     
!                                                                          AWO3F405.41     
!  Calculate RES_FACTOR for NH3 to allow dry deposition in same way        AWO3F405.42     
!  as for SO2 (including code for snow and ice)                            AWO3F405.43     
!                                                                          AWO3F405.44     
      DO I=FIRST_POINT,LAST_POINT                                          AWO3F405.45     
!                                                                          AWO3F405.46     
       STR_RESIST_B(I)=RESB_NH3 * RESIST_B(I)                              AWO3F405.47     
       STR_RESIST_S(I)=RESS_NH3 * RESIST_S(I)*DAMP_FACTOR(I)               AWO3F405.48     
!                                                                          AWO3F405.49     
       IF (D1(JSNODEP+I-1).GT.0.0 .AND. STR_RESIST_S(I).GT.0.0) THEN       AWO3F405.50     
          SNOW_F=1.0-EXP(-ASNOW*D1(JSNODEP+I-1))                           AWO3F405.51     
          STR_RESIST_S(I) = 1.0 /                                          AWO3F405.52     
     &    (SNOW_F/R_SNOW + (1.0-SNOW_F)/STR_RESIST_S(I))                   AWO3F405.53     
!                                                                          AWO3F405.54     
       ELSE IF ((D1(JSNODEP+I-1).GT.0.0 .AND. RESIST_S(I).EQ.0.0) .OR.     AWO3F405.55     
     &           (D1(JICE_FRACTION+I-1).GT.0.0) )      THEN                AWO3F405.56     
          STR_RESIST_S(I)=R_SNOW                                           AWO3F405.57     
!                                                                          AWO3F405.58     
       END IF                                                              AWO3F405.59     
!                                                                          AWO3F405.60     
!  Calculate RES_FACTOR for NH3                                            AWO3F405.61     
!                                                                          AWO3F405.62     
       RES_FACTOR(I) = ARESIST(I) /                                        AWO3F405.63     
     &           (ARESIST(I)+ STR_RESIST_B(I)+STR_RESIST_S(I))             AWO3F405.64     
!                                                                          AWO3F405.65     
      END DO                         ! END I LOOP                          AWO3F405.66     
!                                                                          AWO3F405.67     
!  CALL TR_MIX FOR NH3                                                     AWO3F405.68     
!                                                                          AWO3F405.69     
      IF (L_NH3_EM) THEN           ! mix in surface emissions              AWO3F405.70     
!                                                                          AWO3F405.71     
      CALL TR_MIX(                                                         AWO3F405.72     
     &        P_FIELD,BL_LEVELS,FIRST_ROW,ROW_LENGTH,ROWS                  AWO3F405.73     
     &       ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK)                    AWO3F405.74     
     &       ,WORK4(P_FIELDDA+1),RHO_ARESIST                               AWO3F405.75     
     &       ,D1(JPSTAR),SECS_PER_STEPim(atmos_im)                         AWO3F405.76     
     &       ,TR_FLUX,D1(JNH3(1))                                          AWO3F405.77     
     &       ,D1(JNH3_EM),RES_FACTOR,DRYDEP_STR                            AWO3F405.78     
     &       ,NRML                                                         AWO3F405.79     
     &       ,ICODE,TIMER)                                                 AWO3F405.80     
!                                                                          AWO3F405.81     
      ELSE                              ! no surface emissions             AWO3F405.82     
!                                                                          AWO3F405.83     
      CALL TR_MIX(                                                         AWO3F405.84     
     &        P_FIELD,BL_LEVELS,FIRST_ROW,ROW_LENGTH,ROWS                  AWO3F405.85     
     &       ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK)                    AWO3F405.86     
     &       ,WORK4(P_FIELDDA+1),RHO_ARESIST                               AWO3F405.87     
     &       ,D1(JPSTAR),SECS_PER_STEPim(atmos_im)                         AWO3F405.88     
     &       ,TR_FLUX,D1(JNH3(1))                                          AWO3F405.89     
     &       ,ZERO_FIELD,RES_FACTOR,DRYDEP_STR                             AWO3F405.90     
     &       ,NRML                                                         AWO3F405.91     
     &       ,ICODE,TIMER)                                                 AWO3F405.92     
      END IF                                                               AWO3F405.93     
!                                                                          AWO3F405.94     
      IF (ICODE .GT. 0) GOTO 9999                                          AWO3F405.95     
!                                                                          AWO3F405.96     
! WRITE TO STASH                                                           AWO3F405.97     
!                                                                          AWO3F405.98     
       IF(SF(300,3)) THEN           ! write dry dep FLUX NH3 to stash      AWO3F405.99     
!  Change sign of dry dep flux (otherwise negative)                        AWO3F405.100    
      DO I=FIRST_POINT,LAST_POINT                                          AWO3F405.101    
      DRYDEP_STR(I) = -DRYDEP_STR(I)                                       AWO3F405.102    
      END DO                                                               AWO3F405.103    
!                                                                          AWO3F405.104    
         CALL COPYDIAG(STASHWORK(SI(300,3,im_index)),DRYDEP_STR,           AWO3F405.105    
     &                 FIRST_POINT,LAST_POINT,                             AWO3F405.106    
     &                 P_FIELD,ROW_LENGTH,                                 AWO3F405.107    
     &                 im_ident,3,300,                                     AWO3F405.108    
*CALL ARGPPX                                                               AWO3F405.109    
     &          ICODE,CMESSAGE)                                            AWO3F405.110    
                                                                           AWO3F405.111    
         IF (ICODE .GT. 0) GOTO 9999                                       AWO3F405.112    
       END IF                                                              AWO3F405.113    
!                                                                          AWO3F405.114    
      END IF                ! END OF L_SULPC_NH3 BLOCK                     AWO3F405.115    
!                                                                          AWO3F405.116    
!  ** FOR SO4_AITKEN MODE **                                               AJS1F401.459    
!                                                                          AJS1F401.460    
      DO I=FIRST_POINT,LAST_POINT                                          AJS1F401.461    
!                                                                          AJS1F401.462    
       STR_RESIST_B(I)=RESB_SO4_AIT * RESIST_B(I)                          AJS1F401.463    
       STR_RESIST_S(I)=RESS_SO4_AIT * RESIST_S(I)                          AJS1F401.464    
!                                                                          AJS1F401.465    
       RES_FACTOR(I) = ARESIST(I) /                                        AJS1F401.466    
     &       (ARESIST(I)+STR_RESIST_B(I)+STR_RESIST_S(I))                  AJS1F401.467    
!                                                                          AJS1F401.468    
      END DO                                                               AJS1F401.469    
!                                                                          AJS1F401.470    
!  CALL TR_MIX FOR SO4_AIT                                                 AJS1F401.471    
!                                                                          AJS1F401.472    
      CALL TR_MIX(                                                         AJS1F401.473    
     &        P_FIELD,BL_LEVELS,FIRST_ROW,ROW_LENGTH,ROWS                  AJS1F401.474    
     &       ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK)                    AJS1F401.475    
     &       ,WORK4(P_FIELDDA+1),RHO_ARESIST                               AJS1F401.476    
     &       ,D1(JPSTAR),SECS_PER_STEPim(atmos_im)                         AJS1F401.477    
     &       ,TR_FLUX,D1(JSO4_AITKEN(1))                                   AJS1F401.478    
     &       ,ZERO_FIELD,RES_FACTOR,DRYDEP_STR                             AJS1F401.479    
     &       ,NRML                                                         AJS1F401.480    
     &       ,ICODE,TIMER)                                                 AJS1F401.481    
      IF (ICODE .GT. 0) GOTO 9999                                          GPB1F403.337    
!                                                                          AJS1F401.482    
! WRITE TO STASH                                                           AJS1F401.483    
!                                                                          AJS1F401.484    
       IF(SF(271,3)) THEN       ! write dry dep flux SO4_AIT to stash      AJS1F401.485    
!  Change sign of dry dep flux (otherwise negative)                        AJS1F401.486    
      DO I=FIRST_POINT,LAST_POINT                                          AJS1F401.487    
      DRYDEP_STR(I) = -DRYDEP_STR(I)                                       AJS1F401.488    
      END DO                                                               AJS1F401.489    
!                                                                          AJS1F401.490    
         CALL COPYDIAG(STASHWORK(SI(271,3,im_index)),DRYDEP_STR,           AJS1F401.491    
     &                 FIRST_POINT,LAST_POINT,                             AJS1F401.492    
     &                 P_FIELD,ROW_LENGTH,                                 GPB1F403.338    
     &                 im_ident,3,271,                                     GPB1F403.339    
*CALL ARGPPX                                                               GPB1F403.340    
     &          ICODE,CMESSAGE)                                            GPB1F403.341    
                                                                           GPB1F403.342    
         IF (ICODE .GT. 0) GOTO 9999                                       GPB1F403.343    
       END IF                                                              AJS1F401.494    
!                                                                          AJS1F401.495    
       IF(SF(275,3).OR.SF(283,3)) THEN  ! write Rb for SO4_AIT to stash    AWO1F404.149    
         CALL COPYDIAG(STASHWORK(SI(275,3,im_index)),STR_RESIST_B,         AJS1F401.497    
     &                 FIRST_POINT,LAST_POINT,                             AJS1F401.498    
     &                 P_FIELD,ROW_LENGTH,                                 GPB1F403.344    
     &                 im_ident,3,275,                                     GPB1F403.345    
*CALL ARGPPX                                                               GPB1F403.346    
     &          ICODE,CMESSAGE)                                            GPB1F403.347    
                                                                           GPB1F403.348    
         IF (ICODE .GT. 0) GOTO 9999                                       GPB1F403.349    
       END IF                                                              AJS1F401.500    
!                                                                          AJS1F401.501    
       IF(SF(279,3).OR.SF(283,3)) THEN  ! write Rs for SO4_AIT to stash    AWO1F404.150    
         CALL COPYDIAG(STASHWORK(SI(279,3,im_index)),STR_RESIST_S,         AJS1F401.503    
     &                 FIRST_POINT,LAST_POINT,                             AJS1F401.504    
     &                 P_FIELD,ROW_LENGTH,                                 GPB1F403.350    
     &                 im_ident,3,279,                                     GPB1F403.351    
*CALL ARGPPX                                                               GPB1F403.352    
     &          ICODE,CMESSAGE)                                            GPB1F403.353    
                                                                           GPB1F403.354    
         IF (ICODE .GT. 0) GOTO 9999                                       GPB1F403.355    
       END IF                                                              AJS1F401.506    
C                                                                          AJS1F401.507    
!                                                                          AJS1F401.508    
!  ** FOR SO4_ACCU   MODE **                                               AJS1F401.509    
!                                                                          AJS1F401.510    
      DO I=FIRST_POINT,LAST_POINT                                          AJS1F401.511    
!                                                                          AJS1F401.512    
       STR_RESIST_B(I)=RESB_SO4_ACC * RESIST_B(I)                          AJS1F401.513    
       STR_RESIST_S(I)=RESS_SO4_ACC * RESIST_S(I)                          AJS1F401.514    
!                                                                          AJS1F401.515    
       RES_FACTOR(I) = ARESIST(I) /                                        AJS1F401.516    
     &  (ARESIST(I)+STR_RESIST_B(I)+STR_RESIST_S(I))                       AJS1F401.517    
!                                                                          AJS1F401.518    
      END DO                                                               AJS1F401.519    
!                                                                          AJS1F401.520    
!  CALL TR_MIX FOR SO4_ACC                                                 AJS1F401.521    
!                                                                          AJS1F401.522    
      CALL TR_MIX(                                                         AJS1F401.523    
     &        P_FIELD,BL_LEVELS,FIRST_ROW,ROW_LENGTH,ROWS                  AJS1F401.524    
     &       ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK)                    AJS1F401.525    
     &       ,WORK4(P_FIELDDA+1),RHO_ARESIST                               AJS1F401.526    
     &       ,D1(JPSTAR),SECS_PER_STEPim(atmos_im)                         AJS1F401.527    
     &       ,TR_FLUX,D1(JSO4_ACCU(1))                                     AJS1F401.528    
     &       ,ZERO_FIELD,RES_FACTOR,DRYDEP_STR                             AJS1F401.529    
     &       ,NRML                                                         AJS1F401.530    
     &       ,ICODE,TIMER)                                                 AJS1F401.531    
      IF (ICODE .GT. 0) GOTO 9999                                          GPB1F403.356    
!                                                                          AJS1F401.532    
! WRITE TO STASH                                                           AJS1F401.533    
!                                                                          AJS1F401.534    
       IF(SF(272,3)) THEN       ! write dry dep flux SO4_ACC to stash      AJS1F401.535    
CL Change sign of dry dep flux (otherwise negative)                        AJS1F401.536    
      DO I=FIRST_POINT,LAST_POINT                                          AJS1F401.537    
      DRYDEP_STR(I) = -DRYDEP_STR(I)                                       AJS1F401.538    
      END DO                                                               AJS1F401.539    
C                                                                          AJS1F401.540    
         CALL COPYDIAG(STASHWORK(SI(272,3,im_index)),DRYDEP_STR,           AJS1F401.541    
     &                 FIRST_POINT,LAST_POINT,                             AJS1F401.542    
     &                 P_FIELD,ROW_LENGTH,                                 GPB1F403.357    
     &                 im_ident,3,272,                                     GPB1F403.358    
*CALL ARGPPX                                                               GPB1F403.359    
     &          ICODE,CMESSAGE)                                            GPB1F403.360    
                                                                           GPB1F403.361    
         IF (ICODE .GT. 0) GOTO 9999                                       GPB1F403.362    
       END IF                                                              AJS1F401.544    
C                                                                          AJS1F401.545    
       IF(SF(276,3).OR.SF(284,3)) THEN  ! write Rb for SO4_ACC to stash    AWO1F404.151    
         CALL COPYDIAG(STASHWORK(SI(276,3,im_index)),STR_RESIST_B,         AJS1F401.547    
     &                 FIRST_POINT,LAST_POINT,                             AJS1F401.548    
     &                 P_FIELD,ROW_LENGTH,                                 GPB1F403.363    
     &                 im_ident,3,276,                                     GPB1F403.364    
*CALL ARGPPX                                                               GPB1F403.365    
     &          ICODE,CMESSAGE)                                            GPB1F403.366    
                                                                           GPB1F403.367    
         IF (ICODE .GT. 0) GOTO 9999                                       GPB1F403.368    
       END IF                                                              AJS1F401.550    
C                                                                          AJS1F401.551    
       IF(SF(280,3).OR.SF(284,3)) THEN  ! write Rs for SO4_ACC to stash    AWO1F404.152    
         CALL COPYDIAG(STASHWORK(SI(280,3,im_index)),STR_RESIST_S,         AJS1F401.553    
     &                 FIRST_POINT,LAST_POINT,                             AJS1F401.554    
     &                 P_FIELD,ROW_LENGTH,                                 GPB1F403.369    
     &                 im_ident,3,280,                                     GPB1F403.370    
*CALL ARGPPX                                                               GPB1F403.371    
     &          ICODE,CMESSAGE)                                            GPB1F403.372    
                                                                           GPB1F403.373    
         IF (ICODE .GT. 0) GOTO 9999                                       GPB1F403.374    
       END IF                                                              AJS1F401.556    
C                                                                          AJS1F401.557    
!                                                                          AJS1F401.558    
!  ** FOR SO4_DISS   MODE **                                               AJS1F401.559    
!                                                                          AJS1F401.560    
      DO I=FIRST_POINT,LAST_POINT                                          AJS1F401.561    
!                                                                          AJS1F401.562    
       STR_RESIST_B(I)=RESB_SO4_DIS * RESIST_B(I)                          AJS1F401.563    
       STR_RESIST_S(I)=RESS_SO4_DIS * RESIST_S(I)                          AJS1F401.564    
!                                                                          AJS1F401.565    
       RES_FACTOR(I) = ARESIST(I) /                                        AJS1F401.566    
     &      (ARESIST(I)+STR_RESIST_B(I)+STR_RESIST_S(I))                   AJS1F401.567    
!                                                                          AJS1F401.568    
      END DO                                                               AJS1F401.569    
!                                                                          AJS1F401.570    
!  CALL TR_MIX FOR SO4_DIS                                                 AJS1F401.571    
!                                                                          AJS1F401.572    
      CALL TR_MIX(                                                         AJS1F401.573    
     &        P_FIELD,BL_LEVELS,FIRST_ROW,ROW_LENGTH,ROWS                  AJS1F401.574    
     &       ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK)                    AJS1F401.575    
     &       ,WORK4(P_FIELDDA+1),RHO_ARESIST                               AJS1F401.576    
     &       ,D1(JPSTAR),SECS_PER_STEPim(atmos_im)                         AJS1F401.577    
     &       ,TR_FLUX,D1(JSO4_DISS(1))                                     AJS1F401.578    
     &       ,ZERO_FIELD,RES_FACTOR,DRYDEP_STR                             AJS1F401.579    
     &       ,NRML                                                         AJS1F401.580    
     &       ,ICODE,TIMER)                                                 AJS1F401.581    
      IF (ICODE .GT. 0) GOTO 9999                                          GPB1F403.375    
!                                                                          AJS1F401.582    
! WRITE TO STASH                                                           AJS1F401.583    
!                                                                          AJS1F401.584    
       IF(SF(273,3)) THEN         ! write dry depos  SO4_DIS to stash      AJS1F401.585    
CL Change sign of dry dep flux (otherwise negative)                        AJS1F401.586    
      DO I=FIRST_POINT,LAST_POINT                                          AJS1F401.587    
      DRYDEP_STR(I) = -DRYDEP_STR(I)                                       AJS1F401.588    
      END DO                                                               AJS1F401.589    
C                                                                          AJS1F401.590    
         CALL COPYDIAG(STASHWORK(SI(273,3,im_index)),DRYDEP_STR,           AJS1F401.591    
     &                 FIRST_POINT,LAST_POINT,                             AJS1F401.592    
     &                 P_FIELD,ROW_LENGTH,                                 GPB1F403.376    
     &                 im_ident,3,273,                                     GPB1F403.377    
*CALL ARGPPX                                                               GPB1F403.378    
     &          ICODE,CMESSAGE)                                            GPB1F403.379    
                                                                           GPB1F403.380    
         IF (ICODE .GT. 0) GOTO 9999                                       GPB1F403.381    
       END IF                                                              AJS1F401.594    
C                                                                          AJS1F401.595    
       IF(SF(277,3).OR.SF(285,3)) THEN  ! write Rb for SO4_DIS to stash    AWO1F404.153    
         CALL COPYDIAG(STASHWORK(SI(277,3,im_index)),STR_RESIST_B,         AJS1F401.597    
     &                 FIRST_POINT,LAST_POINT,                             AJS1F401.598    
     &                 P_FIELD,ROW_LENGTH,                                 GPB1F403.382    
     &                 im_ident,3,277,                                     GPB1F403.383    
*CALL ARGPPX                                                               GPB1F403.384    
     &          ICODE,CMESSAGE)                                            GPB1F403.385    
                                                                           GPB1F403.386    
         IF (ICODE .GT. 0) GOTO 9999                                       GPB1F403.387    
       END IF                                                              AJS1F401.600    
C                                                                          AJS1F401.601    
       IF(SF(281,3).OR.SF(285,3)) THEN  ! write Rs for SO4_DIS to stash    AWO1F404.154    
         CALL COPYDIAG(STASHWORK(SI(281,3,im_index)),STR_RESIST_S,         AJS1F401.603    
     &                 FIRST_POINT,LAST_POINT,                             AJS1F401.604    
     &                 P_FIELD,ROW_LENGTH,                                 GPB1F403.388    
     &                 im_ident,3,281,                                     GPB1F403.389    
*CALL ARGPPX                                                               GPB1F403.390    
     &          ICODE,CMESSAGE)                                            GPB1F403.391    
                                                                           GPB1F403.392    
         IF (ICODE .GT. 0) GOTO 9999                                       GPB1F403.393    
       END IF                                                              AJS1F401.606    
C                                                                          AJS1F401.607    
!                                                                          AJS1F401.608    
!  ** FOR DMS IF PRESENT **                                                AJS1F401.609    
!                                                                          AJS1F401.610    
         IF (L_SULPC_DMS) THEN                                             AJS1F401.611    
!                                                                          AJS1F401.612    
!  CALL TR_MIX FOR DMS                                                     AJS1F401.613    
!                                                                          AJS1F401.614    
         IF (L_DMS_EM) THEN            ! mix in surface emissions          AJS1F401.615    
!                                                                          AJS1F401.616    
      CALL TR_MIX(                                                         AJS1F401.617    
     &        P_FIELD,BL_LEVELS,FIRST_ROW,ROW_LENGTH,ROWS                  AJS1F401.618    
     &       ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK)                    AJS1F401.619    
     &       ,WORK4(P_FIELDDA+1),WORK4(1)                                  AJS1F401.620    
     &       ,D1(JPSTAR),SECS_PER_STEPim(atmos_im)                         AJS1F401.621    
     &       ,TR_FLUX,D1(JDMS(1))                                          AJS1F401.622    
     &       ,D1(JDMS_EM),ZERO_FIELD,DRYDEP_STR                            AJS1F401.623    
     &       ,NRML                                                         AJS1F401.624    
     &       ,ICODE,TIMER)                                                 AJS1F401.625    
!                                                                          AJS1F401.626    
        ELSE                          ! no surface DMS emissions           AJS1F401.627    
!                                                                          AJS1F401.628    
      CALL TR_MIX(                                                         AJS1F401.629    
     &        P_FIELD,BL_LEVELS,FIRST_ROW,ROW_LENGTH,ROWS                  AJS1F401.630    
     &       ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK)                    AJS1F401.631    
     &       ,WORK4(P_FIELDDA+1),WORK4(1)                                  AJS1F401.632    
     &       ,D1(JPSTAR),SECS_PER_STEPim(atmos_im)                         AJS1F401.633    
     &       ,TR_FLUX,D1(JDMS(1))                                          AJS1F401.634    
     &       ,ZERO_FIELD,ZERO_FIELD,DRYDEP_STR                             AJS1F401.635    
     &       ,NRML                                                         AJS1F401.636    
     &       ,ICODE,TIMER)                                                 AJS1F401.637    
!                                                                          AJS1F401.638    
         END IF                                                            AJS1F401.639    
         IF (ICODE .GT. 0) GOTO 9999                                       GPB1F403.394    
!                                                                          AJS1F401.640    
          END IF                     ! END L_SULPC_DMS BLOCK               AJS1F401.641    
!                                                                          AJS1F401.642    
C                                                                          AJS1F401.643    
CL WRITE MORE DIAGNOSTICS TO STASH                                         AJS1F401.644    
C                                                                          AJS1F401.645    
       IF(SF(286,3).OR.SF(282,3).OR.SF(283,3).OR.SF(284,3)                 AWO1F404.155    
     &             .OR.SF(285,3)) THEN     ! write aerodyn res to stash    AWO1F404.156    
         CALL COPYDIAG(STASHWORK(SI(286,3,im_index)),ARESIST,              AJS1F401.647    
     &                 FIRST_POINT,LAST_POINT,                             AJS1F401.648    
     &                 P_FIELD,ROW_LENGTH,                                 GPB1F403.395    
     &                 im_ident,3,286,                                     GPB1F403.396    
*CALL ARGPPX                                                               GPB1F403.397    
     &          ICODE,CMESSAGE)                                            GPB1F403.398    
                                                                           GPB1F403.399    
         IF (ICODE .GT. 0) GOTO 9999                                       GPB1F403.400    
       END IF                                                              AJS1F401.650    
C                                                                          AJS1F401.651    
C                                                                          AJS1F401.652    
CL calculate deposition velocity=1/(Ra+Rb+Rc) from existing STASH data     AJS1F401.653    
C                                                                          AJS1F401.654    
       IF(SF(282,3)) THEN                ! deposition velocity SO2         AJS1F401.655    
         DO I=1,P_FIELD                                                    AJS1F401.656    
         STASHWORK(SI(282,3,im_index)+I-1)=1.0/                            AJS1F401.657    
     &                   ( STASHWORK(SI(286,3,im_index)+I-1) +             AJS1F401.658    
     &                     STASHWORK(SI(274,3,im_index)+I-1) +             AJS1F401.659    
     &                     STASHWORK(SI(278,3,im_index)+I-1) )             AJS1F401.660    
         END DO                                                            AJS1F401.661    
       END IF                                                              AJS1F401.662    
C                                                                          AJS1F401.663    
       IF(SF(283,3)) THEN                ! deposition velocity SO4_AIT     AJS1F401.664    
         DO I=1,P_FIELD                                                    AJS1F401.665    
         STASHWORK(SI(283,3,im_index)+I-1)=1.0/                            AJS1F401.666    
     &                    ( STASHWORK(SI(286,3,im_index)+I-1) +            AJS1F401.667    
     &                      STASHWORK(SI(275,3,im_index)+I-1) +            AJS1F401.668    
     &                      STASHWORK(SI(279,3,im_index)+I-1) )            AJS1F401.669    
         END DO                                                            AJS1F401.670    
       END IF                                                              AJS1F401.671    
C                                                                          AJS1F401.672    
       IF(SF(284,3)) THEN                ! deposition velocity SO4_ACC     AJS1F401.673    
         DO I=1,P_FIELD                                                    AJS1F401.674    
         STASHWORK(SI(284,3,im_index)+I-1)=1.0/                            AJS1F401.675    
     &                    ( STASHWORK(SI(286,3,im_index)+I-1) +            AJS1F401.676    
     &                      STASHWORK(SI(276,3,im_index)+I-1) +            AJS1F401.677    
     &                      STASHWORK(SI(280,3,im_index)+I-1) )            AJS1F401.678    
         END DO                                                            AJS1F401.679    
       END IF                                                              AJS1F401.680    
C                                                                          AJS1F401.681    
       IF(SF(285,3)) THEN              ! deposition velocity SO4_DIS       AJS1F401.682    
         DO I=1,P_FIELD                                                    AJS1F401.683    
         STASHWORK(SI(285,3,im_index)+I-1)=1.0/                            AJS1F401.684    
     &                     ( STASHWORK(SI(286,3,im_index)+I-1) +           AJS1F401.685    
     &                       STASHWORK(SI(277,3,im_index)+I-1) +           AJS1F401.686    
     &                       STASHWORK(SI(281,3,im_index)+I-1) )           AJS1F401.687    
         END DO                                                            AJS1F401.688    
       END IF                                                              AJS1F401.689    
C                                                                          AJS1F401.690    
CL  End of STASH for Sulphur Cycle                                         AJS1F401.691    
C                                                                          AJS1F401.692    
                  END IF                  ! END OF L_SULPC_SO2 BLOCK       AJS1F401.693    
C                                                                          AJS1F401.694    
CL*****************************************************************        AJS1F401.695    
!                                                                          AWO3F405.119    
      IF (L_SOOT) THEN                                                     AWO3F405.120    
!                                                                          AWO3F405.121    
!  If required, add high level soot emissions                              AWO3F405.122    
!                                                                          AWO3F405.123    
        IF (L_SOOT_HILEM) THEN                                             AWO3F405.124    
!                                                                          AWO3F405.125    
              CALL TRSRCE(                                                 AWO3F405.126    
     &        A_LEVDEPC(JDELTA_AK+SOOT_HIGH_LEVEL-1),                      AWO3F405.127    
     &        A_LEVDEPC(JDELTA_BK+SOOT_HIGH_LEVEL-1),                      AWO3F405.128    
     &        P_FIELD,                                                     AWO3F405.129    
     &        P_FIELD,                                                     AWO3F405.130    
     &        D1(JPSTAR),                                                  AWO3F405.131    
     &        D1(JSOOT_NEW(SOOT_HIGH_LEVEL)),                              AWO3F405.132    
     &        D1(JSOOT_HILEM),                                             AWO3F405.133    
     &        SECS_PER_STEPim(atmos_im),                                   AWO3F405.134    
     &        I_HOUR,                                                      AWO3F405.135    
     &        I_MINUTE,                                                    AWO3F405.136    
     &        0.0,        ! amplitude of diurnal variation of emissions    AWO3F405.137    
     &        ICODE                                                        AWO3F405.138    
     &        )                                                            AWO3F405.139    
!                                                                          AWO3F405.140    
              IF (ICODE.GT.0) THEN                                         AWO3F405.141    
                CMESSAGE='Error in TRSRCE'                                 AWO3F405.142    
                RETURN                                                     AWO3F405.143    
              ENDIF                                                        AWO3F405.144    
!                                                                          AWO3F405.145    
        END IF       ! L_SOOT_HILEM condition                              AWO3F405.146    
!                                                                          AWO3F405.147    
!                                                                          AWO3F405.148    
!   For RESIST_B check to eliminate possible negative values               AWO3F405.149    
      DO I=FIRST_POINT,LAST_POINT                                          AWO3F405.150    
        IF (RESIST_B(I) .LT. 0.0)     THEN                                 AWO3F405.151    
          RESIST_B(I) = 0.0                                                AWO3F405.152    
        END IF                                                             AWO3F405.153    
      END DO                                                               AWO3F405.154    
                                                                           AWO3F405.155    
!   Initialise stomatal resistance to zero                                 AWO3F405.156    
!                                                                          AWO3F405.157    
        DO I=1,P_FIELD                                                     AWO3F405.158    
          RESIST_S(I)=0.0                                                  AWO3F405.159    
        END DO                                                             AWO3F405.160    
!                                                                          AWO3F405.161    
! Do dry deposition of 3 soot variables                                    AWO3F405.162    
!                                                                          AWO3F405.163    
! Fresh soot:                                                              AWO3F405.164    
!~~~~~~~~~~~~                                                              AWO3F405.165    
! Calculate resistance values:                                             AWO3F405.166    
      DO I=FIRST_POINT,LAST_POINT                                          AWO3F405.167    
!                                                                          AWO3F405.168    
       STR_RESIST_B(I)=RESB_FreshSoot * RESIST_B(I)                        AWO3F405.169    
       STR_RESIST_S(I)=RESS_Soot * RESIST_S(I)                             AWO3F405.170    
!                                                                          AWO3F405.171    
       RES_FACTOR(I) = ARESIST(I) /                                        AWO3F405.172    
     &       (ARESIST(I)+STR_RESIST_B(I)+STR_RESIST_S(I))                  AWO3F405.173    
!                                                                          AWO3F405.174    
      END DO                                                               AWO3F405.175    
!                                                                          AWO3F405.176    
      IF (L_SOOT_SUREM) THEN                                               AWO3F405.177    
      CALL TR_MIX(                                                         AWO3F405.178    
     &        P_FIELD,BL_LEVELS,FIRST_ROW,ROW_LENGTH,ROWS                  AWO3F405.179    
     &       ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK)                    AWO3F405.180    
     &       ,WORK4(P_FIELDDA+1),RHO_ARESIST                               AWO3F405.181    
     &       ,D1(JPSTAR),SECS_PER_STEPim(atmos_im)                         AWO3F405.182    
     &       ,TR_FLUX,D1(JSOOT_NEW(1))                                     AWO3F405.183    
     &       ,D1(JSOOT_EM),RES_FACTOR,DRYDEP_STR                           AWO3F405.184    
     &       ,NRML                                                         AWO3F405.185    
     &       ,ICODE,TIMER)                                                 AWO3F405.186    
!                                                                          AWO3F405.187    
      ELSE                                                                 AWO3F405.188    
      CALL TR_MIX(                                                         AWO3F405.189    
     &        P_FIELD,BL_LEVELS,FIRST_ROW,ROW_LENGTH,ROWS                  AWO3F405.190    
     &       ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK)                    AWO3F405.191    
     &       ,WORK4(P_FIELDDA+1),RHO_ARESIST                               AWO3F405.192    
     &       ,D1(JPSTAR),SECS_PER_STEPim(atmos_im)                         AWO3F405.193    
     &       ,TR_FLUX,D1(JSOOT_NEW(1))                                     AWO3F405.194    
     &       ,ZERO_FIELD,RES_FACTOR,DRYDEP_STR                             AWO3F405.195    
     &       ,NRML                                                         AWO3F405.196    
     &       ,ICODE,TIMER)                                                 AWO3F405.197    
      ENDIF                                                                AWO3F405.198    
      IF (ICODE.GT.0) THEN                                                 AWO3F405.199    
        CMESSAGE='Error in TR_MIX'                                         AWO3F405.200    
        RETURN                                                             AWO3F405.201    
      ENDIF                                                                AWO3F405.202    
!                                                                          AWO3F405.203    
! WRITE TO STASH.                                                          AWO3F405.204    
!                                                                          AWO3F405.205    
       IF(SF(301,3)) THEN       ! write dry dep flux to stash              AWO3F405.206    
!  Change sign of dry dep flux (otherwise negative)                        AWO3F405.207    
      DO I=FIRST_POINT,LAST_POINT                                          AWO3F405.208    
        DRYDEP_STR(I) = -DRYDEP_STR(I)                                     AWO3F405.209    
      END DO                                                               AWO3F405.210    
!                                                                          AWO3F405.211    
         CALL COPYDIAG(STASHWORK(SI(301,3,im_index)),DRYDEP_STR,           AWO3F405.212    
     &                 FIRST_POINT,LAST_POINT,                             AWO3F405.213    
     &                 P_FIELD,ROW_LENGTH,                                 AWO3F405.214    
     &          im_ident,3,301,                                            AWO3F405.215    
*CALL ARGPPX                                                               AWO3F405.216    
     &          ICODE,CMESSAGE)                                            AWO3F405.217    
         IF (ICODE.GT.0) THEN                                              AWO3F405.218    
           CMESSAGE='Error in COPYDIAG'                                    AWO3F405.219    
           RETURN                                                          AWO3F405.220    
         ENDIF                                                             AWO3F405.221    
       END IF                                                              AWO3F405.222    
!                                                                          AWO3F405.223    
! Aged soot:                                                               AWO3F405.224    
!~~~~~~~~~~~~                                                              AWO3F405.225    
! Calculate resistance values:                                             AWO3F405.226    
      DO I=FIRST_POINT,LAST_POINT                                          AWO3F405.227    
!                                                                          AWO3F405.228    
       STR_RESIST_B(I)=RESB_AgedSoot * RESIST_B(I)                         AWO3F405.229    
       STR_RESIST_S(I)=RESS_Soot * RESIST_S(I)                             AWO3F405.230    
!                                                                          AWO3F405.231    
       RES_FACTOR(I) = ARESIST(I) /                                        AWO3F405.232    
     &       (ARESIST(I)+STR_RESIST_B(I)+STR_RESIST_S(I))                  AWO3F405.233    
!                                                                          AWO3F405.234    
      END DO                                                               AWO3F405.235    
!                                                                          AWO3F405.236    
      CALL TR_MIX(                                                         AWO3F405.237    
     &        P_FIELD,BL_LEVELS,FIRST_ROW,ROW_LENGTH,ROWS                  AWO3F405.238    
     &       ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK)                    AWO3F405.239    
     &       ,WORK4(P_FIELDDA+1),RHO_ARESIST                               AWO3F405.240    
     &       ,D1(JPSTAR),SECS_PER_STEPim(atmos_im)                         AWO3F405.241    
     &       ,TR_FLUX,D1(JSOOT_AGD(1))                                     AWO3F405.242    
     &       ,ZERO_FIELD,RES_FACTOR,DRYDEP_STR                             AWO3F405.243    
     &       ,NRML                                                         AWO3F405.244    
     &       ,ICODE,TIMER)                                                 AWO3F405.245    
      IF (ICODE.GT.0) THEN                                                 AWO3F405.246    
        CMESSAGE='Error in TR_MIX'                                         AWO3F405.247    
        RETURN                                                             AWO3F405.248    
      ENDIF                                                                AWO3F405.249    
!                                                                          AWO3F405.250    
! WRITE TO STASH.                                                          AWO3F405.251    
!                                                                          AWO3F405.252    
       IF(SF(302,3)) THEN       ! write dry dep flux to stash              AWO3F405.253    
CL Change sign of dry dep flux (otherwise negative)                        AWO3F405.254    
      DO I=FIRST_POINT,LAST_POINT                                          AWO3F405.255    
        DRYDEP_STR(I) = -DRYDEP_STR(I)                                     AWO3F405.256    
      END DO                                                               AWO3F405.257    
C                                                                          AWO3F405.258    
         CALL COPYDIAG(STASHWORK(SI(302,3,im_index)),DRYDEP_STR,           AWO3F405.259    
     &                 FIRST_POINT,LAST_POINT,                             AWO3F405.260    
     &                 P_FIELD,ROW_LENGTH,                                 AWO3F405.261    
     &          im_ident,3,302,                                            AWO3F405.262    
*CALL ARGPPX                                                               AWO3F405.263    
     &          ICODE,CMESSAGE)                                            AWO3F405.264    
         IF (ICODE.GT.0) THEN                                              AWO3F405.265    
           CMESSAGE='Error in COPYDIAG'                                    AWO3F405.266    
           RETURN                                                          AWO3F405.267    
         ENDIF                                                             AWO3F405.268    
       END IF                                                              AWO3F405.269    
!                                                                          AWO3F405.270    
! Soot in cloud water (occult deposition).                                 AWO3F405.271    
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                 AWO3F405.272    
! Calculate resistance values:                                             AWO3F405.273    
      DO I=FIRST_POINT,LAST_POINT                                          AWO3F405.274    
!                                                                          AWO3F405.275    
       STR_RESIST_B(I)=RESB_SootInCloud * RESIST_B(I)                      AWO3F405.276    
       STR_RESIST_S(I)=RESS_Soot * RESIST_S(I)                             AWO3F405.277    
!                                                                          AWO3F405.278    
       RES_FACTOR(I) = ARESIST(I) /                                        AWO3F405.279    
     &       (ARESIST(I)+STR_RESIST_B(I)+STR_RESIST_S(I))                  AWO3F405.280    
!                                                                          AWO3F405.281    
      END DO                                                               AWO3F405.282    
!                                                                          AWO3F405.283    
      CALL TR_MIX(                                                         AWO3F405.284    
     &        P_FIELD,BL_LEVELS,FIRST_ROW,ROW_LENGTH,ROWS                  AWO3F405.285    
     &       ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK)                    AWO3F405.286    
     &       ,WORK4(P_FIELDDA+1),RHO_ARESIST                               AWO3F405.287    
     &       ,D1(JPSTAR),SECS_PER_STEPim(atmos_im)                         AWO3F405.288    
     &       ,TR_FLUX,D1(JSOOT_CLD(1))                                     AWO3F405.289    
     &       ,ZERO_FIELD,RES_FACTOR,DRYDEP_STR                             AWO3F405.290    
     &       ,NRML                                                         AWO3F405.291    
     &       ,ICODE,TIMER)                                                 AWO3F405.292    
      IF (ICODE.GT.0) THEN                                                 AWO3F405.293    
        CMESSAGE='Error in TR_MIX'                                         AWO3F405.294    
        RETURN                                                             AWO3F405.295    
      ENDIF                                                                AWO3F405.296    
!                                                                          AWO3F405.297    
! WRITE TO STASH.                                                          AWO3F405.298    
!                                                                          AWO3F405.299    
       IF(SF(303,3)) THEN       ! write dry dep flux to stash              AWO3F405.300    
!  Change sign of dry dep flux (otherwise negative)                        AWO3F405.301    
      DO I=FIRST_POINT,LAST_POINT                                          AWO3F405.302    
        DRYDEP_STR(I) = -DRYDEP_STR(I)                                     AWO3F405.303    
      END DO                                                               AWO3F405.304    
!                                                                          AWO3F405.305    
         CALL COPYDIAG(STASHWORK(SI(303,3,im_index)),DRYDEP_STR,           AWO3F405.306    
     &                 FIRST_POINT,LAST_POINT,                             AWO3F405.307    
     &                 P_FIELD,ROW_LENGTH,                                 AWO3F405.308    
     &          im_ident,3,303,                                            AWO3F405.309    
*CALL ARGPPX                                                               AWO3F405.310    
     &          ICODE,CMESSAGE)                                            AWO3F405.311    
         IF (ICODE.GT.0) THEN                                              AWO3F405.312    
           CMESSAGE='Error in COPYDIAG'                                    AWO3F405.313    
           RETURN                                                          AWO3F405.314    
         ENDIF                                                             AWO3F405.315    
       END IF                                                              AWO3F405.316    
!                                                                          AWO3F405.317    
      END IF       ! End of L_Soot test                                    AWO3F405.318    
!                                                                          AWO3F405.319    
                                                                           AWO3F405.320    
CL********************************************************************     ACN1F405.21     
CL SECTION 3.3.3 Implicit mixing of CARBON CYCLE tracers in b.layer        ACN1F405.22     
CL                                                                         ACN1F405.23     
CL********************************************************************     ACN1F405.24     
!                                                                          ACN1F405.25     
        IF (L_CO2_INTERACTIVE) THEN    ! interactive co2 required          ACN1F405.26     
                                                                           ACN1F405.27     
! add Land fluxes together                                                 ACN1F405.28     
          DO I=1,LAND_FIELD                                                ACN1F405.29     
            LAND_CO2_L(I) =   RESP_S(I) ! soil respiration                 ACN1F405.30     
     &                      - WORK8(I)  ! NPP                              ACN1F405.31     
          ENDDO                                                            ACN1F405.32     
! un-compress to full field                                                ACN1F405.33     
          CALL FROM_LAND_POINTS(LAND_CO2,LAND_CO2_L,                       ACN1F405.34     
     &                         D1(JLAND),P_FIELD,LAND_FIELD)               ACN1F405.35     
                                                                           ACN1F405.36     
!  Add up components of CO2_FLUX                                           ACN1F405.37     
                                                                           ACN1F405.38     
        DO I=1,P_FIELD                                                     ACN1F405.39     
!  (i) CO2 emissions from ancillary file.                                  ACN1F405.40     
          IF (L_CO2_EMITS) THEN                                            ACN1F405.41     
            IF ( D1(J_CO2_EMITS+I-1) .ne. RMDI ) THEN                      ACN1F405.42     
              CO2_FLUX(I) = CO2_FLUX(I) + D1(J_CO2_EMITS+I-1)              ACN1F405.43     
            ENDIF   ! not missing data                                     ACN1F405.44     
          ENDIF     ! include emissions from ancillary                     ACN1F405.45     
                                                                           ACN1F405.46     
!  (ii) CO2 flux from ocean. (+ve implies air to sea)                      ACN1F405.47     
          IF ( D1(J_CO2FLUX+I-1) .ne. RMDI ) THEN                          ACN1F405.48     
            CO2_FLUX(I) = CO2_FLUX(I) - D1(J_CO2FLUX+I-1)                  ACN1F405.49     
          ENDIF     ! not missing data                                     ACN1F405.50     
                                                                           ACN1F405.51     
!  (iii) CO2 flux from land processes. (+ve implies biosphere to atmos)    ACN1F405.52     
          IF ( LAND_CO2(I) .ne. RMDI ) THEN                                ACN1F405.53     
            CO2_FLUX(I) = CO2_FLUX(I) + LAND_CO2(I)                        ACN1F405.54     
          ENDIF     ! not missing data                                     ACN1F405.55     
                                                                           ACN1F405.56     
        ENDDO       ! loop over P_FIELD                                    ACN1F405.57     
                                                                           ACN1F405.58     
                                                                           ACN1F405.59     
CL STASH diagnostics of land surface and total fluxes                      ACN1F405.60     
C                                                                          ACN1F405.61     
C Item 326 "CO2 land surface flux" (kg/m2/s)                               ACN1F405.62     
C                                                                          ACN1F405.63     
      IF (SF(326,3)) THEN                                                  ACN1F405.64     
        CALL COPYDIAG(STASHWORK(SI(326,3,im_index)),LAND_CO2,              ACN1F405.65     
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    ACN1F405.66     
     &       im_ident,3,326,                                               ACN1F405.67     
*CALL ARGPPX                                                               ACN1F405.68     
     &       ICODE,CMESSAGE)                                               ACN1F405.69     
                                                                           ACN1F405.70     
        IF (ICODE .GT. 0) GOTO 9999                                        ACN1F405.71     
      END IF                                                               ACN1F405.72     
                                                                           ACN1F405.73     
C                                                                          ACN1F405.74     
C Item 327 "CO2 total flux to atmosphere" (kg/m2/s)                        ACN1F405.75     
C                                                                          ACN1F405.76     
      IF (SF(327,3)) THEN                                                  ACN1F405.77     
        CALL COPYDIAG(STASHWORK(SI(327,3,im_index)),CO2_FLUX,              ACN1F405.78     
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    ACN1F405.79     
     &       im_ident,3,327,                                               ACN1F405.80     
*CALL ARGPPX                                                               ACN1F405.81     
     &       ICODE,CMESSAGE)                                               ACN1F405.82     
                                                                           ACN1F405.83     
        IF (ICODE .GT. 0) GOTO 9999                                        ACN1F405.84     
      END IF                                                               ACN1F405.85     
                                                                           ACN1F405.86     
                                                                           ACN1F405.87     
!  Call TR_MIX for CO2 tracer with CO2_FLUX as calculated above            ACN1F405.88     
!    note: ZERO_FIELD passed in for RHOKH_1 as no deposition required      ACN1F405.89     
          CALL  TR_MIX (                                                   ACN1F405.90     
     &      P_FIELD,BL_LEVELS,FIRST_ROW,ROW_LENGTH,ROWS                    ACN1F405.91     
     &     ,A_LEVDEPC(JDELTA_AK),A_LEVDEPC(JDELTA_BK)                      ACN1F405.92     
     &     ,WORK4(P_FIELDDA+1),WORK4(1)                                    ACN1F405.93     
     &     ,D1(JPSTAR)                                                     ACN1F405.94     
     &     ,SECS_PER_STEPim(atmos_im)                                      ACN1F405.95     
     &     ,TR_FLUX,D1(JCO2(1))                                            ACN1F405.96     
     &     ,CO2_FLUX,ZERO_FIELD,DRYDEP_STR                                 ACN1F405.97     
     &     ,NRML,ICODE,LTIMER                                              ACN1F405.98     
     &     )                                                               ACN1F405.99     
                                                                           ACN1F405.100    
      ENDIF    !  L_CO2_INTERACTIVE                                        ACN1F405.101    
                                                                           ASJ1F304.185    
      IF (LTIMER) THEN                                                     ASJ1F304.186    
        CALL TIMER('TR_MIX',4)                                             ASJ1F304.187    
      END IF                                                               ASJ1F304.188    
                                                                           ASJ1F304.189    
                                                                           ASJ1F304.190    
! If the mixed phase precipitation scheme is used then T and Q are         ADM3F404.426    
! required to contain T liquid and Q(vapour+liquid) but at this stage      ADM3F404.427    
! will actually contain T liquid ice and Q(vapour+liquid+ice) if           ADM3F404.428    
! L_BL_LSPICE is false.                                                    ADM3F404.429    
      IF (L_LSPICE .AND. (.NOT. L_BL_LSPICE)) THEN                         ADM3F404.430    
! T and Q do not contain the correct values if L_BL_LSPICE is false and    ADM3F404.431    
! the mixed phase precipitation scheme is selected. Correct them so that   ADM3F404.432    
! T(liquid+ice) becomes T(liquid) and                                      ADM3F404.433    
! Q(vapour+liquid+ice) becomes Q(vapour+liquid).                           ADM3F404.434    
        CALL BL_LSP( P_FIELD,FIRST_ROW,ROW_LENGTH,ROWS,BL_LEVELS,          ADM3F404.435    
     &              D1(JQCF(1)),D1(JQ(1)),D1(JTHETA(1)) )                  ADM3F404.436    
      END IF                                                               ADM3F404.437    
!                                                                          ADM3F404.438    
*IF DEF,GLOBAL                                                             BL_CTL1.209    
C Set TSTAR at poles to mean of surrounding  rows                          BL_CTL1.210    
                                                                           BL_CTL1.211    
*IF DEF,MPP                                                                APBGF401.35     
      IF (at_top_of_LPG) THEN                                              APBGF401.36     
*ENDIF                                                                     APBGF401.37     
        DO I=1,ROW_LENGTH                                                  APBGF401.38     
          D1(JTSTAR+TOP_ROW_START+I-2)=0.0                                 APBGF401.39     
        ENDDO                                                              APBGF401.40     
*IF DEF,MPP                                                                APBGF401.41     
      ENDIF                                                                APBGF401.42     
                                                                           APBGF401.43     
      IF (at_base_of_LPG) THEN                                             APBGF401.44     
*ENDIF                                                                     APBGF401.45     
        DO I=1,ROW_LENGTH                                                  APBGF401.46     
          D1(JTSTAR+P_BOT_ROW_START+I-2)=0.0                               APBGF401.47     
        ENDDO                                                              APBGF401.48     
*IF DEF,MPP                                                                APBGF401.49     
      ENDIF                                                                APBGF401.50     
*ENDIF                                                                     APBGF401.51     
      CALL POLAR(D1(JTSTAR),D1(JTSTAR),D1(JTSTAR),                         APB2F401.91     
*CALL ARGFLDPT                                                             APB2F401.92     
     &           P_FIELD,P_FIELD,P_FIELD,                                  APB2F401.93     
     &           TOP_ROW_START+ROW_LENGTH,                                 APB2F401.94     
     &           P_BOT_ROW_START-ROW_LENGTH,                               APB2F401.95     
     &           ROW_LENGTH,1)                                             APB2F401.96     
*ELSE                                                                      RB070693.7      
C Set TSTAR at N & S rows (not computed) to adjacent rows                  RB070693.8      
                                                                           RB070693.9      
*IF DEF,MPP                                                                APBGF401.52     
      IF (at_top_of_LPG) THEN                                              APBGF401.53     
*ENDIF                                                                     APBGF401.54     
        DO I=1,ROW_LENGTH                                                  APBGF401.55     
          D1(JTSTAR+TOP_ROW_START+I-2)=                                    APBGF401.56     
     &      D1(JTSTAR+TOP_ROW_START+ROW_LENGTH+I-2)                        APBGF401.57     
        ENDDO                                                              APBGF401.58     
*IF DEF,MPP                                                                APBGF401.59     
      ENDIF                                                                APBGF401.60     
                                                                           APBGF401.61     
      IF (at_base_of_LPG) THEN                                             APBGF401.62     
*ENDIF                                                                     APBGF401.63     
        DO I=1,ROW_LENGTH                                                  APBGF401.64     
          D1(JTSTAR+P_BOT_ROW_START+I-2)=                                  APBGF401.65     
     &      D1(JTSTAR+P_BOT_ROW_START-ROW_LENGTH+I-2)                      APBGF401.66     
        ENDDO                                                              APBGF401.67     
*IF DEF,MPP                                                                APBGF401.68     
      ENDIF                                                                APBGF401.69     
*ENDIF                                                                     APBGF401.70     
*ENDIF                                                                     BL_CTL1.218    
                                                                           BL_CTL1.219    
      IF (LEMCORR) THEN                                                    ASJ1F304.191    
C                                                                          BL_CTL1.221    
C ADD SURFACE SENSIBLE HEAT FLUX INTO DIABATIC HEATING                     BL_CTL1.222    
C FOR USE IN ENERGY CORRECTION PROCEDURE                                   BL_CTL1.223    
C                                                                          BL_CTL1.224    
      IF (LTIMER) THEN                                                     BL_CTL1.225    
        CALL TIMER('FLX_DIAG',3)                                           BL_CTL1.226    
      END IF                                                               BL_CTL1.227    
C                                                                          BL_CTL1.228    
      CALL FLUX_DIAG(STASHWORK(SI(217,3,im_index)),COS_P_LATITUDE,         APB5F401.135    
     &               P_FIELD,FIRST_POINT,POINTS,                           APB5F401.136    
     &               1.0,SECS_PER_STEPim(atmos_im),D1(JNET_FLUX))          GSM3F404.32     
C                                                                          BL_CTL1.232    
      IF (LTIMER) THEN                                                     BL_CTL1.233    
        CALL TIMER('FLX_DIAG',4)                                           BL_CTL1.234    
      END IF                                                               BL_CTL1.235    
      ENDIF     !   LEMCORR                                                ASJ1F304.192    
                                                                           BL_CTL1.237    
C Item 241:                                                                BL_CTL1.238    
C Require surface and boundary layer fluxes as amounts for ITEM 241        BL_CTL1.239    
      IF (SF(241,3)) THEN                                                  BL_CTL1.240    
        DO I=FIRST_VALID_PT,LAST_P_VALID_PT                                APBGF401.71     
          STASHWORK(SI(241,3,im_index)+I-1)=                               GDR4F305.38     
     &    STASHWORK(SI(223,3,im_index)+I-1)*SECS_PER_STEPim(a_im)          ADR1F305.48     
        END DO                                                             BL_CTL1.244    
      ENDIF                                                                BL_CTL1.245    
                                                                           BL_CTL1.246    
C Item 207: rostar*ch*surf_layer_wind_shear                                BL_CTL1.247    
                                                                           BL_CTL1.248    
      IF (SF(207,3)) THEN                                                  BL_CTL1.249    
      CALL COPYDIAG(STASHWORK(SI(207,3,im_index)),WORK4                    GDR4F305.39     
     &      ,FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    GPB1F403.401    
     &     im_ident,3,207,                                                 GPB1F403.402    
*CALL ARGPPX                                                               GPB1F403.403    
     &     ICODE,CMESSAGE)                                                 GPB1F403.404    
                                                                           GPB1F403.405    
      IF (ICODE .GT. 0) GOTO 9999                                          GPB1F403.406    
      END IF                                                               BL_CTL1.252    
                                                                           BL_CTL1.253    
C Item 206: rostar*cd*surf_layer_wind_shear                                BL_CTL1.254    
                                                                           BL_CTL1.255    
      IF (SF(206,3)) THEN                                                  BL_CTL1.256    
      CALL COPYDIAG(STASHWORK(SI(206,3,im_index)),WORK5,                   GDR4F305.40     
     &  FIRST_POINT,LAST_POINT,U_FIELD,ROW_LENGTH,                         GPB1F403.407    
     &  im_ident,3,206,                                                    GPB1F403.408    
*CALL ARGPPX                                                               GPB1F403.409    
     &     ICODE,CMESSAGE)                                                 GPB1F403.410    
                                                                           GPB1F403.411    
      IF (ICODE .GT. 0) GOTO 9999                                          GPB1F403.412    
      END IF                                                               BL_CTL1.260    
                                                                           BL_CTL1.261    
CL                                                                         BL_CTL1.262    
!L 3.3  Call GLUE_CLD to calculate cloud fraction and                      AYY2F400.108    
CL      cloud water/ice content.                                           BL_CTL1.264    
                                                                           BL_CTL1.265    
      IF (LTIMER) THEN                                                     ASJ1F304.193    
        CALL TIMER('LS_CLD  ',3)                                           BL_CTL1.267    
      END IF                                                               BL_CTL1.268    
                                                                           BL_CTL1.269    
*IF DEF,GLOBAL                                                             BL_CTL1.270    
                                                                           BL_CTL1.271    
      FIRST_POINT=FIRST_VALID_PT                                           APBGF401.72     
      POINTS=LAST_P_VALID_PT-FIRST_POINT+1                                 APBGF401.73     
      JS=FIRST_POINT-1                                                     APBGF401.74     
                                                                           BL_CTL1.275    
*ENDIF                                                                     BL_CTL1.276    
! ----------------------------------------------------------------------   AYY1F404.88     
!  L_LSPICE = .FALSE. PDF_QC_OR_CF_LIQ = cloud PDF QC value,               AYY1F404.89     
!                     PDF_BS_OR_CF_ICE = cloud PDF bs value,               AYY1F404.90     
!  L_LSPICE = .TRUE.  PDF_QC_OR_CF_LIQ = liquid cloud fraction.            AYY1F404.91     
!                     PDF_BS_OR_CF_ICE = frozen cloud fraction.            AYY1F404.92     
! ----------------------------------------------------------------------   AYY1F404.93     
      CALL GLUE_CLD(                                                       AYY2F400.109    
     &    A_LEVDEPC(JAK),A_LEVDEPC(JBK),D1(JPSTAR+JS),                     BL_CTL1.279    
     &    RHCRIT,BL_LEVELS,D1(JRHC(1)+JS),                                 ASK1F405.226    
     &    POINTS,P_FIELD,D1(JTHETA(1)+JS),                                 BL_CTL1.281    
     &    CLOUD_FRACTION(FIRST_POINT,1),D1(JQ(1)+JS),D1(JQCF(1)+JS),       BL_CTL1.282    
     &    D1(JQCL(1)+JS),PDF_QC_OR_CF_LIQ(FIRST_POINT,1),                  AYY1F404.94     
     &    PDF_BS_OR_CF_ICE(FIRST_POINT,1),ICODE)                           AYY1F404.95     
!                                                                          AYY1F404.96     
      IF (ICODE .GT. 0) GOTO 9999                                          GPB1F403.413    
                                                                           BL_CTL1.284    
*IF DEF,GLOBAL                                                             BL_CTL1.285    
                                                                           BL_CTL1.286    
      FIRST_POINT=START_POINT_NO_HALO                                      APBGF401.75     
      POINTS=END_P_POINT_NO_HALO-FIRST_POINT+1                             APBGF401.76     
      JS=FIRST_POINT-1                                                     APBGF401.77     
                                                                           BL_CTL1.290    
*ENDIF                                                                     BL_CTL1.291    
                                                                           BL_CTL1.292    
      IF (LTIMER) THEN                                                     ASJ1F304.194    
        CALL TIMER('LS_CLD  ',4)                                           BL_CTL1.294    
      END IF                                                               BL_CTL1.295    
                                                                           BL_CTL1.296    
CL 3.4 Copy diagnostic information to D1 for STASH processing              BL_CTL1.297    
                                                                           BL_CTL1.298    
C Item 202 surface heat flux                                               AJS1F401.696    
                                                                           AJS1F401.697    
      IF (SF(202,3)) THEN                                                  AJS1F401.698    
                                                                           AJS1F401.699    
        CALL COPYDIAG(STASHWORK(SI(202,3,im_index)),SURF_HT_FLUX,          AJS1F401.700    
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    GPB1F403.414    
     &       im_ident,3,202,                                               GPB1F403.415    
*CALL ARGPPX                                                               GPB1F403.416    
     &       ICODE,CMESSAGE)                                               GPB1F403.417    
                                                                           GPB1F403.418    
        IF (ICODE .GT. 0) GOTO 9999                                        GPB1F403.419    
                                                                           AJS1F401.702    
      END IF                                                               AJS1F401.703    
                                                                           ARE1F405.17     
C Item 314 surface net radiation                                           ARE1F405.18     
                                                                           ARE1F405.19     
      IF (SF(314,3)) THEN                                                  ARE1F405.20     
                                                                           ARE1F405.21     
        CALL COPYDIAG(STASHWORK(SI(314,3,im_index)),SURF_RADFLUX,          ARE1F405.22     
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    ARE1F405.23     
     &       im_ident,3,314,                                               ARE1F405.24     
*CALL ARGPPX                                                               ARE1F405.25     
     &       ICODE,CMESSAGE)                                               ARE1F405.26     
                                                                           ARE1F405.27     
        IF (ICODE .GT. 0) GOTO 9999                                        ARE1F405.28     
                                                                           ARE1F405.29     
      END IF                                                               ARE1F405.30     
                                                                           AJS1F401.704    
! Item 305 boundary layer type indicator 1: Stable boundary layer          ARN0F405.28     
                                                                           ARN0F405.29     
      IF (SF(305,3)) THEN                                                  ARN0F405.30     
                                                                           ARN0F405.31     
        CALL COPYDIAG(STASHWORK(SI(305,3,im_index)),BL_TYPE_1,             ARN0F405.32     
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    ARN0F405.33     
     &       im_ident,3,305,                                               ARN0F405.34     
*CALL ARGPPX                                                               ARN0F405.35     
     &       ICODE,CMESSAGE)                                               ARN0F405.36     
                                                                           ARN0F405.37     
        IF (ICODE .GT. 0) GOTO 9999                                        ARN0F405.38     
                                                                           ARN0F405.39     
      END IF                                                               ARN0F405.40     
                                                                           ARN0F405.41     
! Item 306 boundary layer indicator type 2: Sc over stable surface layer   ARN0F405.42     
                                                                           ARN0F405.43     
      IF (SF(306,3)) THEN                                                  ARN0F405.44     
                                                                           ARN0F405.45     
        CALL COPYDIAG(STASHWORK(SI(306,3,im_index)),BL_TYPE_2,             ARN0F405.46     
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    ARN0F405.47     
     &       im_ident,3,306,                                               ARN0F405.48     
*CALL ARGPPX                                                               ARN0F405.49     
     &       ICODE,CMESSAGE)                                               ARN0F405.50     
                                                                           ARN0F405.51     
        IF (ICODE .GT. 0) GOTO 9999                                        ARN0F405.52     
                                                                           ARN0F405.53     
      END IF                                                               ARN0F405.54     
                                                                           ARN0F405.55     
! Item 307 boundary layer type indicator 3:  Well-mixed boundary layer     ARN0F405.56     
                                                                           ARN0F405.57     
      IF (SF(307,3)) THEN                                                  ARN0F405.58     
        CALL COPYDIAG(STASHWORK(SI(307,3,im_index)),BL_TYPE_3,             ARN0F405.59     
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    ARN0F405.60     
     &       im_ident,3,307,                                               ARN0F405.61     
*CALL ARGPPX                                                               ARN0F405.62     
     &       ICODE,CMESSAGE)                                               ARN0F405.63     
                                                                           ARN0F405.64     
        IF (ICODE .GT. 0) GOTO 9999                                        ARN0F405.65     
                                                                           ARN0F405.66     
      END IF                                                               ARN0F405.67     
                                                                           ARN0F405.68     
! Item 308 boundary layer type indicator 4: Decoupled Sc                   ARN0F405.69     
!                                           not overlying Cu               ARN0F405.70     
                                                                           ARN0F405.71     
      IF (SF(308,3)) THEN                                                  ARN0F405.72     
                                                                           ARN0F405.73     
        CALL COPYDIAG(STASHWORK(SI(308,3,im_index)),BL_TYPE_4,             ARN0F405.74     
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    ARN0F405.75     
     &       im_ident,3,308,                                               ARN0F405.76     
*CALL ARGPPX                                                               ARN0F405.77     
     &       ICODE,CMESSAGE)                                               ARN0F405.78     
                                                                           ARN0F405.79     
        IF (ICODE .GT. 0) GOTO 9999                                        ARN0F405.80     
                                                                           ARN0F405.81     
      END IF                                                               ARN0F405.82     
                                                                           ARN0F405.83     
! Item 309 boundary layer type indicator 5: Decoupled Sc                   ARN0F405.84     
!                                           overlying Cu                   ARN0F405.85     
                                                                           ARN0F405.86     
      IF (SF(309,3)) THEN                                                  ARN0F405.87     
                                                                           ARN0F405.88     
        CALL COPYDIAG(STASHWORK(SI(309,3,im_index)),BL_TYPE_5,             ARN0F405.89     
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    ARN0F405.90     
     &       im_ident,3,309,                                               ARN0F405.91     
*CALL ARGPPX                                                               ARN0F405.92     
     &       ICODE,CMESSAGE)                                               ARN0F405.93     
                                                                           ARN0F405.94     
        IF (ICODE .GT. 0) GOTO 9999                                        ARN0F405.95     
                                                                           ARN0F405.96     
      END IF                                                               ARN0F405.97     
                                                                           ARN0F405.98     
! Item 310 boundary layer type indicator 6: Cumulus capped                 ARN0F405.99     
!                                           boundary layer                 ARN0F405.100    
                                                                           ARN0F405.101    
      IF (SF(310,3)) THEN                                                  ARN0F405.102    
                                                                           ARN0F405.103    
        CALL COPYDIAG(STASHWORK(SI(310,3,im_index)),BL_TYPE_6,             ARN0F405.104    
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    ARN0F405.105    
     &       im_ident,3,310,                                               ARN0F405.106    
*CALL ARGPPX                                                               ARN0F405.107    
     &       ICODE,CMESSAGE)                                               ARN0F405.108    
                                                                           ARN0F405.109    
        IF (ICODE .GT. 0) GOTO 9999                                        ARN0F405.110    
                                                                           ARN0F405.111    
      END IF                                                               ARN0F405.112    
                                                                           ARN0F405.113    
C Item 229 soil evaporation                                                BL_CTL1.299    
                                                                           BL_CTL1.300    
      IF (SF(229,3)) THEN                                                  BL_CTL1.301    
                                                                           BL_CTL1.302    
        CALL COPYDIAG(STASHWORK(SI(229,3,im_index)),SOIL_EVAPORATION,      GDR4F305.41     
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    GPB1F403.420    
     &       im_ident,3,229,                                               GPB1F403.421    
*CALL ARGPPX                                                               GPB1F403.422    
     &       ICODE,CMESSAGE)                                               GPB1F403.423    
                                                                           GPB1F403.424    
        IF (ICODE .GT. 0) GOTO 9999                                        GPB1F403.425    
        DO I=FIRST_VALID_PT,LAST_P_VALID_PT                                APBGF401.78     
          STASHWORK(SI(229,3,im_index)+I-1)=                               GDR4F305.42     
     &    STASHWORK(SI(229,3,im_index)+I-1)*SECS_PER_STEPim(a_im)          ADR1F305.50     
        END DO                                                             BL_CTL1.308    
                                                                           BL_CTL1.309    
      END IF                                                               BL_CTL1.310    
                                                                           BL_CTL1.311    
C ITEM 312 POTENTIAL EVAPORATION - RATE                                    ANG1F405.12     
      IF (SF(312,3)) THEN                                                  ANG1F405.13     
        CALL COPYDIAG(STASHWORK(SI(312,3,im_index)),EPOT,                  ANG1F405.14     
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    ANG1F405.15     
     &       im_ident,3,312,                                               ANG1F405.16     
*CALL ARGPPX                                                               ANG1F405.17     
     &       ICODE,CMESSAGE)                                               ANG1F405.18     
                                                                           ANG1F405.19     
        IF (ICODE .GT. 0) GOTO 9999                                        ANG1F405.20     
                                                                           ANG1F405.21     
      END IF                                                               ANG1F405.22     
                                                                           ANG1F405.23     
CL ITEM 311 POTENTIAL EVAPORATION - AMOUNT                                 ANG1F405.24     
      IF (SF(311,3)) THEN                                                  ANG1F405.25     
        CALL COPYDIAG(STASHWORK(SI(311,3,im_index)),EPOT,                  ANG1F405.26     
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    ANG1F405.27     
     &       im_ident,3,311,                                               ANG1F405.28     
*CALL ARGPPX                                                               ANG1F405.29     
     &       ICODE,CMESSAGE)                                               ANG1F405.30     
                                                                           ANG1F405.31     
        IF (ICODE .GT. 0) GOTO 9999                                        ANG1F405.32     
        DO I=FIRST_VALID_PT,LAST_P_VALID_PT                                ANG1F405.33     
          STASHWORK(SI(311,3,im_index)+I-1)=                               ANG1F405.34     
     &    STASHWORK(SI(311,3,im_index)+I-1)*SECS_PER_STEPim(a_im)          ANG1F405.35     
        END DO                                                             ANG1F405.36     
                                                                           ANG1F405.37     
      END IF                                                               ANG1F405.38     
                                                                           ANG1F405.39     
CL ITEM 313 SOIL MOISTURE AVAILABILITY                                     ANG1F405.40     
      IF (SF(313,3)) THEN                                                  ANG1F405.41     
        CALL FROM_LAND_POINTS(STASHWORK(SI(313,3,im_index)),               ANG1F405.42     
     &           FSMC,D1(JLAND),P_FIELD,LAND_FIELD)                        ANG1F405.43     
      ENDIF                                                                ANG1F405.44     
C Item 230 canopy evaporation                                              BL_CTL1.312    
                                                                           BL_CTL1.313    
      IF (SF(230,3)) THEN                                                  BL_CTL1.314    
                                                                           BL_CTL1.315    
        CALL COPYDIAG(STASHWORK(SI(230,3,im_index)),CANOPY_EVAPORATION,    GDR4F305.43     
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    GPB1F403.426    
     &       im_ident,3,230,                                               GPB1F403.427    
*CALL ARGPPX                                                               GPB1F403.428    
     &       ICODE,CMESSAGE)                                               GPB1F403.429    
                                                                           GPB1F403.430    
        IF (ICODE .GT. 0) GOTO 9999                                        GPB1F403.431    
        DO I=FIRST_VALID_PT,LAST_P_VALID_PT                                APBGF401.79     
          STASHWORK(SI(230,3,im_index)+I-1)=                               GDR4F305.44     
     &    STASHWORK(SI(230,3,im_index)+I-1)*SECS_PER_STEPim(a_im)          ADR1F305.51     
        END DO                                                             BL_CTL1.321    
                                                                           BL_CTL1.322    
      END IF                                                               BL_CTL1.323    
                                                                           BL_CTL1.324    
C Item 231 snow sublimation                                                BL_CTL1.325    
                                                                           BL_CTL1.326    
      IF (SF(231,3)) THEN                                                  BL_CTL1.327    
                                                                           BL_CTL1.328    
        CALL COPYDIAG(STASHWORK(SI(231,3,im_index)),SNOW_SUBLIMATION,      GDR4F305.45     
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    GPB1F403.432    
     &       im_ident,3,231,                                               GPB1F403.433    
*CALL ARGPPX                                                               GPB1F403.434    
     &       ICODE,CMESSAGE)                                               GPB1F403.435    
                                                                           GPB1F403.436    
        IF (ICODE .GT. 0) GOTO 9999                                        GPB1F403.437    
        DO I=FIRST_VALID_PT,LAST_P_VALID_PT                                APBGF401.80     
          STASHWORK(SI(231,3,im_index)+I-1)=                               GDR4F305.46     
     &    STASHWORK(SI(231,3,im_index)+I-1)*SECS_PER_STEPim(a_im)          ADR1F305.52     
        END DO                                                             BL_CTL1.334    
                                                                           BL_CTL1.335    
      END IF                                                               BL_CTL1.336    
                                                                           BL_CTL1.337    
C Item 203 CD                                                              BL_CTL1.338    
                                                                           BL_CTL1.339    
      IF (SF(203,3)) THEN                                                  BL_CTL1.340    
                                                                           BL_CTL1.341    
        CALL COPYDIAG(STASHWORK(SI(203,3,im_index)),WORK1,                 GDR4F305.47     
     &     FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                      GPB1F403.438    
     &     im_ident,3,203,                                                 GPB1F403.439    
*CALL ARGPPX                                                               GPB1F403.440    
     &     ICODE,CMESSAGE)                                                 GPB1F403.441    
                                                                           GPB1F403.442    
        IF (ICODE .GT. 0) GOTO 9999                                        GPB1F403.443    
                                                                           BL_CTL1.344    
      END IF                                                               BL_CTL1.345    
                                                                           BL_CTL1.346    
C Item 204 CH                                                              BL_CTL1.347    
                                                                           BL_CTL1.348    
      IF (SF(204,3)) THEN                                                  BL_CTL1.349    
                                                                           BL_CTL1.350    
        CALL COPYDIAG(STASHWORK(SI(204,3,im_index)),WORK2,                 GDR4F305.48     
     &     FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                      GPB1F403.444    
     &     im_ident,3,204,                                                 GPB1F403.445    
*CALL ARGPPX                                                               GPB1F403.446    
     &     ICODE,CMESSAGE)                                                 GPB1F403.447    
                                                                           GPB1F403.448    
        IF (ICODE .GT. 0) GOTO 9999                                        GPB1F403.449    
                                                                           BL_CTL1.353    
      END IF                                                               BL_CTL1.354    
                                                                           BL_CTL1.355    
C Item 205 SURF_WINDSHEAR                                                  BL_CTL1.356    
                                                                           BL_CTL1.357    
      IF (SF(205,3)) THEN                                                  BL_CTL1.358    
                                                                           BL_CTL1.359    
        CALL COPYDIAG(STASHWORK(SI(205,3,im_index)),WORK3,                 GDR4F305.49     
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    GPB1F403.450    
     &       im_ident,3,205,                                               GPB1F403.451    
*CALL ARGPPX                                                               GPB1F403.452    
     &       ICODE,CMESSAGE)                                               GPB1F403.453    
                                                                           GPB1F403.454    
        IF (ICODE .GT. 0) GOTO 9999                                        GPB1F403.455    
                                                                           BL_CTL1.362    
      END IF                                                               BL_CTL1.363    
                                                                           PC120793.17     
C Item 254 1.5 M TL                                                        APC5F400.5      
                                                                           APC5F400.6      
      IF (SF(254,3)) THEN                                                  APC5F400.7      
                                                                           APC5F400.8      
        DO I=FIRST_VALID_PT,LAST_P_VALID_PT                                APBGF401.81     
          STASHWORK(SI(254,3,im_index)+I-1) =                              APC5F400.10     
     &     STASHWORK(SI(236,3,im_index)+I-1)                               APC5F400.11     
        END DO                                                             APC5F400.12     
                                                                           APC5F400.13     
      END IF                                                               APC5F400.14     
                                                                           APC5F400.15     
C Item 255 1.5 M QT                                                        APC5F400.16     
                                                                           APC5F400.17     
      IF (SF(255,3)) THEN                                                  APC5F400.18     
                                                                           APC5F400.19     
        DO I=FIRST_VALID_PT,LAST_P_VALID_PT                                APBGF401.82     
          STASHWORK(SI(255,3,im_index)+I-1) =                              APC5F400.21     
     &     STASHWORK(SI(237,3,im_index)+I-1)                               APC5F400.22     
        END DO                                                             APC5F400.23     
                                                                           APC5F400.24     
      END IF                                                               APC5F400.25     
                                                                           APC5F400.26     
      IF (SF(236,3).OR.SF(237,3).OR.SF(247,3).OR.SF(248,3).OR.             APC0F405.5      
     &    SF(242,3).OR.SF(243,3).OR.SF(244,3).OR.SF(245,3)                 ASW0F304.8      
     &    .OR.SF(250,3).OR.SF(253,3))                                      APC0F405.6      
     &  THEN                                                               PC120793.22     
CL                                                                         BL_CTL1.367    
!L  3.5 SPECIAL CALL GLUE_CLD TO CONVERT 1.5M TL and QT to T and Q         AYY2F400.112    
CL      CLOUD FRACTION AND WATER/ICE CONTENT ALSO DIAGNOSED AT 1.5M        BL_CTL1.369    
                                                                           BL_CTL1.370    
        IF (LTIMER) THEN                                                   ASJ1F304.195    
          CALL TIMER('LS_CLD  ',3)                                         BL_CTL1.372    
        END IF                                                             BL_CTL1.373    
!                                                                          AYY1F404.103    
!       L_lspice_if3:                                                      AYY1F404.104    
        IF (L_LSPICE) THEN                                                 AYY1F404.105    
!       QCF should really be taken at 1.5m too for consistency.            AYY1F404.106    
          DO  I = 1, POINTS                                                AYY1F404.107    
            WORK1(JS+I) = D1(JQCF(1)+JS+I)                                 AYY1F404.108    
          END DO                                                           AYY1F404.109    
        END IF  ! L_lspice_if3                                             AYY1F404.110    
                                                                           BL_CTL1.374    
        CALL GLUE_CLD(AK1P5M,BK1P5M, D1(JPSTAR+JS),                        AYY2F400.113    
     &       RHCRIT,1,D1(JRHC(1)+JS),                                      ASK1F405.227    
     &       POINTS,P_FIELD,                                               BL_CTL1.379    
     &       STASHWORK(SI(236,3,im_index)+JS),WORK3(1+JS),                 GDR4F305.56     
     &       STASHWORK(SI(237,3,im_index)+JS),WORK1(1+JS),WORK2(1+JS),     GDR4F305.57     
     &       WORK6(1+JS),WORK5(1+JS),ICODE)                                AYY2F400.114    
        IF (ICODE .GT. 0) GOTO 9999                                        GPB1F403.470    
                                                                           BL_CTL1.382    
        IF (LTIMER) THEN                                                   ASJ1F304.196    
          CALL TIMER('LS_CLD  ',4)                                         BL_CTL1.384    
        END IF                                                             BL_CTL1.385    
CL ITEM 250 Dewpoint at 1.5m                                               ASW0F304.10     
        IF (SF(250,3)) THEN                                                ASW0F304.11     
        CALL DEWPNT(STASHWORK(SI(237,3,im_index)+JS),D1(JPSTAR+JS),        GDR4F305.59     
     &       STASHWORK(SI(236,3,im_index)+JS),                             GDR4F305.60     
     &       POINTS,WORK6(1+JS))                                           ASW0F304.14     
        CALL COPYDIAG(STASHWORK(SI(250,3,im_index)),WORK6                  GDR4F305.61     
     &      ,FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    GPB1F403.471    
     &       im_ident,3,250,                                               GPB1F403.472    
*CALL ARGPPX                                                               GPB1F403.473    
     &       ICODE,CMESSAGE)                                               GPB1F403.474    
                                                                           GPB1F403.475    
        IF (ICODE .GT. 0) GOTO 9999                                        GPB1F403.476    
        ENDIF                                                              ASW0F304.17     
                                                                           BL_CTL1.386    
CL ITEM 242 cloud fraction at 1.5m                                         BL_CTL1.387    
        IF (SF(242,3)) THEN                                                BL_CTL1.388    
        CALL COPYDIAG(STASHWORK(SI(242,3,im_index)),WORK3                  GDR4F305.62     
     &      ,FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    GPB1F403.477    
     &       im_ident,3,242,                                               GPB1F403.478    
*CALL ARGPPX                                                               GPB1F403.479    
     &       ICODE,CMESSAGE)                                               GPB1F403.480    
                                                                           GPB1F403.481    
        IF (ICODE .GT. 0) GOTO 9999                                        GPB1F403.482    
        END IF                                                             BL_CTL1.391    
                                                                           BL_CTL1.392    
CL ITEM 243 cloud liquid water at 1.5m                                     BL_CTL1.393    
        IF (SF(243,3)) THEN                                                BL_CTL1.394    
        CALL COPYDIAG(STASHWORK(SI(243,3,im_index)),WORK2                  GDR4F305.63     
     &      ,FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    GPB1F403.483    
     &       im_ident,3,243,                                               GPB1F403.484    
*CALL ARGPPX                                                               GPB1F403.485    
     &       ICODE,CMESSAGE)                                               GPB1F403.486    
                                                                           GPB1F403.487    
        IF (ICODE .GT. 0) GOTO 9999                                        GPB1F403.488    
        END IF                                                             BL_CTL1.397    
                                                                           BL_CTL1.398    
CL ITEM 244 cloud ice content at 1.5m                                      BL_CTL1.399    
        IF (SF(244,3)) THEN                                                BL_CTL1.400    
        CALL COPYDIAG(STASHWORK(SI(244,3,im_index)),WORK1                  GDR4F305.64     
     &      ,FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    GPB1F403.489    
     &       im_ident,3,244,                                               GPB1F403.490    
*CALL ARGPPX                                                               GPB1F403.491    
     &       ICODE,CMESSAGE)                                               GPB1F403.492    
                                                                           GPB1F403.493    
        IF (ICODE .GT. 0) GOTO 9999                                        GPB1F403.494    
        END IF                                                             BL_CTL1.403    
                                                                           BL_CTL1.404    
! From Version 4.5, VISBTY and FOG_FR based on T, Q, QCF,                  APC0F405.7      
! so calls moved to after GLUE_CLD call                                    APC0F405.8      
                                                                           RB200193.7      
CL ITEM 247 visibility at 1.5m                                             RB200193.8      
        IF (SF(247,3)) THEN                                                RB200193.9      
                                                                           APC0F405.9      
          CALL VISBTY(AK1P5M,BK1P5M, D1(JPSTAR+JS),                        APC0F405.10     
     &           STASHWORK(SI(236,3,im_index)+JS),    ! Screen T           APC0F405.11     
     &           STASHWORK(SI(237,3,im_index)+JS),    ! Screen Q           APC0F405.12     
     &           WORK2(1+JS),WORK1(1+JS),             ! Screen Qcl, Qcf    APC0F405.13     
     &           D1(JMURK(1)+JS),                     ! Aerosol            APC0F405.14     
     &           0.5,RHCRIT,L_MURK,                   ! 0.5 for median     APC0F405.15     
     &           POINTS,WORK3(1+JS))                                       APC0F405.16     
                                                                           APC0F405.17     
          CALL COPYDIAG(STASHWORK(SI(247,3,im_index)),WORK3                GDR4F305.71     
     &        ,FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                  GPB1F403.495    
     &         im_ident,3,247,                                             GPB1F403.496    
*CALL ARGPPX                                                               GPB1F403.497    
     &         ICODE,CMESSAGE)                                             GPB1F403.498    
                                                                           GPB1F403.499    
          IF (ICODE .GT. 0) GOTO 9999                                      GPB1F403.500    
        END IF                                                             APC0F405.18     
                                                                           APC0F405.19     
C Item 248 FOG FRACTION at 1.5 m                                           APC0F405.20     
        IF (SF(248,3)) THEN                                                APC0F405.21     
          CALL FOG_FR(AK1P5M,BK1P5M, D1(JPSTAR+JS),                        APC0F405.22     
     &       RHCRIT,1,                                                     APC0F405.23     
     &       POINTS,P_FIELD,                                               APC0F405.24     
     &       STASHWORK(SI(236,3,im_index)+JS),D1(JMURK(1)+JS),L_MURK,      APC0F405.25     
     &       STASHWORK(SI(237,3,im_index)+JS),WORK2(1+JS),WORK1(1+JS),     APC0F405.26     
     &       VISFOG,WORK3(1+JS),1,                                         APC0F405.27     
     &       ICODE)                                                        APC0F405.28     
!                                                                          APC0F405.29     
          IF (ICODE .GT. 0) GOTO 9999                                      APC0F405.30     
                                                                           APC0F405.31     
          CALL COPYDIAG(STASHWORK(SI(248,3,im_index)),WORK3                APC0F405.32     
     &        ,FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                  APC0F405.33     
     &         im_ident,3,248,                                             APC0F405.34     
*CALL ARGPPX                                                               APC0F405.35     
     &       ICODE,CMESSAGE)                                               APC0F405.36     
                                                                           APC0F405.37     
          IF (ICODE .GT. 0) GOTO 9999                                      APC0F405.38     
        END IF                                                             APC0F405.39     
                                                                           APC0F405.40     
C Item 253 MIST FRACTION at 1.5 m                                          APC0F405.41     
        IF (SF(253,3)) THEN                                                APC0F405.42     
          CALL FOG_FR(AK1P5M,BK1P5M, D1(JPSTAR+JS),                        APC0F405.43     
     &       RHCRIT,1,                                                     APC0F405.44     
     &       POINTS,P_FIELD,                                               APC0F405.45     
     &       STASHWORK(SI(236,3,im_index)+JS),D1(JMURK(1)+JS),L_MURK,      APC0F405.46     
     &       STASHWORK(SI(237,3,im_index)+JS),WORK2(1+JS),WORK1(1+JS),     APC0F405.47     
     &       VISMIST,WORK3(1+JS),1,                                        APC0F405.48     
     &       ICODE)                                                        APC0F405.49     
!                                                                          APC0F405.50     
          IF (ICODE .GT. 0) GOTO 9999                                      APC0F405.51     
                                                                           APC0F405.52     
          CALL COPYDIAG(STASHWORK(SI(253,3,im_index)),WORK3                APC0F405.53     
     &        ,FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                  APC0F405.54     
     &         im_ident,3,253,                                             APC0F405.55     
*CALL ARGPPX                                                               APC0F405.56     
     &         ICODE,CMESSAGE)                                             APC0F405.57     
                                                                           APC0F405.58     
          IF (ICODE .GT. 0) GOTO 9999                                      APC0F405.59     
        END IF                                                             APC0F405.60     
                                                                           APC0F405.61     
CL ITEM 245 relative humidity at 1.5m                                      APC0F405.62     
C re-use WORK3 for qsat at 1.5m                                            APC0F405.63     
        IF (SF(245,3)) THEN                                                APC0F405.64     
          CALL QSAT(WORK3,STASHWORK(SI(236,3,im_index)+JS),                APC0F405.65     
     &              D1(JPSTAR+JS),POINTS)                                  APC0F405.66     
          DO I=1,POINTS                                                    APC0F405.67     
            STASHWORK(SI(245,3,im_index)+JS+I-1) =                         APC0F405.68     
     &      STASHWORK(SI(237,3,im_index)+JS+I-1)/WORK3(I)*100.             APC0F405.69     
          ENDDO                                                            APC0F405.70     
        END IF                                                             BL_CTL1.413    
                                                                           BL_CTL1.414    
      ENDIF  !special call for 1.5m quantities                             BL_CTL1.415    
                                                                           BL_CTL1.416    
CL ITEM 238 DEEP SOIL TEMPERATURES                                         BL_CTL1.417    
                                                                           BL_CTL1.418    
      IF (SF(238,3)) THEN                                                  BL_CTL1.419    
        CALL SET_LEVELS_LIST(ST_LEVELS,LEN_STLIST,                         AJS1F401.705    
     &       STLIST(1,STINDEX(1,238,3,im_index)),                          GDR4F305.11     
     &       LIST,STASH_LEVELS,NUM_STASH_LEVELS+1,ICODE,CMESSAGE)          BL_CTL1.421    
        IF (ICODE.GT.0) THEN                                               BL_CTL1.422    
          RETURN                                                           BL_CTL1.423    
        END IF                                                             BL_CTL1.424    
        LEVEL_OUT=0                                                        BL_CTL1.425    
        DO LEVEL=1,ST_LEVELS                                               AJS1F401.706    
          IF (LIST(LEVEL)) THEN                                            ASJ1F304.197    
            LEVEL_OUT=LEVEL_OUT+1                                          BL_CTL1.428    
            CALL FROM_LAND_POINTS (                                        GDR4F305.72     
     &          STASHWORK(SI(238,3,im_index)+(LEVEL_OUT-1)                 GDR4F305.73     
     &           *P_FIELD),D1(J_DEEP_SOIL_TEMP(LEVEL)),D1(JLAND),          @DYALLOC.655    
     &           P_FIELD,LAND_FIELD)                                       BL_CTL1.431    
          END IF                                                           BL_CTL1.432    
        END DO                                                             BL_CTL1.433    
      END IF                                                               BL_CTL1.434    
                                                                           BL_CTL1.435    
                                                                           BL_CTL1.436    
CL ITEM 287: CANOPY EVAPORATION ON NON-ICE S-TILES                         ABX1F405.221    
                                                                           ABX1F405.222    
      IF (SF(287,3)) THEN                                                  ABX1F405.223    
        CALL SET_PSEUDO_LIST(NTYPE-1,LEN_STLIST,                           ABX1F405.224    
     &       STLIST(1,STINDEX(1,287,3,im_index)),                          ABX1F405.225    
     &       PLLNIT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO,                  ABX1F405.226    
     &       ICODE,CMESSAGE)                                               ABX1F405.227    
        IF (ICODE.GT.0) THEN                                               ABX1F405.228    
          RETURN                                                           ABX1F405.229    
        END IF                                                             ABX1F405.230    
        PSLEVEL_OUT=0                                                      ABX1F405.231    
        DO PSLEVEL=1,NTYPE-1                                               ABX1F405.232    
          IF (PLLNIT(PSLEVEL)) THEN                                        ABX1F405.233    
            PSLEVEL_OUT=PSLEVEL_OUT+1                                      ABX1F405.234    
            CALL FROM_LAND_POINTS (                                        ABX1F405.235    
     &          STASHWORK(SI(287,3,im_index)+(PSLEVEL_OUT-1)               ABX1F405.236    
     &           *P_FIELD),ECAN_TILE(1,PSLEVEL),                           ABX1F405.237    
     &           D1(JLAND),P_FIELD,LAND_FIELD)                             ABX1F405.238    
          END IF                                                           ABX1F405.239    
        END DO                                                             ABX1F405.240    
      END IF                                                               ABX1F405.241    
                                                                           ABX1F405.242    
                                                                           ABX1F405.243    
CL ITEM 288: TRANSPIRATION + SOIL EVAPORATION ON NON-ICE S-TILES           ABX1F405.244    
                                                                           ABX1F405.245    
      IF (SF(288,3)) THEN                                                  ABX1F405.246    
        CALL SET_PSEUDO_LIST(NTYPE-1,LEN_STLIST,                           ABX1F405.247    
     &       STLIST(1,STINDEX(1,288,3,im_index)),                          ABX1F405.248    
     &       PLLNIT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO,                  ABX1F405.249    
     &       ICODE,CMESSAGE)                                               ABX1F405.250    
        IF (ICODE.GT.0) THEN                                               ABX1F405.251    
          RETURN                                                           ABX1F405.252    
        END IF                                                             ABX1F405.253    
        PSLEVEL_OUT=0                                                      ABX1F405.254    
        DO PSLEVEL=1,NTYPE-1                                               ABX1F405.255    
          IF (PLLNIT(PSLEVEL)) THEN                                        ABX1F405.256    
            PSLEVEL_OUT=PSLEVEL_OUT+1                                      ABX1F405.257    
            CALL FROM_LAND_POINTS (                                        ABX1F405.258    
     &          STASHWORK(SI(288,3,im_index)+(PSLEVEL_OUT-1)               ABX1F405.259    
     &           *P_FIELD),ESOIL_TILE(1,PSLEVEL),                          ABX1F405.260    
     &           D1(JLAND),P_FIELD,LAND_FIELD)                             ABX1F405.261    
          END IF                                                           ABX1F405.262    
        END DO                                                             ABX1F405.263    
      END IF                                                               ABX1F405.264    
                                                                           ABX1F405.265    
                                                                           ABX1F405.266    
CL ITEM 289: GROSS PRIMARY PRODUCTIVITY ON PLANT FUNCTIONAL TYPES          ABX1F405.267    
                                                                           ABX1F405.268    
      IF (SF(289,3)) THEN                                                  ABX1F405.269    
        CALL SET_PSEUDO_LIST(NPFT,LEN_STLIST,                              ABX1F405.270    
     &       STLIST(1,STINDEX(1,289,3,im_index)),                          ABX1F405.271    
     &       PLLPFT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO,                  ABX1F405.272    
     &       ICODE,CMESSAGE)                                               ABX1F405.273    
        IF (ICODE.GT.0) THEN                                               ABX1F405.274    
          RETURN                                                           ABX1F405.275    
        END IF                                                             ABX1F405.276    
        PSLEVEL_OUT=0                                                      ABX1F405.277    
        DO PSLEVEL=1,NPFT                                                  ABX1F405.278    
          IF (PLLPFT(PSLEVEL)) THEN                                        ABX1F405.279    
            PSLEVEL_OUT=PSLEVEL_OUT+1                                      ABX1F405.280    
            CALL FROM_LAND_POINTS (                                        ABX1F405.281    
     &          STASHWORK(SI(289,3,im_index)+(PSLEVEL_OUT-1)               ABX1F405.282    
     &           *P_FIELD),GPP_FT(1,PSLEVEL),                              ABX1F405.283    
     &           D1(JLAND),P_FIELD,LAND_FIELD)                             ABX1F405.284    
          END IF                                                           ABX1F405.285    
        END DO                                                             ABX1F405.286    
      END IF                                                               ABX1F405.287    
                                                                           ABX1F405.288    
                                                                           ABX1F405.289    
CL ITEM 290: SURFACE SENSIBLE HEAT FLUX ON S-TILES                         ABX1F405.290    
                                                                           ABX1F405.291    
      IF (SF(290,3)) THEN                                                  ABX1F405.292    
        CALL SET_PSEUDO_LIST(NTYPE,LEN_STLIST,                             ABX1F405.293    
     &       STLIST(1,STINDEX(1,290,3,im_index)),                          ABX1F405.294    
     &       PLLTYPE,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO,                 ABX1F405.295    
     &       ICODE,CMESSAGE)                                               ABX1F405.296    
        IF (ICODE.GT.0) THEN                                               ABX1F405.297    
          RETURN                                                           ABX1F405.298    
        END IF                                                             ABX1F405.299    
        PSLEVEL_OUT=0                                                      ABX1F405.300    
        DO PSLEVEL=1,NTYPE                                                 ABX1F405.301    
          IF (PLLTYPE(PSLEVEL)) THEN                                       ABX1F405.302    
            PSLEVEL_OUT=PSLEVEL_OUT+1                                      ABX1F405.303    
            CALL FROM_LAND_POINTS (                                        ABX1F405.304    
     &          STASHWORK(SI(290,3,im_index)+(PSLEVEL_OUT-1)               ABX1F405.305    
     &           *P_FIELD),FTL_TILE(1,PSLEVEL),                            ABX1F405.306    
     &           D1(JLAND),P_FIELD,LAND_FIELD)                             ABX1F405.307    
          END IF                                                           ABX1F405.308    
        END DO                                                             ABX1F405.309    
      END IF                                                               ABX1F405.310    
                                                                           ABX1F405.311    
                                                                           ABX1F405.312    
CL ITEM 291: NET PRIMARY PRODUCTIVITY ON PLANT FUNCTIONAL TYPES            ABX1F405.313    
                                                                           ABX1F405.314    
      IF (SF(291,3)) THEN                                                  ABX1F405.315    
        CALL SET_PSEUDO_LIST(NPFT,LEN_STLIST,                              ABX1F405.316    
     &       STLIST(1,STINDEX(1,291,3,im_index)),                          ABX1F405.317    
     &       PLLPFT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO,                  ABX1F405.318    
     &       ICODE,CMESSAGE)                                               ABX1F405.319    
        IF (ICODE.GT.0) THEN                                               ABX1F405.320    
          RETURN                                                           ABX1F405.321    
        END IF                                                             ABX1F405.322    
        PSLEVEL_OUT=0                                                      ABX1F405.323    
        DO PSLEVEL=1,NPFT                                                  ABX1F405.324    
          IF (PLLPFT(PSLEVEL)) THEN                                        ABX1F405.325    
            PSLEVEL_OUT=PSLEVEL_OUT+1                                      ABX1F405.326    
            CALL FROM_LAND_POINTS (                                        ABX1F405.327    
     &          STASHWORK(SI(291,3,im_index)+(PSLEVEL_OUT-1)               ABX1F405.328    
     &           *P_FIELD),NPP_FT(1,PSLEVEL),                              ABX1F405.329    
     &           D1(JLAND),P_FIELD,LAND_FIELD)                             ABX1F405.330    
          END IF                                                           ABX1F405.331    
        END DO                                                             ABX1F405.332    
      END IF                                                               ABX1F405.333    
                                                                           ABX1F405.334    
                                                                           ABX1F405.335    
CL ITEM 292: PLANT RESPIRATION ON PLANT FUNCTIONAL TYPES                   ABX1F405.336    
                                                                           ABX1F405.337    
      IF (SF(292,3)) THEN                                                  ABX1F405.338    
        CALL SET_PSEUDO_LIST(NPFT,LEN_STLIST,                              ABX1F405.339    
     &       STLIST(1,STINDEX(1,292,3,im_index)),                          ABX1F405.340    
     &       PLLPFT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO,                  ABX1F405.341    
     &       ICODE,CMESSAGE)                                               ABX1F405.342    
        IF (ICODE.GT.0) THEN                                               ABX1F405.343    
          RETURN                                                           ABX1F405.344    
        END IF                                                             ABX1F405.345    
        PSLEVEL_OUT=0                                                      ABX1F405.346    
        DO PSLEVEL=1,NPFT                                                  ABX1F405.347    
          IF (PLLPFT(PSLEVEL)) THEN                                        ABX1F405.348    
            PSLEVEL_OUT=PSLEVEL_OUT+1                                      ABX1F405.349    
            CALL FROM_LAND_POINTS (                                        ABX1F405.350    
     &          STASHWORK(SI(292,3,im_index)+(PSLEVEL_OUT-1)               ABX1F405.351    
     &           *P_FIELD),RESP_P_FT(1,PSLEVEL),                           ABX1F405.352    
     &           D1(JLAND),P_FIELD,LAND_FIELD)                             ABX1F405.353    
          END IF                                                           ABX1F405.354    
        END DO                                                             ABX1F405.355    
      END IF                                                               ABX1F405.356    
                                                                           ABX1F405.357    
                                                                           ABX1F405.358    
CL ITEM 293: SOIL RESPIRATION                                              ABX1F405.359    
                                                                           ABX1F405.360    
      IF (SF(293,3)) THEN                                                  ABX1F405.361    
        CALL FROM_LAND_POINTS (                                            ABX1F405.362    
     &       STASHWORK(SI(293,3,im_index)),RESP_S,                         ABX1F405.363    
     &       D1(JLAND),P_FIELD,LAND_FIELD)                                 ABX1F405.364    
      END IF                                                               ABX1F405.365    
                                                                           ABX1F405.366    
                                                                           ABX1F405.367    
CL ITEM 294: BULK RICHARDSON NUMBER ON S-TILES                             ABX1F405.368    
                                                                           ABX1F405.369    
      IF (SF(294,3)) THEN                                                  ABX1F405.370    
        CALL SET_PSEUDO_LIST(NTYPE,LEN_STLIST,                             ABX1F405.371    
     &       STLIST(1,STINDEX(1,294,3,im_index)),                          ABX1F405.372    
     &       PLLTYPE,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO,                 ABX1F405.373    
     &       ICODE,CMESSAGE)                                               ABX1F405.374    
        IF (ICODE.GT.0) THEN                                               ABX1F405.375    
          RETURN                                                           ABX1F405.376    
        END IF                                                             ABX1F405.377    
        PSLEVEL_OUT=0                                                      ABX1F405.378    
        DO PSLEVEL=1,NTYPE                                                 ABX1F405.379    
          IF (PLLTYPE(PSLEVEL)) THEN                                       ABX1F405.380    
            PSLEVEL_OUT=PSLEVEL_OUT+1                                      ABX1F405.381    
            CALL FROM_LAND_POINTS (                                        ABX1F405.382    
     &          STASHWORK(SI(294,3,im_index)+(PSLEVEL_OUT-1)               ABX1F405.383    
     &           *P_FIELD),RIB_TILE(1,PSLEVEL),                            ABX1F405.384    
     &           D1(JLAND),P_FIELD,LAND_FIELD)                             ABX1F405.385    
          END IF                                                           ABX1F405.386    
        END DO                                                             ABX1F405.387    
      END IF                                                               ABX1F405.388    
                                                                           ABX1F405.389    
                                                                           ABX1F405.390    
CL ITEM 295: FRACTIONAL SNOW COVER                                         ABX1F405.391    
                                                                           ABX1F405.392    
      IF (SF(295,3)) THEN                                                  ABX1F405.393    
        CALL FROM_LAND_POINTS (                                            ABX1F405.394    
     &       STASHWORK(SI(295,3,im_index)),SNOW_FRAC,                      ABX1F405.395    
     &       D1(JLAND),P_FIELD,LAND_FIELD)                                 ABX1F405.396    
      END IF                                                               ABX1F405.397    
                                                                           ABX1F405.398    
                                                                           ABX1F405.399    
CL ITEM 315: SNOW-ADJUSTED TILE FRACTIONS                                  ABX1F405.400    
                                                                           ABX1F405.401    
      IF (SF(315,3)) THEN                                                  ABX1F405.402    
        CALL SET_PSEUDO_LIST(NTYPE,LEN_STLIST,                             ABX1F405.403    
     &       STLIST(1,STINDEX(1,315,3,im_index)),                          ABX1F405.404    
     &       PLLTYPE,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO,                 ABX1F405.405    
     &       ICODE,CMESSAGE)                                               ABX1F405.406    
        IF (ICODE.GT.0) THEN                                               ABX1F405.407    
          RETURN                                                           ABX1F405.408    
        END IF                                                             ABX1F405.409    
        PSLEVEL_OUT=0                                                      ABX1F405.410    
        DO PSLEVEL=1,NTYPE                                                 ABX1F405.411    
          IF (PLLTYPE(PSLEVEL)) THEN                                       ABX1F405.412    
            PSLEVEL_OUT=PSLEVEL_OUT+1                                      ABX1F405.413    
            CALL FROM_LAND_POINTS (                                        ABX1F405.414    
     &          STASHWORK(SI(315,3,im_index)+(PSLEVEL_OUT-1)               ABX1F405.415    
     &           *P_FIELD),TILE_FRAC(1,PSLEVEL),                           ABX1F405.416    
     &           D1(JLAND),P_FIELD,LAND_FIELD)                             ABX1F405.417    
          END IF                                                           ABX1F405.418    
        END DO                                                             ABX1F405.419    
      END IF                                                               ABX1F405.420    
                                                                           ABX1F405.421    
                                                                           ABX1F405.422    
CL ITEM 316: SURFACE TEMPERATURE ON TILES                                  ABX1F405.423    
                                                                           ABX1F405.424    
      IF (SF(316,3)) THEN                                                  ABX1F405.425    
        CALL SET_PSEUDO_LIST(NTYPE,LEN_STLIST,                             ABX1F405.426    
     &       STLIST(1,STINDEX(1,316,3,im_index)),                          ABX1F405.427    
     &       PLLTYPE,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO,                 ABX1F405.428    
     &       ICODE,CMESSAGE)                                               ABX1F405.429    
        IF (ICODE.GT.0) THEN                                               ABX1F405.430    
          RETURN                                                           ABX1F405.431    
        END IF                                                             ABX1F405.432    
        PSLEVEL_OUT=0                                                      ABX1F405.433    
        DO PSLEVEL=1,NTYPE                                                 ABX1F405.434    
          IF (PLLTYPE(PSLEVEL)) THEN                                       ABX1F405.435    
            PSLEVEL_OUT=PSLEVEL_OUT+1                                      ABX1F405.436    
            CALL FROM_LAND_POINTS (                                        ABX1F405.437    
     &          STASHWORK(SI(316,3,im_index)+(PSLEVEL_OUT-1)               ABX1F405.438    
     &           *P_FIELD),D1(JTSTAR_TYP+((PSLEVEL-1)*LAND_FIELD)),        ABX1F405.439    
     &           D1(JLAND),P_FIELD,LAND_FIELD)                             ABX1F405.440    
          END IF                                                           ABX1F405.441    
        END DO                                                             ABX1F405.442    
      END IF                                                               ABX1F405.443    
                                                                           ABX1F405.444    
                                                                           ABX1F405.445    
CL ITEM 317: UNDERLYING TILE FRACTIONS                                     ABX1F405.446    
                                                                           ABX1F405.447    
      IF (SF(317,3)) THEN                                                  ABX1F405.448    
        CALL SET_PSEUDO_LIST(NTYPE,LEN_STLIST,                             ABX1F405.449    
     &       STLIST(1,STINDEX(1,317,3,im_index)),                          ABX1F405.450    
     &       PLLTYPE,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO,                 ABX1F405.451    
     &       ICODE,CMESSAGE)                                               ABX1F405.452    
        IF (ICODE.GT.0) THEN                                               ABX1F405.453    
          RETURN                                                           ABX1F405.454    
        END IF                                                             ABX1F405.455    
        PSLEVEL_OUT=0                                                      ABX1F405.456    
        DO PSLEVEL=1,NTYPE                                                 ABX1F405.457    
          IF (PLLTYPE(PSLEVEL)) THEN                                       ABX1F405.458    
            PSLEVEL_OUT=PSLEVEL_OUT+1                                      ABX1F405.459    
            CALL FROM_LAND_POINTS (                                        ABX1F405.460    
     &          STASHWORK(SI(317,3,im_index)+(PSLEVEL_OUT-1)               ABX1F405.461    
     &           *P_FIELD),D1(JFRAC_TYP+((PSLEVEL-1)*LAND_FIELD)),         ABX1F405.462    
     &           D1(JLAND),P_FIELD,LAND_FIELD)                             ABX1F405.463    
          END IF                                                           ABX1F405.464    
        END DO                                                             ABX1F405.465    
      END IF                                                               ABX1F405.466    
                                                                           ABX1F405.467    
                                                                           ABX1F405.468    
CL ITEM 318: LEAF AREA INDEX ON PLANT FUNCTIONAL TYPES                     ABX1F405.469    
                                                                           ABX1F405.470    
      IF (SF(318,3)) THEN                                                  ABX1F405.471    
        CALL SET_PSEUDO_LIST(NPFT,LEN_STLIST,                              ABX1F405.472    
     &       STLIST(1,STINDEX(1,318,3,im_index)),                          ABX1F405.473    
     &       PLLPFT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO,                  ABX1F405.474    
     &       ICODE,CMESSAGE)                                               ABX1F405.475    
        IF (ICODE.GT.0) THEN                                               ABX1F405.476    
          RETURN                                                           ABX1F405.477    
        END IF                                                             ABX1F405.478    
        PSLEVEL_OUT=0                                                      ABX1F405.479    
        DO PSLEVEL=1,NPFT                                                  ABX1F405.480    
          IF (PLLPFT(PSLEVEL)) THEN                                        ABX1F405.481    
            PSLEVEL_OUT=PSLEVEL_OUT+1                                      ABX1F405.482    
            CALL FROM_LAND_POINTS (                                        ABX1F405.483    
     &          STASHWORK(SI(318,3,im_index)+(PSLEVEL_OUT-1)               ABX1F405.484    
     &           *P_FIELD),D1(JLAI_PFT+((PSLEVEL-1)*LAND_FIELD)),          ABX1F405.485    
     &           D1(JLAND),P_FIELD,LAND_FIELD)                             ABX1F405.486    
          END IF                                                           ABX1F405.487    
        END DO                                                             ABX1F405.488    
      END IF                                                               ABX1F405.489    
                                                                           ABX1F405.490    
                                                                           ABX1F405.491    
CL ITEM 319: CANOPY HEIGHT ON PLANT FUNCTIONAL TYPES                       ABX1F405.492    
                                                                           ABX1F405.493    
      IF (SF(319,3)) THEN                                                  ABX1F405.494    
        CALL SET_PSEUDO_LIST(NPFT,LEN_STLIST,                              ABX1F405.495    
     &       STLIST(1,STINDEX(1,319,3,im_index)),                          ABX1F405.496    
     &       PLLPFT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO,                  ABX1F405.497    
     &       ICODE,CMESSAGE)                                               ABX1F405.498    
        IF (ICODE.GT.0) THEN                                               ABX1F405.499    
          RETURN                                                           ABX1F405.500    
        END IF                                                             ABX1F405.501    
        PSLEVEL_OUT=0                                                      ABX1F405.502    
        DO PSLEVEL=1,NPFT                                                  ABX1F405.503    
          IF (PLLPFT(PSLEVEL)) THEN                                        ABX1F405.504    
            PSLEVEL_OUT=PSLEVEL_OUT+1                                      ABX1F405.505    
            CALL FROM_LAND_POINTS (                                        ABX1F405.506    
     &          STASHWORK(SI(319,3,im_index)+(PSLEVEL_OUT-1)               ABX1F405.507    
     &           *P_FIELD),D1(JCANHT_PFT+((PSLEVEL-1)*LAND_FIELD)),        ABX1F405.508    
     &           D1(JLAND),P_FIELD,LAND_FIELD)                             ABX1F405.509    
          END IF                                                           ABX1F405.510    
        END DO                                                             ABX1F405.511    
      END IF                                                               ABX1F405.512    
                                                                           ABX1F405.513    
                                                                           ABX1F405.514    
CL ITEM 320: SOIL CARBON CONTENT                                           ABX1F405.515    
                                                                           ABX1F405.516    
      IF (SF(320,3)) THEN                                                  ABX1F405.517    
        CALL FROM_LAND_POINTS (                                            ABX1F405.518    
     &       STASHWORK(SI(320,3,im_index)),D1(JSOIL_CARB),                 ABX1F405.519    
     &       D1(JLAND),P_FIELD,LAND_FIELD)                                 ABX1F405.520    
      END IF                                                               ABX1F405.521    
                                                                           ABX1F405.522    
                                                                           ABX1F405.523    
CL ITEM 321: CANOPY WATER CONTENT ON NON-ICE TILES                         ABX1F405.524    
                                                                           ABX1F405.525    
      IF (SF(321,3)) THEN                                                  ABX1F405.526    
        CALL SET_PSEUDO_LIST(NTYPE-1,LEN_STLIST,                           ABX1F405.527    
     &       STLIST(1,STINDEX(1,321,3,im_index)),                          ABX1F405.528    
     &       PLLNIT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO,                  ABX1F405.529    
     &       ICODE,CMESSAGE)                                               ABX1F405.530    
        IF (ICODE.GT.0) THEN                                               ABX1F405.531    
          RETURN                                                           ABX1F405.532    
        END IF                                                             ABX1F405.533    
        PSLEVEL_OUT=0                                                      ABX1F405.534    
        DO PSLEVEL=1,NTYPE-1                                               ABX1F405.535    
          IF (PLLNIT(PSLEVEL)) THEN                                        ABX1F405.536    
            PSLEVEL_OUT=PSLEVEL_OUT+1                                      ABX1F405.537    
            CALL FROM_LAND_POINTS (                                        ABX1F405.538    
     &          STASHWORK(SI(321,3,im_index)+(PSLEVEL_OUT-1)               ABX1F405.539    
     &           *P_FIELD),D1(JCAN_WATER_NIT+((PSLEVEL-1)*LAND_FIELD)),    ABX1F405.540    
     &           D1(JLAND),P_FIELD,LAND_FIELD)                             ABX1F405.541    
          END IF                                                           ABX1F405.542    
        END DO                                                             ABX1F405.543    
      END IF                                                               ABX1F405.544    
                                                                           ABX1F405.545    
                                                                           ABX1F405.546    
CL ITEM 322: CANOPY CAPACITY ON NON-ICE TILES                              ABX1F405.547    
                                                                           ABX1F405.548    
      IF (SF(322,3)) THEN                                                  ABX1F405.549    
        CALL SET_PSEUDO_LIST(NTYPE-1,LEN_STLIST,                           ABX1F405.550    
     &       STLIST(1,STINDEX(1,322,3,im_index)),                          ABX1F405.551    
     &       PLLNIT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO,                  ABX1F405.552    
     &       ICODE,CMESSAGE)                                               ABX1F405.553    
        IF (ICODE.GT.0) THEN                                               ABX1F405.554    
          RETURN                                                           ABX1F405.555    
        END IF                                                             ABX1F405.556    
        PSLEVEL_OUT=0                                                      ABX1F405.557    
        DO PSLEVEL=1,NTYPE-1                                               ABX1F405.558    
          IF (PLLNIT(PSLEVEL)) THEN                                        ABX1F405.559    
            PSLEVEL_OUT=PSLEVEL_OUT+1                                      ABX1F405.560    
            CALL FROM_LAND_POINTS (                                        ABX1F405.561    
     &          STASHWORK(SI(322,3,im_index)+(PSLEVEL_OUT-1)               ABX1F405.562    
     &           *P_FIELD),D1(JCATCH_NIT+((PSLEVEL-1)*LAND_FIELD)),        ABX1F405.563    
     &           D1(JLAND),P_FIELD,LAND_FIELD)                             ABX1F405.564    
          END IF                                                           ABX1F405.565    
        END DO                                                             ABX1F405.566    
      END IF                                                               ABX1F405.567    
                                                                           ABX1F405.568    
                                                                           ABX1F405.569    
CL ITEM 323: SNOW TEMPERATURE                                              ABX1F405.570    
                                                                           ABX1F405.571    
      IF (SF(323,3)) THEN                                                  ABX1F405.572    
        CALL FROM_LAND_POINTS (                                            ABX1F405.573    
     &       STASHWORK(SI(323,3,im_index)),D1(JTSNOW),                     ABX1F405.574    
     &       D1(JLAND),P_FIELD,LAND_FIELD)                                 ABX1F405.575    
      END IF                                                               ABX1F405.576    
                                                                           ABX1F405.577    
                                                                           ABX1F405.578    
CL ITEM 324: ROUGHNESS LENGTH OF BASE TILES                                ABX1F405.579    
                                                                           ABX1F405.580    
      IF (SF(324,3)) THEN                                                  ABX1F405.581    
        CALL SET_PSEUDO_LIST(NTYPE,LEN_STLIST,                             ABX1F405.582    
     &       STLIST(1,STINDEX(1,324,3,im_index)),                          ABX1F405.583    
     &       PLLTYPE,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO,                 ABX1F405.584    
     &       ICODE,CMESSAGE)                                               ABX1F405.585    
        IF (ICODE.GT.0) THEN                                               ABX1F405.586    
          RETURN                                                           ABX1F405.587    
        END IF                                                             ABX1F405.588    
        PSLEVEL_OUT=0                                                      ABX1F405.589    
        DO PSLEVEL=1,NTYPE                                                 ABX1F405.590    
          IF (PLLTYPE(PSLEVEL)) THEN                                       ABX1F405.591    
            PSLEVEL_OUT=PSLEVEL_OUT+1                                      ABX1F405.592    
            CALL FROM_LAND_POINTS (                                        ABX1F405.593    
     &          STASHWORK(SI(324,3,im_index)+(PSLEVEL_OUT-1)               ABX1F405.594    
     &           *P_FIELD),D1(JZ0_TYP+((PSLEVEL-1)*LAND_FIELD)),           ABX1F405.595    
     &           D1(JLAND),P_FIELD,LAND_FIELD)                             ABX1F405.596    
          END IF                                                           ABX1F405.597    
        END DO                                                             ABX1F405.598    
      END IF                                                               ABX1F405.599    
                                                                           ABX1F405.600    
                                                                           ABX1F405.601    
CL ITEM 325: LEAF TURNOVER RATE ON PLANT FUNCTIONAL TYPES                  ABX1F405.602    
                                                                           ABX1F405.603    
      IF (SF(325,3)) THEN                                                  ABX1F405.604    
        CALL SET_PSEUDO_LIST(NPFT,LEN_STLIST,                              ABX1F405.605    
     &       STLIST(1,STINDEX(1,325,3,im_index)),                          ABX1F405.606    
     &       PLLPFT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO,                  ABX1F405.607    
     &       ICODE,CMESSAGE)                                               ABX1F405.608    
        IF (ICODE.GT.0) THEN                                               ABX1F405.609    
          RETURN                                                           ABX1F405.610    
        END IF                                                             ABX1F405.611    
        PSLEVEL_OUT=0                                                      ABX1F405.612    
        DO PSLEVEL=1,NPFT                                                  ABX1F405.613    
          IF (PLLPFT(PSLEVEL)) THEN                                        ABX1F405.614    
            PSLEVEL_OUT=PSLEVEL_OUT+1                                      ABX1F405.615    
            CALL FROM_LAND_POINTS (                                        ABX1F405.616    
     &          STASHWORK(SI(325,3,im_index)+(PSLEVEL_OUT-1)               ABX1F405.617    
     &           *P_FIELD),G_LEAF(1,PSLEVEL),                              ABX1F405.618    
     &           D1(JLAND),P_FIELD,LAND_FIELD)                             ABX1F405.619    
          END IF                                                           ABX1F405.620    
        END DO                                                             ABX1F405.621    
      END IF                                                               ABX1F405.622    
                                                                           ABX1F405.623    
                                                                           ABX1F405.624    
C Item 239 Cloud water after boundary layer                                BL_CTL1.437    
                                                                           BL_CTL1.438    
      IF (SF(239,3)) THEN                                                  ASJ1F304.198    
                                                                           BL_CTL1.440    
        CALL COPYDIAG_3D(STASHWORK(SI(239,3,im_index)),D1(JQCL(1)),        GDR4F305.74     
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    BL_CTL1.442    
     &       P_LEVELS,STLIST(1,STINDEX(1,239,3,im_index)),LEN_STLIST,      GDR4F305.12     
     &       STASH_LEVELS,NUM_STASH_LEVELS+1,                              BL_CTL1.444    
     &       im_ident,3,239,                                               GPB1F403.501    
*CALL ARGPPX                                                               GPB1F403.502    
     &       ICODE,CMESSAGE)                                               BL_CTL1.445    
                                                                           BL_CTL1.446    
        IF (ICODE.GT.0) THEN                                               BL_CTL1.447    
          RETURN                                                           BL_CTL1.448    
        END IF                                                             BL_CTL1.449    
                                                                           BL_CTL1.450    
      END IF                                                               BL_CTL1.451    
                                                                           BL_CTL1.452    
C Item 240 Cloud ice after boundary layer                                  BL_CTL1.453    
                                                                           BL_CTL1.454    
      IF (SF(240,3)) THEN                                                  ASJ1F304.199    
                                                                           BL_CTL1.456    
        CALL COPYDIAG_3D(STASHWORK(SI(240,3,im_index)),D1(JQCF(1)),        GDR4F305.75     
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    BL_CTL1.458    
     &       P_LEVELS,STLIST(1,STINDEX(1,240,3,im_index)),LEN_STLIST,      GDR4F305.13     
     &       STASH_LEVELS,NUM_STASH_LEVELS+1,                              BL_CTL1.460    
     &       im_ident,3,240,                                               GPB1F403.503    
*CALL ARGPPX                                                               GPB1F403.504    
     &       ICODE,CMESSAGE)                                               BL_CTL1.461    
                                                                           BL_CTL1.462    
        IF (ICODE.GT.0) THEN                                               BL_CTL1.463    
          RETURN                                                           BL_CTL1.464    
        END IF                                                             BL_CTL1.465    
                                                                           BL_CTL1.466    
      END IF                                                               BL_CTL1.467    
                                                                           BL_CTL1.468    
CL ITEM 251 silhouette area of orography per unit area                     ASJ1F304.200    
      IF (SF(251,3)) THEN                                                  ASJ1F304.201    
        CALL FROM_LAND_POINTS(STASHWORK(SI(251,3,im_index)),               GDR4F305.78     
     &           D1(JOROG_SIL),D1(JLAND),P_FIELD,LAND_FIELD)               GDR4F305.79     
      ENDIF                                                                ASJ1F304.204    
                                                                           ASJ1F304.205    
CL ITEM 252 half of peak to trough height                                  ASJ1F304.206    
      IF (SF(252,3)) THEN                                                  ASJ1F304.207    
        CALL FROM_LAND_POINTS(STASHWORK(SI(252,3,im_index)),               GDR4F305.80     
     &           D1(JOROG_HO2),D1(JLAND),P_FIELD,LAND_FIELD)               GDR4F305.81     
      ENDIF                                                                AJS1F401.707    
                                                                           AJS1F401.708    
C                                                                          AJS1F401.709    
CL ITEM  259 Canopy Conductance                                            AJS1F401.710    
      IF (SF(259,3)) THEN                                                  AJS1F401.711    
        CALL FROM_LAND_POINTS(STASHWORK(SI(259,3,im_index)),               AJS1F401.712    
     &           D1(JGS),D1(JLAND),P_FIELD,LAND_FIELD)                     AJS1F401.713    
      ENDIF                                                                AJS1F401.714    
C                                                                          AJS1F401.715    
C ITEM 260 Transpiration required as amounts                               AJS1F401.716    
C                                                                          AJS1F401.717    
      IF (SF(260,3)) THEN                                                  AJS1F401.718    
        DO I=FIRST_VALID_PT,LAST_P_VALID_PT                                GPB1F403.505    
          STASHWORK(SI(260,3,im_index)+I-1)=                               AJS1F401.720    
     &    WORK10(I)*SECS_PER_STEPim(a_im)                                  AJS1F401.721    
        END DO                                                             AJS1F401.722    
      ENDIF                                                                AJS1F401.723    
C                                                                          AJS1F401.724    
CL ITEM 261 Gross Primary Productivity                                     AJS1F401.725    
      IF (SF(261,3)) THEN                                                  AJS1F401.726    
        CALL FROM_LAND_POINTS(STASHWORK(SI(261,3,im_index)),               AJS1F401.727    
     &           WORK7,D1(JLAND),P_FIELD,LAND_FIELD)                       AJS1F401.728    
      ENDIF                                                                AJS1F401.729    
                                                                           AJS1F401.730    
CL ITEM 262 Net Primary Productivity                                       AJS1F401.731    
      IF (SF(262,3)) THEN                                                  AJS1F401.732    
        CALL FROM_LAND_POINTS(STASHWORK(SI(262,3,im_index)),               AJS1F401.733    
     &           WORK8,D1(JLAND),P_FIELD,LAND_FIELD)                       AJS1F401.734    
      ENDIF                                                                AJS1F401.735    
C                                                                          AJS1F401.736    
CL ITEM 263 Plant Respiration                                              AJS1F401.737    
      IF (SF(263,3)) THEN                                                  AJS1F401.738    
        CALL FROM_LAND_POINTS(STASHWORK(SI(263,3,im_index)),               AJS1F401.739    
     &           WORK9,D1(JLAND),P_FIELD,LAND_FIELD)                       AJS1F401.740    
      ENDIF                                                                AJS1F401.741    
                                                                           AJS1F401.742    
CL ITEM 264 leaf area index                                                AJS1F401.743    
      IF (SF(264,3)) THEN                                                  AJS1F401.744    
        CALL FROM_LAND_POINTS(STASHWORK(SI(264,3,im_index)),               AJS1F401.745    
     &           D1(JLAI),D1(JLAND),P_FIELD,LAND_FIELD)                    AJS1F401.746    
      ENDIF                                                                AJS1F401.747    
C                                                                          AJS1F401.748    
CL ITEM 265 canopy height                                                  AJS1F401.749    
      IF (SF(265,3)) THEN                                                  AJS1F401.750    
        CALL FROM_LAND_POINTS(STASHWORK(SI(265,3,im_index)),               AJS1F401.751    
     &           D1(JCANHT),D1(JLAND),P_FIELD,LAND_FIELD)                  AJS1F401.752    
      ENDIF                                                                ASJ1F304.210    
                                                                           ASJ1F304.211    
CL Rate-equivalents of items 229, 230, 231 and 260                         ABX1F405.625    
C                                                                          ABX1F405.626    
C Item 296 "soil evaporation" (includes transpiration") rate (kg/m2/s)     ABX1F405.627    
C                                                                          ABX1F405.628    
      IF (SF(296,3)) THEN                                                  ABX1F405.629    
                                                                           ABX1F405.630    
        CALL COPYDIAG(STASHWORK(SI(296,3,im_index)),SOIL_EVAPORATION,      ABX1F405.631    
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    ABX1F405.632    
     &       im_ident,3,296,                                               ABX1F405.633    
*CALL ARGPPX                                                               ABX1F405.634    
     &       ICODE,CMESSAGE)                                               ABX1F405.635    
                                                                           ABX1F405.636    
        IF (ICODE .GT. 0) GOTO 9999                                        ABX1F405.637    
                                                                           ABX1F405.638    
      END IF                                                               ABX1F405.639    
C                                                                          ABX1F405.640    
C Item 297 canopy evaporation rate (kg/m2/s)                               ABX1F405.641    
C                                                                          ABX1F405.642    
      IF (SF(297,3)) THEN                                                  ABX1F405.643    
                                                                           ABX1F405.644    
        CALL COPYDIAG(STASHWORK(SI(297,3,im_index)),CANOPY_EVAPORATION,    ABX1F405.645    
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    ABX1F405.646    
     &       im_ident,3,297,                                               ABX1F405.647    
*CALL ARGPPX                                                               ABX1F405.648    
     &       ICODE,CMESSAGE)                                               ABX1F405.649    
                                                                           ABX1F405.650    
        IF (ICODE .GT. 0) GOTO 9999                                        ABX1F405.651    
                                                                           ABX1F405.652    
      END IF                                                               ABX1F405.653    
C                                                                          ABX1F405.654    
C Item 298 snow sublimation rate (kg/m2/s)                                 ABX1F405.655    
C                                                                          ABX1F405.656    
      IF (SF(298,3)) THEN                                                  ABX1F405.657    
                                                                           ABX1F405.658    
        CALL COPYDIAG(STASHWORK(SI(298,3,im_index)),SNOW_SUBLIMATION,      ABX1F405.659    
     &       FIRST_POINT,LAST_POINT,P_FIELD,ROW_LENGTH,                    ABX1F405.660    
     &       im_ident,3,298,                                               ABX1F405.661    
*CALL ARGPPX                                                               ABX1F405.662    
     &       ICODE,CMESSAGE)                                               ABX1F405.663    
                                                                           ABX1F405.664    
        IF (ICODE .GT. 0) GOTO 9999                                        ABX1F405.665    
                                                                           ABX1F405.666    
      END IF                                                               ABX1F405.667    
C                                                                          ABX1F405.668    
C ITEM 299 Transpiration rate (kg/m2/s)                                    ABX1F405.669    
C                                                                          ABX1F405.670    
      IF (SF(299,3)) THEN                                                  ABX1F405.671    
        DO I=FIRST_VALID_PT,LAST_P_VALID_PT                                ABX1F405.672    
          STASHWORK(SI(299,3,im_index)+I-1)=                               ABX1F405.673    
     &    WORK10(I)                                                        ABX1F405.674    
        END DO                                                             ABX1F405.675    
      ENDIF                                                                ABX1F405.676    
C                                                                          ABX1F405.677    
CL Extend remaining diagnostic information to full horizontal field        BL_CTL1.475    
                                                                           BL_CTL1.476    
      CALL EXTDIAG(STASHWORK,SI(1,3,im_index),SF(1,3),201,NITEMS,          GDR4F305.82     
     &     INT3,ROW_LENGTH,                                                BL_CTL1.478    
     &     STLIST,LEN_STLIST,STINDEX(1,1,3,im_index),2,STASH_LEVELS,       GDR4F305.14     
     &     NUM_STASH_LEVELS+1, STASH_PSEUDO_LEVELS,                        BL_CTL1.480    
     &     NUM_STASH_PSEUDO,                                               GPB1F403.1279   
     &     im_ident,3,                                                     GPB1F403.1280   
*CALL ARGPPX                                                               GPB1F403.1281   
     &     ICODE,CMESSAGE)                                                 GPB1F403.1282   
                                                                           BL_CTL1.482    
      IF (ICODE.GT.0) THEN                                                 ASJ1F304.212    
        RETURN                                                             BL_CTL1.484    
      ENDIF                                                                BL_CTL1.485    
                                                                           BL_CTL1.486    
*IF DEF,GLOBAL                                                             BL_CTL1.487    
                                                                           BL_CTL1.488    
CL ITEM 219 X component surface and BL wind stress                         BL_CTL1.489    
CL ITEM 220 Y component surface and BL wind stress                         BL_CTL1.490    
CL Call POLAR_UV if either X,Y components requested for each level         BL_CTL1.491    
      IF (SF(219,3).OR.SF(220,3)) THEN                                     ASJ1F304.213    
        CALL POLAR_UV(STASHWORK(SI(219,3,im_index)),                       APB2F401.227    
     &                STASHWORK(SI(220,3,im_index)),                       APB2F401.228    
     &                ROW_LENGTH,U_FIELD,BL_LEVELS,                        APB2F401.229    
*CALL ARGFLDPT                                                             APB2F401.230    
     &                COS_LONGITUDE,SIN_LONGITUDE)                         APB2F401.231    
      END IF                                                               BL_CTL1.499    
CL ITEMS 225,226  X and Y  10 M wind                                       BL_CTL1.500    
CL Call POLAR_UV if both X,Y components requested                          BL_CTL1.501    
CL      and compute 10m windspeed from 2 components if requested           TJ181193.7      
       IF (SF(225,3).AND.SF(226,3) ) THEN                                  ASJ1F304.214    
         CALL POLAR_UV(STASHWORK(SI(225,3,im_index)),                      GDR4F305.85     
     &                 STASHWORK(SI(226,3,im_index)),                      GDR4F305.86     
     &                 ROW_LENGTH,U_FIELD,1,                               APB2F401.232    
*CALL ARGFLDPT                                                             APB2F401.233    
     &                 COS_LONGITUDE,SIN_LONGITUDE)                        APB2F401.234    
       END IF                                                              BL_CTL1.506    
                                                                           BL_CTL1.507    
*ENDIF                                                                     BL_CTL1.508    
                                                                           TJ181193.8      
CL ITEM 249 10m wind speed - NB: dependent on components 225 and 226       TJ181193.9      
      IF (SF(225,3).AND.SF(226,3).AND.SF(249,3)) THEN                      ASJ1F304.215    
        DO I=FIRST_VALID_PT,LAST_U_VALID_PT                                APBGF401.83     
          STASHWORK(SI(249,3,im_index)+I-1) =                              GDR4F305.88     
     &      SQRT ( STASHWORK(SI(225,3,im_index)+I-1) *                     GDR4F305.89     
     &             STASHWORK(SI(225,3,im_index)+I-1) +                     GDR4F305.90     
     &             STASHWORK(SI(226,3,im_index)+I-1) *                     GDR4F305.91     
     &             STASHWORK(SI(226,3,im_index)+I-1)  )                    GDR4F305.92     
        ENDDO                                                              TJ181193.15     
      END IF                                                               TJ181193.16     
                                                                           BL_CTL1.509    
      IF (LTIMER) THEN                                                     ASJ1F304.216    
        CALL TIMER('STASH   ',3)                                           BL_CTL1.511    
      END IF                                                               BL_CTL1.512    
                                                                           BL_CTL1.513    
      CALL STASH(a_sm,a_im,3,STASHWORK,                                    GKR0F305.909    
*CALL ARGSIZE                                                              @DYALLOC.658    
*CALL ARGD1                                                                @DYALLOC.659    
*CALL ARGDUMA                                                              @DYALLOC.660    
*CALL ARGDUMO                                                              @DYALLOC.661    
*CALL ARGDUMW                                                              GKR1F401.191    
*CALL ARGSTS                                                               @DYALLOC.662    
*CALL ARGPPX                                                               GKR0F305.910    
     &           ICODE,CMESSAGE)                                           @DYALLOC.666    
                                                                           BL_CTL1.515    
      IF (LTIMER) THEN                                                     ASJ1F304.217    
        CALL TIMER('STASH   ',4)                                           BL_CTL1.517    
      END IF                                                               BL_CTL1.518    
                                                                           BL_CTL1.519    
C -----------------------------------------------------                    BL_CTL1.520    
                                                                           BL_CTL1.521    
 9999 CONTINUE                                                             GPB1F403.506    
      RETURN                                                               BL_CTL1.522    
      END                                                                  BL_CTL1.523    
                                                                           BL_CTL1.524    
*ENDIF                                                                     BL_CTL1.525