*IF DEF,CONTROL,AND,DEF,ATMOS                                              STATMPT1.2      
C ******************************COPYRIGHT******************************    GTS2F400.9523   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.9524   
C                                                                          GTS2F400.9525   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.9526   
C restrictions as set forth in the contract.                               GTS2F400.9527   
C                                                                          GTS2F400.9528   
C                Meteorological Office                                     GTS2F400.9529   
C                London Road                                               GTS2F400.9530   
C                BRACKNELL                                                 GTS2F400.9531   
C                Berkshire UK                                              GTS2F400.9532   
C                RG12 2SZ                                                  GTS2F400.9533   
C                                                                          GTS2F400.9534   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.9535   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.9536   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.9537   
C Modelling at the above address.                                          GTS2F400.9538   
C ******************************COPYRIGHT******************************    GTS2F400.9539   
C                                                                          GTS2F400.9540   
CLL  SUBROUTINE SET_ATM_POINTERS ---------------------------------------   STATMPT1.3      
CLL                                                                        STATMPT1.4      
CLL  Set pointers for primary atmosphere fields                            STATMPT1.5      
CLL Initialisation routine for CRAY YMP                                    STATMPT1.6      
CLL                                                                        STATMPT1.7      
CLL MC, CW      <- programmer of some or all of previous code or changes   STATMPT1.8      
CLL                                                                        STATMPT1.9      
CLL  Model            Modification history from model version 3.0:         STATMPT1.10     
CLL version  Date                                                          STATMPT1.11     
CLL  3.1    9/02/93  : added comdeck CHSUNITS to define NUNITS for         RS030293.236    
CLL                    comdeck CCONTROL.                                   RS030293.237    
CLL 3.1     11/03/93  Set JTRACER(1,1) to have a sensible address          DR240293.1108   
CL                    even if there are no tracers to remove bounds        DR240293.1109   
CL                    checking problems in later routines. R. Rawlins      DR240293.1110   
CLL 3.2    27/03/93 Dynamic allocation of main data arrays. R. Rawlins     @DYALLOC.3413   
CLL 3.4    20/01/94 Changes to allow for non-consecutive tracers.          AMC1F304.1      
CLL                 M.Carter                                               AMC1F304.2      
CLL  3.3  22/11/93  Add aerosol ancillary fields.  R T H Barnes.           RB221193.95     
CLL  3.3   26/10/93  M. Carter. Part of an extensive mod that:             MC261093.274    
CLL                  1.Removes the limit on primary STASH item numbers.    MC261093.275    
CLL                  2.Removes the assumption that (section,item)          MC261093.276    
CLL                    defines the sub-model.                              MC261093.277    
CLL                  3.Thus allows for user-prognostics.                   MC261093.278    
CLL                   Remove a_max_variables.                              MC261093.279    
CLL                   PPINDEX now read from UI in INITCTL.                 MC261093.280    
CLL  3.4  05/09/94  Add murk & user ancillary fields.  RTHBarnes.          GRB0F304.195    
CLL  3.4   18/05/94  J.Thomson add pointers for slab temperature           GJT1F304.1      
CLL                            and u and v ice velocities.                 GJT1F304.2      
CLL  3.5   19/05/95  Some pointers for level dependent constants           ADR1F305.211    
CLL                  array removed. Sub_model change. D. Robinson          ADR1F305.212    
CLL  4.0   06/09/95  Set up pointers correctly for SLAB fields.            GDR5F400.3      
CLL                  D. Robinson                                           GDR5F400.4      
CLL                                                                        ADR1F305.213    
CLL  4.0 26/7/94 R.E. Essery Extra prognostic sea-ice temperature.         AJS1F400.178    
CLL  4.1 10/1/96      Extra prognostics frozen and unfrozen soil           AJS1F401.31     
CLL                   moisture fractions, and canopy conductance           AJS1F401.32     
CLL                   plus 2 extra vegetation fields J.Smith               AJS1F401.33     
CLL  4.1 30/04/96     Add pointers for 6 new variables and 6 new           AJS1F401.34     
CLL                   ancillary fields for Sulphur Cycle   M Woodage       AJS1F401.35     
CLL  4.3  18/3/97     Add pointers for HadCM2 sulphate loading patterns    AWI1F403.48     
CLL                                                   William Ingram       AWI1F403.49     
!LL  4.2  16/08/96    Added MPP PARVARS comdeck, and defined rowdepc       APB0F402.121    
!LL                   (filterable wave numbers array) to be globally       APB0F402.122    
!LL                   sized.                                P.Burton       APB0F402.123    
!LL  4.3  06/03/97    Dimension multi_level land fields by LAND_FIELD      ADR2F403.1      
!LL                   for MPP jobs. D. Robinson.                           ADR2F403.2      
!LL  4.4  05/09/97    Add pointer for net energy flux prognostic           GSM3F404.5      
!LL                   S.D.Mullerworth                                      GSM3F404.6      
!LL  4.4  04/08/97  Generalise JQCF pointer for mixed phase                ARB1F404.430    
!LL                 precipitation scheme.  RTHBarnes.                      ARB1F404.431    
!LL  4.4  05/08/97    Add pointer for convective cloud amount on           AJX0F404.445    
!LL                   model levels (3D CCA) if L_3D_CCA. J.M.Gregory       AJX0F404.446    
!LL  4.4  10/09/97    Added pointers for snow grain size and snow soot     ABX1F404.52     
!LL                   content used in prognostic snow albedo scheme        ABX1F404.53     
!LL                   R. Essery                                            ABX1F404.54     
!LL  4.4  16/09/97    Add call to NSTYPES and pointers for new             ABX1F404.55     
!LL                   vegetation and land surface prognostics. R.A.Betts   ABX1F404.56     
!LL  4.5   1/07/98    Add pointers for ocean CO2 flux and surface          CCN1F405.218    
!LL                     CO2 emissions. C.D.Jones                           CCN1F405.219    
!LL  4.5  04/03/98   Add pointers for NH3 prognostic and NH3 surface       AWO1F405.1      
!LL                    emiss for S Cycle                 M Woodage         AWO1F405.2      
!LL                  Also add pointers for 3 soot prognostic variables     AWO1F405.3      
!LL                    and 2 soot emiss                    M Woodage       AWO1F405.4      
CLL  4.5  15/07/98  Add pointers for new 3D CO2 array. C.D.Jones           ACN2F405.1      
!LL  4.5  13/05/98    Add pointer for RHcrit.   S. Cusack                  ASK1F405.1      
!    4.5  22/10/98    Add pointers for extra multi-layer user              GDG2F405.39     
!                     ancillary fields                                     GDG2F405.40     
!                     Author D.M. Goddard                                  GDG2F405.41     
!    4.5  29/04/98    Pointer to total soil moisture content to point      GDG3F405.1      
!                     to non prognostic space in MOSES.                    GDG3F405.2      
!                     Author D.M. Goddard                                  GDG3F405.3      
CLL  4.5  19/01/98    Replace JVEG_FLDS and JSOIL_FLDS with                GDR6F405.63     
CLL                   individual pointers. D. Robinson                     GDR6F405.64     
CLL Programming Standard: Unified Model DP NO. 3, Version 3                STATMPT1.13     
CLL                                                                        STATMPT1.14     
CLL  Logical task: P0                                                      STATMPT1.15     
CLL                                                                        STATMPT1.16     
CLL  System Components: C21 (Atmosphere part)                              STATMPT1.17     
CLL                                                                        STATMPT1.18     
CLL  Purpose:   Sets integer pointers to atmospheric                       STATMPT1.19     
CLL             variables from STASHIN addresses.                          STATMPT1.20     
CLL                                                                        STATMPT1.21     
CLL  External documentation: UMDP NO. C4 Version NO. 4                     STATMPT1.22     
CLL                                                                        STATMPT1.23     
CLLEND-------------------------------------------------------------        STATMPT1.24     
                                                                           STATMPT1.25     

      SUBROUTINE SET_ATM_POINTERS(                                          1@DYALLOC.3414   
*CALL ARGSIZE                                                              @DYALLOC.3415   
*CALL ARGDUMA                                                              @DYALLOC.3416   
*CALL ARGSTS                                                               @DYALLOC.3417   
*CALL ARGPTRA                                                              @DYALLOC.3418   
     &                  ICODE,CMESSAGE)                                    @DYALLOC.3419   
                                                                           STATMPT1.27     
                                                                           STATMPT1.28     
      IMPLICIT NONE                                                        STATMPT1.29     
                                                                           STATMPT1.30     
