include file: CSUBMODL 244
!                                                                          GRR2F305.1      
! Description:                                                             GRR2F305.2      
!    Describes the number and identity of submodels available              GRR2F305.3      
!    within the system, and those included in the current                  GRR2F305.4      
!    experiment.  Parameters set by the User Interface give                GRR2F305.5      
!    the relevant array sizes; other submodel configuration                GRR2F305.6      
!    information is either read from NAMELIST input, or                    GRR2F305.7      
!    derived from dump header information.                                 GRR2F305.8      
!                                                                          GRR2F305.9      
! Current Code Owner: R. Rawlins                                           GRR2F305.10     
!                                                                          GRR2F305.11     
! History:                                                                 GRR2F305.12     
! Version  Date     Comment                                                GRR2F305.13     
! -------  ----     -------                                                GRR2F305.14     
! pre 3.0           Original code. T. Johns                                GRR2F305.15     
! 3.5    07/04/95   Expansion for stage 1 of submodel project, allowing    GRR2F305.16     
!                   flexible specification of internal models within       GRR2F305.17     
!                   submodel partitions. R. Rawlins                        GRR2F305.18     
!                                                                          GRR2F305.19     
! Declarations:                                                            GRR2F305.20     
!                                                                          GRR2F305.21     
!  1. Internal model and submodel dump partition identifiers - fixed       GRR2F305.22     
!     for all experiments.                                                 GRR2F305.23     
*CALL CSMID                                                                GRR2F305.24     
                                                                           GRR2F305.25     
!                                                                          GRR2F305.26     
!  2. Maximum internal model/submodel array sizes for this version.        GRR2F305.27     
!                                                                          GRR2F305.28     
*CALL CSUBMMAX                                                             GRR2F305.29     
!                                                                          GRR2F305.30     
!  3. Lists of internal models and their submodel dump partitions -        GRR2F305.31     
!     initialised by the user interface - experiment specific.             GRR2F305.32     
      INTEGER                                                              GRR2F305.33     
     * N_INTERNAL_MODEL          ! No. of internal models                  GRR2F305.34     
     *,N_SUBMODEL_PARTITION      ! No. of submodel partitions              GRR2F305.35     
     *,INTERNAL_MODEL_LIST(N_INTERNAL_MODEL_MAX) ! Internal models         GRR2F305.36     
     *,SUBMODEL_FOR_IM    (N_INTERNAL_MODEL_MAX) ! Submodel identifier     GRR2F305.37     
     *                           ! for each internal model in list         GSM2F403.29     
     &,SUBMODEL_FOR_SM(N_INTERNAL_MODEL_MAX) ! Submodel number for         GSM2F403.30     
!                                  each submodel id                        GSM2F403.31     
!                                                                          GRR2F305.39     
! Namelist for information in 3.                                           GRR2F305.40     
      NAMELIST/NSUBMODL/N_INTERNAL_MODEL,N_SUBMODEL_PARTITION              GRR2F305.41     
     *,INTERNAL_MODEL_LIST,SUBMODEL_FOR_IM                                 GRR2F305.42     
!                                                                          GRR2F305.43     
!  4. Lists calculated in model from user interface supplied arrays -      GRR2F305.44     
!     - experiment specific.                                               GRR2F305.45     
      INTEGER                                                              GRR2F305.46     
     * N_INTERNAL_FOR_SM(SUBMODEL_ID_MAX)  ! No of internal models in      GRR2F305.47     
!              each submodel partition indexed by sm identifier            GRR2F305.48     
     *,SUBMODEL_PARTITION_LIST(N_SUBMODEL_PARTITION_MAX)    ! List of      GRR2F305.49     
!              submodel partition identifiers                              GRR2F305.50     
     *,SUBMODEL_PARTITION_INDEX(INTERNAL_ID_MAX)  ! Submodel partition     GRR2F305.51     
!              identifier indexed by internal model identifier             GRR2F305.52     
     *,INTERNAL_MODEL_INDEX(INTERNAL_ID_MAX)      ! Sequence number of     GRR2F305.53     
!              internal model indexed by internal model identifier:        GRR2F305.54     
!              required to map from id to STASH internal model sequence    GRR2F305.55     
      LOGICAL                                                              GRR2F305.56     
     * LAST_IM_IN_SM(INTERNAL_ID_MAX)      ! Last internal model within    GRR2F305.57     
!                                a submodel partition if .TRUE.,           GRR2F305.58     
!                                indexed by internal model id.             GRR2F305.59     
! Common block for information in 3. and 4.                                GRR2F305.60     
      COMMON/SUBMODL/N_INTERNAL_MODEL,N_SUBMODEL_PARTITION,                GRR2F305.61     
     *     INTERNAL_MODEL_LIST,SUBMODEL_FOR_IM,SUBMODEL_FOR_SM,            GSM2F403.32     
     *     N_INTERNAL_FOR_SM,SUBMODEL_PARTITION_LIST,                      GRR2F305.63     
     *     SUBMODEL_PARTITION_INDEX,                                       GRR2F305.64     
     *     INTERNAL_MODEL_INDEX,                                           GRR2F305.65     
     *     LAST_IM_IN_SM                                                   GRR2F305.66     
                                                                           GRR2F305.67     
!                                                                          GRR2F305.68     
!  5. Time information specifying coupling frequencies between internal    GRR2F305.69     
!     models and submodels, and multipliers, indexed by sequence of        GRR2F305.70     
!     internal models and submodels (ie left to right along node tree).    GRR2F305.71     
!     {Not required at this release}.                                      GRR2F305.72     
!                                                                          GRR2F305.73     
! Namelists for information in 5. {Not required at this release}           GRR2F305.74     
!                                                                          GRR2F305.75     
!                                                                          GRR2F305.76     
!  6. Lists of coupling nodes defining coupling frequencies between        GRR2F305.77     
!     internal models and between submodel partitions. (Not defined        GRR2F305.78     
!     yet at this release).                                                GRR2F305.79     
!CALL CNODE                                                                GRR2F305.80     
!                                                                          GRR2F305.81     
!  7. Variables dealing with general coupling switches at the control      GRR2F305.82     
!     level. {These will require revision at the next release when         GRR2F305.83     
!     coupling between internal models is dealt with more generally.       GRR2F305.84     
!     Logicals below are set in routine SETGRCTL.}                         GRR2F305.85     
                                                                           GRR2F305.86     
      LOGICAL                                                              GRR2F305.87     
     * new_im   ! new internal model next group of timesteps if .true.     GRR2F305.88     
     *,new_sm   ! new submodel dump  next group of timesteps if .true.     GRR2F305.89     
                                                                           GRR2F305.90     
      COMMON/CSUBMGRP/new_im,new_sm                                        GRR2F305.91     
                                                                           GRR2F305.92     
      INTEGER SUBMODEL_IDENT                                               GSS1F400.1115   
      COMMON/SUBMODID/SUBMODEL_IDENT                                       GSS1F400.1116   
C                                                                          GRR2F305.94     
C                                                                          CSUBMODL.47