include file: STEXTEND 22
! Description:                                                             STEXTEND.2      
!   Contains variables and arrays involved in STASH                        STEXTEND.3      
!   processing in the UM.                                                  STEXTEND.4      
!   NOTE: comdecks CSUBMODEL and VERSION must be                           STEXTEND.5      
!        *CALLed before this comdeck.                                      STEXTEND.6      
!                                                                          STEXTEND.7      
! Current code owner: S.J.Swarbrick                                        STEXTEND.8      
!                                                                          STEXTEND.9      
! History:                                                                 STEXTEND.10     
! Version   Date      Comment                                              STEXTEND.11     
! -------   ----      -------                                              STEXTEND.12     
! 3.5       Mar. 95   Original code.  S.J.Swarbrick                        STEXTEND.13     
! 4.0       Oct. 95                   S.J.Swarbrick                        GSS1F400.1424   
!                                                                          STEXTEND.14     
! Declarations:                                                            STEXTEND.15     
! Imported global variables:                                               STEXTEND.16     
!    None, but see note above.                                             STEXTEND.17     
                                                                           STEXTEND.18     
! Global arrays:                                                           STEXTEND.19     
!   Output levels lists                                                    GSS1F400.1425   
!     List type (real/int)                                                 GSS1F400.1426   
      CHARACTER*1 LLISTTY  (NPROFDP*6            )                         STEXTEND.21     
!     Real levels                                                          GSS1F400.1427   
      REAL        RLEVLST_S(NLEVP_S  ,  NLEVLSTSP)                         STEXTEND.22     
!     Integer (i.e. model) levels                                          GSS1F400.1428   
      INTEGER      LEVLST_S(NLEVP_S  ,  NLEVLSTSP)                         STEXTEND.23     
!   STASH lengths and addresses                                            GSS1F400.1429   
      INTEGER IN_S    (2,N_INTERNAL_MODEL_MAX,0:NSECTP,NITEMP)             STEXTEND.25     
!   STASH list index                                                       GSS1F400.1430   
      INTEGER INDX_S  (2,N_INTERNAL_MODEL_MAX,0:NSECTP,NITEMP)             STEXTEND.26     
                                                                           STEXTEND.27     
!   STASH list array (extra row only for internal indexing in              STEXTEND.28     
!                   processing routines)                                   STEXTEND.29     
      INTEGER LIST_S  (NELEMP+1             , NRECDP   )                   STEXTEND.30     
!   Output times tables                                                    GSS1F400.1431   
      INTEGER ITIM_S  (NTIMEP              ,2*NPROFTP+2)                   STEXTEND.32     
!   Start addresses for pp headers                                         GSS1F400.1432   
      INTEGER PPIND_S (N_INTERNAL_MODEL_MAX,  NITEMP   )                   STEXTEND.34     
!   Time series block information                                          GSS1F400.1433   
!     No. of records in a block                                            GSS1F400.1434   
      INTEGER NRECS_TS(NPROFDP                         )                   STEXTEND.36     
!     Start position of block                                              GSS1F400.1435   
      INTEGER NPOS_TS (NPROFDP                         )                   STEXTEND.37     
!   lengths of pseudo-levels lists                                         GSS1F400.1436   
      INTEGER LENPLST (NPSLISTP                        )                   STEXTEND.38     
                                                                           STEXTEND.39     
      EQUIVALENCE(LEVLST_S,RLEVLST_S)                                      STEXTEND.40     
                                                                           STEXTEND.41     
C     Set up preliminary array for addressing D1:                          GSM2F403.36     
C     Number of items of info needed for each object and likely maximum    GSM2F403.37     
C     number of objects in D1 - this can be increased if necessary         GSM2F403.38     
      INTEGER                                                              GSM2F403.39     
     &  D1_ITEMS_PREL                                                      GSM2F403.40     
     &  ,MAX_D1_LEN                                                        GSM2F403.41     
      PARAMETER(                                                           GSM2F403.42     
     &  D1_ITEMS_PREL=4                                                    GSM2F403.43     
     &  ,MAX_D1_LEN=500                                                    GSM2F403.44     
     &  )                                                                  GSM2F403.45     
                                                                           GSM2F403.46     
C     Names of items.                                                      GSM2F403.47     
      INTEGER                                                              GSM2F403.48     
     &  d1_type          ! Prognostic, Diagnostic or other                 GSM2F403.49     
     &  ,d1_im           ! Internal model id                               GSM2F403.50     
     &  ,d1_levs         ! No of levels                                    GSM2F403.51     
     &  ,d1_extra_info   ! Stash list item number for diags or             GSM2F403.52     
     &                   ! PPXREF item number for progs and other          GSM2F403.53     
                                                                           GSM2F403.54     
      PARAMETER(                                                           GSM2F403.55     
     &  d1_type=1                                                          GSM2F403.56     
     &  ,d1_im=2                                                           GSM2F403.57     
     &  ,d1_extra_info=3                                                   GSM2F403.58     
     &  ,d1_levs=4                                                         GSM2F403.59     
     &  )                                                                  GSM2F403.60     
                                                                           GSM2F403.61     
C     Types of items for d1_type                                           GSM2F403.62     
      INTEGER                                                              GSM2F403.63     
     &  prog                                                               GSM2F403.64     
     &  ,diag                                                              GSM2F403.65     
     &  ,seco                                                              GSM2F403.66     
     &  ,extra_d1                                                          GSM2F403.67     
                                                                           GSM2F403.68     
      PARAMETER(                                                           GSM2F403.69     
     &  prog=0                                                             GSM2F403.70     
     &  ,diag=1                                                            GSM2F403.71     
     &  ,seco=2                                                            GSM2F403.72     
     &  ,extra_d1=3                                                        GSM2F403.73     
     &  )                                                                  GSM2F403.74     
                                                                           GSM2F403.75     
C     Stores number of objects in D1                                       GSM2F403.76     
      INTEGER      N_OBJ_D1(N_SUBMODEL_PARTITION_MAX)                      GSM2F403.77     
                                                                           GSM2F403.78     
C     Preliminary array for addressing D1. Holds the minimum amount of     GSM2F403.79     
C     info required for order of objects of D1; this amount of info is     GSM2F403.80     
C     enough to obtain any other required info from stashlist or ppxref    GSM2F403.81     
                                                                           GSM2F403.82     
      INTEGER                                                              GSM2F403.83     
     &  D1_PADDR(D1_ITEMS_PREL,MAX_D1_LEN,N_SUBMODEL_PARTITION_MAX)        GSM2F403.84     
                                                                           GSM2F403.85     
! Common block:                                                            STEXTEND.42     
                                                                           STEXTEND.43     
       COMMON/CHARLIST/  LLISTTY                                           STEXTEND.44     
       COMMON/STEXTEND/                                                    STEXTEND.45     
     & LIST_S  ,INDX_S  ,ITIM_S ,IN_S   ,PPIND_S ,                         STEXTEND.46     
     & LEVLST_S,NRECS_TS,NPOS_TS,LENPLST                                   STEXTEND.47     
       COMMON/D1_PRELIM/ D1_PADDR, N_OBJ_D1                                GSM2F403.86     
                                                                           STEXTEND.48     
!- End of Comdeck Declaration -----------------------------------------    STEXTEND.49