CL                                                                         @DYALLOC.3420   
C*L Arguments                                                              @DYALLOC.3421   
CL                                                                         @DYALLOC.3422   
*CALL CSUBMODL                                                             GSS1F305.937    
*CALL TYPSIZE                                                              @DYALLOC.3423   
*CALL NSTYPES                                                              ABX1F404.57     
*CALL TYPDUMA                                                              @DYALLOC.3424   
*CALL TYPSTS                                                               @DYALLOC.3425   
*CALL TYPPTRA                                                              @DYALLOC.3426   
      INTEGER                                                              @DYALLOC.3427   
     &    ICODE                  ! OUT: Error return code                  @DYALLOC.3428   
C                                                                          @DYALLOC.3429   
      CHARACTER*80                                                         ARB1F404.432    
     &    CMESSAGE               ! OUT: Error return message               @DYALLOC.3431   
*CALL CHSUNITS                                                             RS030293.238    
*CALL CCONTROL                                                             STATMPT1.31     
*CALL CLOOKADD                                                             @DYALLOC.3432   
*CALL C_MDI                                                                STATMPT1.35     
*CALL CTRACERA                                                             AMC1F304.3      
*CALL CSENARIO                                                             AWI1F403.50     
                                                                           STATMPT1.36     
                                                                           APB0F402.124    
*IF DEF,MPP                                                                APB0F402.125    
*CALL PARVARS                                                              APB0F402.126    
*ENDIF                                                                     APB0F402.127    
C local variables                                                          STATMPT1.37     
                                                                           STATMPT1.38     
      INTEGER                                                              STATMPT1.39     
     &        IVAR,              ! Loop counts                             AMC1F304.4      
     &        JVAR,              ! Loop counts                             AMC1F304.5      
     &        IFLD,                                                        STATMPT1.41     
     &        LEV                                                          STATMPT1.42     
     &       ,im_ident      !  Internal Model Identifier                   GDR4F305.292    
     &       ,im_index      !  Internal Model Index in Stash arrays        GDR4F305.293    
     &       ,Sect_No       !  Stash section number                        GDR4F305.294    
     &       ,A_LEN_DATA_EXTRA ! Total length of data, including           ASK1F405.2      
!                                diagnostic variables in D1                ASK1F405.3      
                                                                           GDR4F305.295    
!     Set to atmosphere internal model                                     GDR4F305.296    
      im_ident  = atmos_im                                                 GDR4F305.297    
      im_index  = internal_model_index(im_ident)                           GDR4F305.298    
      Sect_No   = 0                                                        GDR4F305.299    
                                                                           GDR4F305.300    
                                                                           STATMPT1.43     
CL Set pointers for atmospheric primary variables from STASH :-            STATMPT1.44     
C Set pointers for secondary fields in D1                                  STATMPT1.45     
                                                                           STATMPT1.46     
      JPSTAR    = SI(  1,Sect_No,im_index)                                 GDR4F305.301    
      JU(1)     = SI(  2,Sect_No,im_index)                                 GDR4F305.304    
      JV(1)     = SI(  3,Sect_No,im_index)                                 GDR4F305.305    
      JTHETA(1) = SI(  4,Sect_No,im_index)                                 GDR4F305.306    
      JQ(1)     = SI( 10,Sect_No,im_index)                                 GDR4F305.307    
      A_LEN_DATA_EXTRA = A_LEN_DATA + (P_LEVELS+1)*P_FIELD + 1             ASK1F405.4      
      JQCL(1) = A_LEN_DATA_EXTRA                                           ASK1F405.5      
      A_LEN_DATA_EXTRA = A_LEN_DATA_EXTRA + Q_LEVELS * P_FIELD             ASK1F405.6      
      IF (L_LSPICE) THEN                                                   ASK1F405.7      
        JQCF(1) = SI( 12,Sect_No,im_index)                                 ASK1F405.8      
      ELSE                                                                 ASK1F405.9      
        JQCF(1) = A_LEN_DATA_EXTRA                                         ASK1F405.10     
        A_LEN_DATA_EXTRA = A_LEN_DATA_EXTRA + Q_LEVELS * P_FIELD           ASK1F405.11     
      ENDIF                                                                ASK1F405.12     
      IF (L_RHCPT) THEN                                                    ASK1F405.13     
        JRHC(1) = A_LEN_DATA_EXTRA                                         ASK1F405.14     
        A_LEN_DATA_EXTRA = A_LEN_DATA_EXTRA + Q_LEVELS * P_FIELD           ASK1F405.15     
      ELSE                                                                 ASK1F405.16     
        JRHC(1) = SI( 1,Sect_No,im_index)                                  ASK1F405.17     
      ENDIF                                                                ASK1F405.18     
      J_DEEP_SOIL_TEMP(1) = SI(20,Sect_No,im_index)                        GDR4F305.308    
      IF(LSINGLE_HYDROL) THEN                                              GDG3F405.4      
        JSMC          = SI( 21,Sect_No,im_index)                           GDG3F405.5      
      ELSE                                                                 GDG3F405.6      
        JSMC             = A_LEN_DATA_EXTRA                                GDG3F405.7      
        A_LEN_DATA_EXTRA = A_LEN_DATA_EXTRA + P_FIELD                      GDG3F405.8      
        JSMCL(1)       = SI( 9,Sect_No,im_index)                           AJS1F401.37     
        JSTHU(1)       = SI( 214,Sect_No,im_index)                         AJS1F401.38     
        JSTHF(1)       = SI( 215,Sect_No,im_index)                         AJS1F401.39     
      ENDIF                                                                AJS1F401.40     
      JCANOPY_WATER  = SI(22,Sect_No,im_index)                             GDR4F305.311    
      JSNODEP        = SI(23,Sect_No,im_index)                             GDR4F305.312    
      JTSTAR         = SI(24,Sect_No,im_index)                             GDR4F305.313    
      JTI            = SI(49,Sect_No,im_index)                             AJS1F400.180    
      JGS            = SI(213,Sect_No,im_index)                            AJS1F401.41     
      JTSTAR_ANOM    = SI(39,Sect_No,im_index)                             GDR4F305.314    
      JZH            = SI(25,Sect_No,im_index)                             GDR4F305.315    
      JZ0            = SI(26,Sect_No,im_index)                             GDR4F305.316    
      JU_SEA         = SI(28,Sect_No,im_index)                             GDR4F305.317    
      JV_SEA         = SI(29,Sect_No,im_index)                             GDR4F305.318    
      JLAND          = SI(30,Sect_No,im_index)                             GDR4F305.319    
      JICE_FRACTION  = SI(31,Sect_No,im_index)                             GDR4F305.320    
      JICE_THICKNESS = SI(32,Sect_No,im_index)                             GDR4F305.321    
      JNET_FLUX=SI(222,Sect_No,im_index)                                   GSM3F404.7      
! Orography fields                                                         GDR4F305.323    
                                                                           GDR4F305.324    
      JOROG          = SI(33,Sect_No,im_index)                             GDR4F305.325    
      JOROG_SD       = SI(34,Sect_No,im_index)                             GDR4F305.326    
      JOROG_GRAD_XX  = SI(35,Sect_No,im_index)                             GDR4F305.327    
      JOROG_GRAD_XY  = SI(36,Sect_No,im_index)                             GDR4F305.328    
      JOROG_GRAD_YY  = SI(37,Sect_No,im_index)                             GDR4F305.329    
      JOROG_Z0       = SI(19,Sect_No,im_index)   ! Roughness len. (old)    GDR4F305.330    
      JOROG_SIL      = SI(17,Sect_No,im_index)   ! Silhouette area         GDR4F305.331    
      JOROG_HO2      = SI(18,Sect_No,im_index)   ! Peak to trough ht.      GDR4F305.332    
                                                                           GDR4F305.333    
      JSAT_SOILW_SUCTION = SI(48,Sect_No,im_index)                         GDR4F305.334    
      JLAI          = SI(208,Sect_No,im_index) ! Gridbox mean LAI          ABX1F404.58     
      JCANHT        = SI(209,Sect_No,im_index) ! Gridbox mean can height   ABX1F404.59     
      JFRAC_TYP     = SI(216,Sect_No,im_index) ! Surface type fractions    ABX1F404.60     
      JLAI_PFT      = SI(217,Sect_No,im_index) ! Leaf Area Index of PFTs   ABX1F404.61     
      JCANHT_PFT    = SI(218,Sect_No,im_index) ! Canopy height of PFTs     ABX1F404.62     
      JDISTURB      = SI(219,Sect_No,im_index) ! Veg disturbed fraction    ABX1F404.63     
      JSOIL_ALB     = SI(220,Sect_No,im_index) ! Snow-free soil albedo     ABX1F404.64     
      JSNSOOT       = SI(221,Sect_No,im_index) ! Snow soot content         ABX1F404.65     
      JSOIL_CARB    = SI(223,Sect_No,im_index) ! Soil carbon content       ABX1F404.66     
      JNPP_PFT_ACC  = SI(224,Sect_No,im_index) ! Accumulated NPP on PFTs   ABX1F404.67     
      JG_LF_PFT_ACC = SI(225,Sect_No,im_index) ! Accumulated leaf          ABX1F404.68     
C                                              ! turnover rate on PFTs     ABX1F404.69     
      JG_PHLF_PFT_ACC=SI(226,Sect_No,im_index) ! Accumulat. phenological   ABX1F404.70     
C                                              ! leaf turnover rate PFTs   ABX1F404.71     
      JRSP_W_PFT_ACC= SI(227,Sect_No,im_index) ! Accum. wood resp PFTs     ABX1F404.72     
      JRSP_S_ACC    = SI(228,Sect_No,im_index) ! Accumulated soil resp     ABX1F404.73     
      JCAN_WATER_NIT= SI(229,Sect_No,im_index) ! Canopy water content      ABX1F404.74     
C                                              ! on non-ice tiles          ABX1F404.75     
      JCATCH_NIT    = SI(230,Sect_No,im_index) ! Canopy capacity on        ABX1F404.76     
C                                              ! non-ice tiles             ABX1F404.77     
      JRGRAIN       = SI(231,Sect_No,im_index) ! Snow grain size           ABX1F404.78     
      JTSNOW        = SI(232,Sect_No,im_index) ! Snow surface layer temp   ABX1F404.79     
      JTSTAR_TYP    = SI(233,Sect_No,im_index) ! Tiled surface temp        ABX1F404.80     
      JZ0_TYP       = SI(234,Sect_No,im_index) ! Tiled surface roughness   ABX1F404.81     
      JOZONE(1) = SI(60,Sect_No,im_index)                                  GDR4F305.335    
      IF (L_3D_CCA) THEN                                                   AJX0F404.447    
        JCCA(1) = SI(211,Sect_No,im_index)                                 AJX0F404.448    
        DO LEV=2,N_CCA_LEV                                                 AJX0F404.449    
          JCCA(LEV)=JCCA(LEV-1)+P_FIELD                                    AJX0F404.450    
        ENDDO                                                              AJX0F404.451    
      ELSE                                                                 AJX0F404.452    
        JCCA(1)   = SI(13,Sect_No,im_index)                                AJX0F404.453    
      ENDIF                                                                AJX0F404.454    
      JCCB      = SI(14,Sect_No,im_index)                                  GDR4F305.337    
      JCCT      = SI(15,Sect_No,im_index)                                  GDR4F305.338    
      JCCLWP    = SI(16,Sect_No,im_index)                                  GDR4F305.339    
                                                                           GDR4F305.340    
! Add sources and aerosol ancillaries                                      GDR4F305.341    
                                                                           GDR4F305.342    
      JMURK_SOURCE(1) = SI(57,Sect_No,im_index) ! Murk source              GDR4F305.343    
      JSO2_EM   = SI(58,Sect_No,im_index)   ! Sulphur dioxide emiss.       GDR4F305.344    
      JDMS_EM   = SI(59,Sect_No,im_index)   ! Dimethyl sulphide emiss.     GDR4F305.345    
      JMURK(1)  = SI(90,Sect_No,im_index)   ! Murk concentration           GDR4F305.346    
      JSO4(1)   = SI(88,Sect_No,im_index)   ! Sulphate aerosol             GDR4F305.347    
      JH2SO4(1) = SI(87,Sect_No,im_index)   ! Sulphuric acid aerosol       GDR4F305.348    
      JSOOT(1)  = SI(85,Sect_No,im_index)   ! Soot                         GDR4F305.349    
! Add for Sulphur Cycle                                                    AJS1F401.44     
      JSO2(1)       =SI(101,Sect_No,im_index) !Sulphur dioxide gas         AJS1F401.45     
      JDMS(1)       =SI(102,Sect_No,im_index) !Dimethyl sulphide gas       AJS1F401.46     
      JSO4_AITKEN(1)=SI(103,Sect_No,im_index) !Aitken mode SO4 aerosol     AJS1F401.47     
      JSO4_ACCU(1)  =SI(104,Sect_No,im_index) !Accumulation mode SO4 aer   AJS1F401.48     
      JSO4_DISS(1)  =SI(105,Sect_No,im_index) !Dissolved SO4 aerosol       AJS1F401.49     
      JH2O2(1)      =SI(106,Sect_No,im_index) !Hydrogen peroxide mmr       AJS1F401.50     
      JNH3(1)       =SI(107,Sect_No,im_index)  !Ammonia gas                AWO1F405.5      
      JSOOT_NEW(1)  =SI(108,Sect_No,im_index)  !Fresh soot                 AWO1F405.6      
      JSOOT_AGD(1)  =SI(109,Sect_No,im_index)  !Aged soot                  AWO1F405.7      
      JSOOT_CLD(1)  =SI(110,Sect_No,im_index)  !Soot in cloud              AWO1F405.8      
      JSO2_NATEM(1) =SI(121,Sect_No,im_index)  !Natural SO2 emissions      AJS1F401.51     
      JOH(1)        =SI(122,Sect_No,im_index)  !OH 3_D ancillary           AJS1F401.52     
      JHO2(1)       =SI(123,Sect_No,im_index)  !HO2 3_D ancillary          AJS1F401.53     
      JH2O2_LIMIT(1)=SI(124,Sect_No,im_index)  !H2O2 LIMIT 3_D ancillary   AJS1F401.54     
      JO3_CHEM(1)   =SI(125,Sect_No,im_index)  !O3 for chemistry 3_D anc   AJS1F401.55     
      JSO2_HILEM    =SI(126,Sect_No,im_index)  !High level SO2 emissions   AJS1F401.56     
      JNH3_EM       =SI(127,Sect_No,im_index)  !Ammonia surface emiss      AWO1F405.9      
      JSOOT_EM      =SI(128,Sect_No,im_index)  !Fresh soot surf emiss      AWO1F405.10     
      JSOOT_HILEM   =SI(129,Sect_No,im_index)  !Fresh soot high emiss      AWO1F405.11     
! HadCM2 sulphate loading patterns                                         AWI1F403.51     
      JHadCM2_SO4(1)=SI(160,Sect_No,im_index)                              AWI1F403.52     
      DO LEV=2, NSULPAT                                                    AWI1F403.53     
        JHadCM2_SO4(LEV)=JHadCM2_SO4(LEV-1)+P_FIELD                        AWI1F403.54     
      ENDDO                                                                AWI1F403.55     
! Add for Carbon cycle                                                     CCN1F405.220    
      J_CO2FLUX = SI(250,Sect_No,im_index)                                 CCN1F405.221    
      J_CO2_EMITS  = SI(251,Sect_No,im_index)                              CCN1F405.222    
      JCO2(1)      = SI(252,Sect_No,im_index)                              CCN1F405.223    
                                                                           GDR4F305.350    
! Add user ancillaries                                                     GDR4F305.351    
                                                                           GDR4F305.352    
      JUSER_ANC1  = SI(301,Sect_No,im_index)                               GDR4F305.353    
      JUSER_ANC2  = SI(302,Sect_No,im_index)                               GDR4F305.354    
      JUSER_ANC3  = SI(303,Sect_No,im_index)                               GDR4F305.355    
      JUSER_ANC4  = SI(304,Sect_No,im_index)                               GDR4F305.356    
      JUSER_ANC5  = SI(305,Sect_No,im_index)                               GDR4F305.357    
      JUSER_ANC6  = SI(306,Sect_No,im_index)                               GDR4F305.358    
      JUSER_ANC7  = SI(307,Sect_No,im_index)                               GDR4F305.359    
      JUSER_ANC8  = SI(308,Sect_No,im_index)                               GDR4F305.360    
      JUSER_ANC9  = SI(309,Sect_No,im_index)                               GDR4F305.361    
      JUSER_ANC10 = SI(310,Sect_No,im_index)                               GDR4F305.362    
      JUSER_ANC11 = SI(311,Sect_No,im_index)                               GDR4F305.363    
      JUSER_ANC12 = SI(312,Sect_No,im_index)                               GDR4F305.364    
      JUSER_ANC13 = SI(313,Sect_No,im_index)                               GDR4F305.365    
      JUSER_ANC14 = SI(314,Sect_No,im_index)                               GDR4F305.366    
      JUSER_ANC15 = SI(315,Sect_No,im_index)                               GDR4F305.367    
      JUSER_ANC16 = SI(316,Sect_No,im_index)                               GDR4F305.368    
      JUSER_ANC17 = SI(317,Sect_No,im_index)                               GDR4F305.369    
      JUSER_ANC18 = SI(318,Sect_No,im_index)                               GDR4F305.370    
      JUSER_ANC19 = SI(319,Sect_No,im_index)                               GDR4F305.371    
      JUSER_ANC20 = SI(320,Sect_No,im_index)                               GDR4F305.372    
      JUSER_MULT1(1)  = SI(321,Sect_No,im_index)                           GDG2F405.42     
      JUSER_MULT2(1)  = SI(322,Sect_No,im_index)                           GDG2F405.43     
      JUSER_MULT3(1)  = SI(323,Sect_No,im_index)                           GDG2F405.44     
      JUSER_MULT4(1)  = SI(324,Sect_No,im_index)                           GDG2F405.45     
      JUSER_MULT5(1)  = SI(325,Sect_No,im_index)                           GDG2F405.46     
      JUSER_MULT6(1)  = SI(326,Sect_No,im_index)                           GDG2F405.47     
      JUSER_MULT7(1)  = SI(327,Sect_No,im_index)                           GDG2F405.48     
      JUSER_MULT8(1)  = SI(328,Sect_No,im_index)                           GDG2F405.49     
      JUSER_MULT9(1)  = SI(329,Sect_No,im_index)                           GDG2F405.50     
      JUSER_MULT10(1) = SI(330,Sect_No,im_index)                           GDG2F405.51     
      JUSER_MULT11(1) = SI(331,Sect_No,im_index)                           GDG2F405.52     
      JUSER_MULT12(1) = SI(332,Sect_No,im_index)                           GDG2F405.53     
      JUSER_MULT13(1) = SI(333,Sect_No,im_index)                           GDG2F405.54     
      JUSER_MULT14(1) = SI(334,Sect_No,im_index)                           GDG2F405.55     
      JUSER_MULT15(1) = SI(335,Sect_No,im_index)                           GDG2F405.56     
      JUSER_MULT16(1) = SI(336,Sect_No,im_index)                           GDG2F405.57     
      JUSER_MULT17(1) = SI(337,Sect_No,im_index)                           GDG2F405.58     
      JUSER_MULT18(1) = SI(338,Sect_No,im_index)                           GDG2F405.59     
      JUSER_MULT19(1) = SI(339,Sect_No,im_index)                           GDG2F405.60     
      JUSER_MULT20(1) = SI(340,Sect_No,im_index)                           GDG2F405.61     
                                                                           GRB0F304.231    
      JP_EXNER(1)=A_LEN_DATA+1                                             STATMPT1.80     
                                                                           STATMPT1.81     
      DO LEV=2,P_LEVELS                                                    STATMPT1.82     
        JU(LEV)=JU(LEV-1)+U_FIELD                                          STATMPT1.83     
        JV(LEV)=JV(LEV-1)+U_FIELD                                          STATMPT1.84     
        JTHETA(LEV)=JTHETA(LEV-1)+P_FIELD                                  STATMPT1.85     
        JP_EXNER(LEV)=JP_EXNER(LEV-1)+P_FIELD                              STATMPT1.86     
        JMURK_SOURCE(LEV) = JMURK_SOURCE(LEV-1)+P_FIELD                    GRB0F304.232    
        JMURK(LEV) = JMURK(LEV-1)+P_FIELD                                  GRB0F304.233    
C For Sulphur Cycle variables                                              AJS1F401.57     
        JSO2(LEV)=JSO2(LEV-1)+P_FIELD                                      AJS1F401.58     
        JDMS(LEV)=JDMS(LEV-1)+P_FIELD                                      AJS1F401.59     
        JSO4_AITKEN(LEV)=JSO4_AITKEN(LEV-1)+P_FIELD                        AJS1F401.60     
        JSO4_ACCU(LEV)=JSO4_ACCU(LEV-1)+P_FIELD                            AJS1F401.61     
        JSO4_DISS(LEV)=JSO4_DISS(LEV-1)+P_FIELD                            AJS1F401.62     
        JH2O2(LEV)=JH2O2(LEV-1)+P_FIELD                                    AJS1F401.63     
        JSO2_NATEM(LEV)=JSO2_NATEM(LEV-1)+P_FIELD                          AJS1F401.64     
        JOH(LEV) = JOH(LEV-1)+P_FIELD                                      AJS1F401.65     
        JHO2(LEV) = JHO2(LEV-1)+P_FIELD                                    AJS1F401.66     
        JNH3(LEV)      = JNH3(LEV-1)+P_FIELD                               AWO1F405.12     
        JSOOT_NEW(LEV) = JSOOT_NEW(LEV-1)+P_FIELD                          AWO1F405.13     
        JSOOT_AGD(LEV) = JSOOT_AGD(LEV-1)+P_FIELD                          AWO1F405.14     
        JSOOT_CLD(LEV) = JSOOT_CLD(LEV-1)+P_FIELD                          AWO1F405.15     
                                                                           AWO1F405.16     
                                                                           AWO1F405.17     
        JH2O2_LIMIT(LEV)=JH2O2_LIMIT(LEV-1)+P_FIELD                        AJS1F401.67     
        JO3_CHEM(LEV)=JO3_CHEM(LEV-1)+P_FIELD                              AJS1F401.68     
C For Carbon Cycle variables                                               ACN2F405.2      
        JCO2(LEV)=JCO2(LEV-1)+P_FIELD                                      ACN2F405.3      
      END DO                                                               RB221193.102    
C Set for multi-level aerosols                                             RB221193.103    
      DO LEV=2,TR_LEVELS                                                   RB221193.104    
        JSO4(LEV)=JSO4(LEV-1)+P_FIELD                                      RB221193.105    
        JH2SO4(LEV)=JH2SO4(LEV-1)+P_FIELD                                  RB221193.106    
        JSOOT(LEV)=JSOOT(LEV-1)+P_FIELD                                    RB221193.107    
      END DO                                                               GRB0F304.234    
C Set for multi-level user ancillaries                                     GRB0F304.235    
      DO LEV=2,P_LEVELS                                                    GRB0F304.236    
        JUSER_MULT1(LEV)  = JUSER_MULT1(LEV-1)+P_FIELD                     GDG2F405.62     
        JUSER_MULT2(LEV)  = JUSER_MULT2(LEV-1)+P_FIELD                     GDG2F405.63     
        JUSER_MULT3(LEV)  = JUSER_MULT3(LEV-1)+P_FIELD                     GDG2F405.64     
        JUSER_MULT4(LEV)  = JUSER_MULT4(LEV-1)+P_FIELD                     GDG2F405.65     
        JUSER_MULT5(LEV)  = JUSER_MULT5(LEV-1)+P_FIELD                     GDG2F405.66     
        JUSER_MULT6(LEV)  = JUSER_MULT6(LEV-1)+P_FIELD                     GDG2F405.67     
        JUSER_MULT7(LEV)  = JUSER_MULT7(LEV-1)+P_FIELD                     GDG2F405.68     
        JUSER_MULT8(LEV)  = JUSER_MULT8(LEV-1)+P_FIELD                     GDG2F405.69     
        JUSER_MULT9(LEV)  = JUSER_MULT9(LEV-1)+P_FIELD                     GDG2F405.70     
        JUSER_MULT10(LEV) = JUSER_MULT10(LEV-1)+P_FIELD                    GDG2F405.71     
        JUSER_MULT11(LEV) = JUSER_MULT11(LEV-1)+P_FIELD                    GDG2F405.72     
        JUSER_MULT12(LEV) = JUSER_MULT12(LEV-1)+P_FIELD                    GDG2F405.73     
        JUSER_MULT13(LEV) = JUSER_MULT13(LEV-1)+P_FIELD                    GDG2F405.74     
        JUSER_MULT14(LEV) = JUSER_MULT14(LEV-1)+P_FIELD                    GDG2F405.75     
        JUSER_MULT15(LEV) = JUSER_MULT15(LEV-1)+P_FIELD                    GDG2F405.76     
        JUSER_MULT16(LEV) = JUSER_MULT16(LEV-1)+P_FIELD                    GDG2F405.77     
        JUSER_MULT17(LEV) = JUSER_MULT17(LEV-1)+P_FIELD                    GDG2F405.78     
        JUSER_MULT18(LEV) = JUSER_MULT18(LEV-1)+P_FIELD                    GDG2F405.79     
        JUSER_MULT19(LEV) = JUSER_MULT19(LEV-1)+P_FIELD                    GDG2F405.80     
        JUSER_MULT20(LEV) = JUSER_MULT20(LEV-1)+P_FIELD                    GDG2F405.81     
      END DO                                                               STATMPT1.87     
                                                                           STATMPT1.88     
      JP_EXNER(P_LEVELS+1)=JP_EXNER(P_LEVELS)+P_FIELD                      STATMPT1.89     
      DO LEV=2,ST_LEVELS                                                   AJS1F401.69     
        J_DEEP_SOIL_TEMP(LEV)=J_DEEP_SOIL_TEMP(LEV-1)+LAND_FIELD           STATMPT1.91     
      END DO                                                               STATMPT1.92     
      IF (.NOT.LSINGLE_HYDROL) THEN                                        AJS1F401.70     
        DO LEV=2,SM_LEVELS                                                 AJS1F401.71     
        JSMCL(LEV)=JSMCL(LEV-1)+LAND_FIELD                                 STATMPT1.95     
        ENDDO                                                              AJS1F401.72     
      ENDIF                                                                AJS1F401.73     
                                                                           STATMPT1.97     
      IF (LMOSES) THEN                                                     AJS1F401.74     
        DO LEV=2,SM_LEVELS                                                 AJS1F401.75     
        JSTHU(LEV)=JSTHU(LEV-1)+LAND_FIELD                                 AJS1F401.77     
        ENDDO                                                              AJS1F401.82     
      ENDIF                                                                AJS1F401.83     
                                                                           AJS1F401.84     
      IF (LMOSES) THEN                                                     AJS1F401.85     
      DO LEV=2,SM_LEVELS                                                   AJS1F401.86     
        JSTHF(LEV)=JSTHF(LEV-1)+LAND_FIELD                                 AJS1F401.88     
      END DO                                                               AJS1F401.93     
      ENDIF                                                                AJS1F401.94     
                                                                           AJS1F401.95     
!     Soil fields                                                          GDR6F405.65     
      JVOL_SMC_WILT  = SI(40, Sect_No, im_index)                           GDR6F405.66     
      JVOL_SMC_CRIT  = SI(41, Sect_No, im_index)                           GDR6F405.67     
      JVOL_SMC_FCAP  = SI(42, Sect_No, im_index)                           GDR6F405.68     
      JVOL_SMC_SAT   = SI(43, Sect_No, im_index)                           GDR6F405.69     
      JSAT_SOIL_COND = SI(44, Sect_No, im_index)                           GDR6F405.70     
      JEAGLE_EXP     = SI(45, Sect_No, im_index)                           GDR6F405.71     
      JTHERM_CAP     = SI(46, Sect_No, im_index)                           GDR6F405.72     
      JTHERM_COND    = SI(47, Sect_No, im_index)                           GDR6F405.73     
      JCLAPP_HORN    = SI(207, Sect_No, im_index)                          GDR6F405.74     
                                                                           STATMPT1.101    
!     Vegetation Fields                                                    GDR6F405.75     
      JVEG_FRAC    = SI(50, Sect_No, im_index)                             GDR6F405.76     
      JROOT_DEPTH  = SI(51, Sect_No, im_index)                             GDR6F405.77     
      JSFA         = SI(52, Sect_No, im_index)                             GDR6F405.78     
      JMDSA        = SI(53, Sect_No, im_index)                             GDR6F405.79     
      JSURF_RESIST = SI(54, Sect_No, im_index)                             GDR6F405.80     
      JSURF_CAP    = SI(55, Sect_No, im_index)                             GDR6F405.81     
      JINFILT      = SI(56, Sect_No, im_index)                             GDR6F405.82     
                                                                           STATMPT1.105    
      DO LEV=2,Q_LEVELS                                                    STATMPT1.108    
        JQ(LEV)=JQ(LEV-1)+P_FIELD                                          STATMPT1.109    
        JQCL(LEV)=JQCL(LEV-1)+P_FIELD                                      STATMPT1.110    
        JQCF(LEV)=JQCF(LEV-1)+P_FIELD                                      STATMPT1.111    
        JRHC(LEV)=JRHC(LEV-1)+P_FIELD                                      ASK1F405.19     
      END DO                                                               STATMPT1.112    
                                                                           STATMPT1.113    
      JVAR=0     ! JVAR+1 is the current tracer to be found                AMC1F304.6      
      IF (TR_VARS.GT.0) THEN                                               AMC1F304.7      
        DO IVAR=A_TRACER_FIRST,A_TRACER_LAST                               AMC1F304.8      
          IF(SI(IVAR,Sect_No,im_index).NE.1) THEN ! tracer in use          GDR4F305.383    
            JVAR=JVAR+1                                                    AMC1F304.10     
            JTRACER(1,JVAR) = SI(IVAR,Sect_No,im_index)                    GDR4F305.384    
            DO LEV=2,TR_LEVELS                                             AMC1F304.12     
              JTRACER(LEV,JVAR)=JTRACER(LEV-1,JVAR)+P_FIELD                AMC1F304.13     
            END DO                                                         AMC1F304.14     
            A_TR_INDEX(IVAR-A_TRACER_FIRST+1)=JVAR                         AMC1F304.15     
          END IF                                                           AMC1F304.16     
        END DO                                                             STATMPT1.120    
      ELSE                                                                 DR240293.1111   
        JTRACER(1,1)=1   ! Ensure a sensible address even if no tracers    DR240293.1112   
      ENDIF                                                                STATMPT1.121    
      IF(JVAR.NE.TR_VARS) THEN                                             AMC1F304.17     
        WRITE(6,*) 'STATMPT: TR_VARS and SI are inconsistent'              AMC1F304.18     
        WRITE(6,*) 'TR_VARS=',TR_VARS,' .     But, SI implies :',JVAR      AMC1F304.19     
        CMESSAGE=  'STATMPT: TR_VARS and SI  inconsistent, see output'     AMC1F304.20     
        ICODE=100                                                          AMC1F304.21     
        GOTO 9999 ! error return                                           AMC1F304.22     
      END IF                                                               AMC1F304.23     
                                                                           STATMPT1.122    
      JRIM          = SI(97,Sect_No,im_index)                              GDR4F305.385    
      JRIM_TENDENCY = SI(96,Sect_No,im_index)                              GDR4F305.386    
                                                                           STATMPT1.125    
                                                                           STATMPT1.140    
C CHECK FOR WHETHER OZONE IS HELD AS ZONAL MEAN OR THREE-DIM FIELD         STATMPT1.141    
                                                                           STATMPT1.142    
      LEXPAND_OZONE=.FALSE.                                                STATMPT1.143    
                                                                           STATMPT1.144    
      IF (A_LOOKUP(LBNPT,PPINDEX(60,im_index)).EQ.1) THEN                  GDR4F305.387    
        LEXPAND_OZONE = .TRUE.                                             GDR4F305.388    
      ENDIF                                                                GDR4F305.389    
      DO LEV=2,OZONE_LEVELS                                                STATMPT1.146    
        IF(LEXPAND_OZONE) THEN                                             STATMPT1.147    
          JOZONE(LEV)=JOZONE(LEV-1)+P_ROWS                                 STATMPT1.148    
        ELSE                                                               STATMPT1.149    
          JOZONE(LEV)=JOZONE(LEV-1)+P_FIELD                                STATMPT1.150    
        END IF                                                             STATMPT1.151    
      END DO                                                               STATMPT1.152    
                                                                           STATMPT1.153    
C Set pointers to level dependent constants for atmosphere                 STATMPT1.154    
                                                                           STATMPT1.155    
      JAK=1                                                                STATMPT1.156    
      JBK=JAK+P_LEVELS                                                     STATMPT1.157    
      JDELTA_AK=JBK+P_LEVELS                                               STATMPT1.158    
      JDELTA_BK=JDELTA_AK+P_LEVELS                                         STATMPT1.159    
      JTHETA_REF=JDELTA_BK+P_LEVELS                                        STATMPT1.160    
                                                                           ADR1F305.214    
!     Pointers JK1,JK2,JEXPK1,JEXPK2,JKDA,JKDF,JRHCRIT removed             ADR1F305.215    
                                                                           ADR1F305.216    
      JSOIL_THICKNESS = JTHETA_REF+P_LEVELS                                ADR1F305.217    
                                                                           STATMPT1.169    
C Set pointers to row dependent constants for atmosphere                   STATMPT1.170    
                                                                           STATMPT1.171    
      JFILTER_WAVE_NUMBER_P_ROWS=1                                         STATMPT1.172    
*IF -DEF,MPP                                                               APB0F402.128    
      JFILTER_WAVE_NUMBER_U_ROWS=JFILTER_WAVE_NUMBER_P_ROWS+P_ROWS         STATMPT1.173    
      JNSWEEP=JFILTER_WAVE_NUMBER_U_ROWS+P_ROWS                            STATMPT1.174    
*ELSE                                                                      APB0F402.129    
      JFILTER_WAVE_NUMBER_U_ROWS=JFILTER_WAVE_NUMBER_P_ROWS+glsize(2)      APB0F402.130    
      JNSWEEP=JFILTER_WAVE_NUMBER_U_ROWS+glsize(2)                         APB0F402.131    
*ENDIF                                                                     APB0F402.132    
                                                                           GDR5F400.5      
*IF DEF,SLAB                                                               GDR5F400.6      
!     Set up pointers for slab model fields                                GDR5F400.7      
      im_ident = slab_im                                                   GDR5F400.8      
      im_index = internal_model_index(im_ident)                            GDR5F400.9      
                                                                           GDR5F400.10     
      JTCLIM = SI(178,Sect_No,im_index)      !  Ref SST                    GDR5F400.11     
      JHCLIM = SI(179,Sect_No,im_index)      !  Clim SeaIce Depth          GDR5F400.12     
      JTSLAB = SI(210,Sect_No,im_index)      !  Slab temperature           GDR5F400.13     
      JUICE  = SI(211,Sect_No,im_index)      !  u ice velocity             GDR5F400.14     
      JVICE  = SI(212,Sect_No,im_index)      !  v ice velocity             GDR5F400.15     
*ENDIF                                                                     GDR5F400.16     
      WRITE(6,1000)                                                        STATMPT1.176    
 1000 FORMAT('0--------------- PRIMARY VARIABLES ---------------')         STATMPT1.177    
      WRITE(6,1010) JPSTAR                                                 STATMPT1.178    
 1010 FORMAT(' PSTAR  AT DUMP STORE INDEX',I8)                             STATMPT1.179    
      WRITE(6,1012) JU(1)                                                  STATMPT1.180    
 1012 FORMAT(' U      AT DUMP STORE INDEX',I8)                             STATMPT1.181    
      WRITE(6,1014) JV(1)                                                  STATMPT1.182    
 1014 FORMAT(' V      AT DUMP STORE INDEX',I8)                             STATMPT1.183    
      WRITE(6,1016) JTHETA(1)                                              STATMPT1.184    
 1016 FORMAT(' THETA  AT DUMP STORE INDEX',I8)                             STATMPT1.185    
      WRITE(6,1018) JQ(1)                                                  STATMPT1.186    
 1018 FORMAT(' HMR    AT DUMP STORE INDEX',I8)                             STATMPT1.187    
      IF (L_LSPICE) THEN                                                   ARB1F404.437    
      WRITE(6,1020) JQCF(1)                                                ARB1F404.438    
 1020 FORMAT(' QCF    AT DUMP STORE INDEX',I8)                             ARB1F404.439    
      END IF                                                               ARB1F404.440    
                                                                           STATMPT1.188    
 9999 CONTINUE ! ERROR GOTO point.                                         AMC1F304.24     
      RETURN                                                               STATMPT1.190    
      END                                                                  STATMPT1.191    
                                                                           STATMPT1.192    
*ENDIF                                                                     STATMPT1.193