*IF DEF,CONTROL,OR,DEF,RECON,OR,DEF,CAMDUMP                                UIE3F404.56     
C ******************************COPYRIGHT******************************    GTS2F400.12803  
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.12804  
C                                                                          GTS2F400.12805  
C Use, duplication or disclosure of this code is subject to the            GTS2F400.12806  
C restrictions as set forth in the contract.                               GTS2F400.12807  
C                                                                          GTS2F400.12808  
C                Meteorological Office                                     GTS2F400.12809  
C                London Road                                               GTS2F400.12810  
C                BRACKNELL                                                 GTS2F400.12811  
C                Berkshire UK                                              GTS2F400.12812  
C                RG12 2SZ                                                  GTS2F400.12813  
C                                                                          GTS2F400.12814  
C If no contract has been raised with this copy of the code, the use,      GTS2F400.12815  
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.12816  
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.12817  
C Modelling at the above address.                                          GTS2F400.12818  
C                                                                          GTS2F400.12819  
!+Defines submodel and section/version configuration                       SETMODL1.3      
!                                                                          SETMODL1.4      
! Subroutine Interface:                                                    SETMODL1.5      

      SUBROUTINE SETMODL(ErrorStatus,CMESSAGE)                              1,5GSS3F401.1018   
      IMPLICIT NONE                                                        SETMODL1.8      
! Description:                                                             GSS3F401.1019   
!                                                                          GSS3F401.1020   
! Method:                                                                  GSS3F401.1021   
!                                                                          GSS3F401.1022   
! Current code owner:  S.J.Swarbrick                                       GSS3F401.1023   
!                                                                          GSS3F401.1024   
! History:                                                                 GSS3F401.1025   
! Version   Date       Comment                                             GSS3F401.1026   
! =======   ====       =======                                             GSS3F401.1027   
!   3.5     Mar. 95    Original code.  S.J.Swarbrick                       GSS3F401.1028   
!   4.1     Apr. 96                    S.J.Swarbrick                       GSS3F401.1029   
!   4.2     29/11/96   MPP code : Use global variables to calculate        GPB1F402.594    
!                      grid spacing.  P.Burton                             GPB1F402.595    
!   4.5     Sept. 97   Remove NUMSIDE_IMTO, NUMSIDE_JMTO. M.J. Bell        GSI1F405.86     
!   4.5     14/07/98   Remove call to INTRFACE (A Van der Wal)             GAV0F405.6      
!                                                                          GSS3F401.1030   
!  Code description:                                                       GSS3F401.1031   
!    FORTRAN 77 + common Fortran 90 extensions.                            GSS3F401.1032   
!    Written to UM programming standards version 7.                        GSS3F401.1033   
!                                                                          GSS3F401.1034   
!  System component covered:                                               GSS3F401.1035   
!  System task:               Sub-Models Project                           GSS3F401.1036   
!                                                                          GSS3F401.1037   
! Global variables:                                                        SETMODL1.10     
*CALL LENFIL                                                               SETMODL1.12     
*CALL CSUBMODL                                                             SETMODL1.13     
*CALL VERSION                                                              SETMODL1.14     
*CALL TYPSIZE                                                              GSS3F401.1038   
*CALL MODEL                                                                SETMODL1.16     
*CALL CNTLGEN                                                              GSS3F401.1039   
*CALL CNTLATM                                                              GSS3F401.1040   
*CALL CNTLOCN                                                              GSS3F401.1041   
*CALL CNTLSLB                                                              GSS3F401.1042   
*IF DEF,MPP                                                                GPB1F402.596    
*CALL PARVARS                                                              GPB1F402.597    
*CALL DECOMPTP                                                             GPB1F402.598    
*CALL DECOMPDB                                                             GPB1F402.599    
*ENDIF                                                                     GPB1F402.600    
                                                                           GSS3F401.1043   
! Array arguments with intent(out):                                        GSS3F401.1044   
      CHARACTER*(80) CMESSAGE    ! Error return message                    GSS3F401.1045   
                                                                           GSS3F401.1046   
! Error status:                                                            GSS3F401.1047   
      INTEGER        ErrorStatus ! +ve = fatal error                       GSS3F401.1048   
                                                                           GSS3F401.1049   
                                                                           SETMODL1.19     
! Local scalars                                                            SETMODL1.20     
      REAL    ASteps !Atmos timesteps per hour                             GSS3F401.1050   
      INTEGER I,J                                                          GSS3F401.1051   
      INTEGER Im,Is                                                        GSS3F401.1052   
      INTEGER Obs_type(MAX_AOBS)                                           GSS3F401.1053   
                                                                           SETMODL1.25     
! Local parameters                                                         SETMODL1.26     
      INTEGER NOASFLDS                                                     SETMODL1.28     
      PARAMETER(NOASFLDS=4)                                                GSS1F403.1      
                                                                           SETMODL1.30     
! Function and subroutine calls:                                           SETMODL1.31     
      INTEGER  CTOITST                                                     GSS3F401.1054   
!- End of Header ---------------------------------------------------       SETMODL1.36     
                                                                           SETMODL1.37     
!  Define submodel configuration                                           SETMODL1.38     
                                                                           SETMODL1.39     
      H_ATMOS = 'N'                                                        SETMODL1.40     
      H_OCEAN = 'N'                                                        SETMODL1.41     
      H_SLAB  = 'N'                                                        SETMODL1.42     
      H_WAVE  = 'N'                                                        GSS3F401.1055   
                                                                           SETMODL1.43     
      DO I = 1,N_INTERNAL_MODEL_MAX                                        SETMODL1.44     
        IF (INTERNAL_MODEL_LIST(I).EQ.ATMOS_IM) THEN                       SETMODL1.45     
          H_ATMOS ='Y'                                                     SETMODL1.46     
        END IF                                                             SETMODL1.47     
        IF (INTERNAL_MODEL_LIST(I).EQ.OCEAN_IM) THEN                       SETMODL1.48     
          H_OCEAN ='Y'                                                     SETMODL1.49     
        END IF                                                             SETMODL1.50     
        IF (INTERNAL_MODEL_LIST(I).EQ. SLAB_IM) THEN                       SETMODL1.51     
          H_SLAB  ='Y'                                                     SETMODL1.52     
        END IF                                                             SETMODL1.53     
        IF (INTERNAL_MODEL_LIST(I).EQ. WAVE_IM) THEN                       GSS3F401.1056   
          H_WAVE  ='Y'                                                     GSS3F401.1057   
        END IF                                                             GSS3F401.1058   
      END DO                                                               SETMODL1.54     
                                                                           SETMODL1.55     
        DO I = 1,N_INTERNAL_MODEL_MAX                                      SETMODL1.56     
          H_VERS(I,0)= 1                                                   SETMODL1.57     
        END DO                                                             SETMODL1.58     
                                                                           SETMODL1.59     
      IF (H_ATMOS .EQ. 'Y') THEN                                           GSS3F401.1059   
        Im = ATMOS_IM                                                      GSS3F401.1060   
        DO Is = 1,NSECTP                                                   GSS3F401.1061   
          H_VERS(Im,Is)= CTOITST(ATMOS_SR(Is)(1:1))                        SETMODL1.67     
        END DO                                                             SETMODL1.68     
      END IF                                                               GSS3F401.1062   
      IF (H_OCEAN .EQ. 'Y') THEN                                           GSS3F401.1063   
        Im = OCEAN_IM                                                      GSS3F401.1064   
        DO Is = 1,NSECTP                                                   GSS3F401.1065   
          H_VERS(Im,Is)= CTOITST(OCEAN_SR(Is)(1:1))                        GSS3F401.1066   
        END DO                                                             GSS3F401.1067   
      END IF                                                               GSS3F401.1068   
      IF (H_SLAB  .EQ. 'Y') THEN                                           GSS3F401.1069   
        Im = SLAB_IM                                                       GSS3F401.1070   
        DO Is = 1,NSECTP                                                   GSS3F401.1071   
          H_VERS(Im,Is)= CTOITST( SLAB_SR(Is)(1:1))                        GSS3F401.1072   
        END DO                                                             GSS3F401.1073   
      END IF                                                               GSS3F401.1074   
      IF (H_WAVE  .EQ. 'Y') THEN                                           GSS3F401.1075   
        Im = WAVE_IM                                                       GSS3F401.1076   
        DO Is = 1,NSECTP                                                   GSS3F401.1077   
          H_VERS(Im,Is)= CTOITST( WAVE_SR(Is)(1:1))                        GSS3F401.1078   
        END DO                                                             GSS3F401.1079   
      END IF                                                               GSS3F401.1080   
! Submodel independent                                                     SETMODL1.69     
      DO Im = 1,N_INTERNAL_MODEL_MAX                                       GSS3F401.1081   
         H_VERS(Im,19)= CTOITST(INDEP_SR(19)(1:1))                         GSS3F401.1082   
      END DO                                                               GSS3F401.1083   
      DO I=1,N_INTERNAL_MODEL_MAX                                          GSS3F401.1084   
        MEAN_NUMBER(I)=0                                                   GSS3F401.1085   
        DO J=1,4                                                           GSS3F401.1086   
          IF (MEANFREQim(J,I).GT.0) THEN                                   GSS3F401.1087   
            MEAN_NUMBER(I)=MEAN_NUMBER(I)+1                                GSS3F401.1088   
          END IF                                                           GSS3F401.1089   
        END DO                                                             SETMODL1.74     
      END DO                                                               GSS3F401.1090   
                                                                           GSS3F401.1091   
      Im = ATMOS_IM                                                        GSS3F401.1092   
      IF (H_ATMOS .EQ. 'Y') THEN                                           GSS3F401.1093   
! Atmos model included                                                     GSS3F401.1094   
                                                                           SETMODL1.75     
       IF(OCALB.EQ.1) THEN                                                 SETMODL1.76     
          H_FLOOR=FLOOR                                                    SETMODL1.77     
          H_STRAT='N'                                                      SETMODL1.78     
        ELSE                                                               SETMODL1.79     
          H_FLOOR='Y'                                                      SETMODL1.80     
          H_STRAT='Y'                                                      SETMODL1.81     
        END IF                                                             SETMODL1.82     
                                                                           SETMODL1.83     
        DO I=1,29                                                          SETMODL1.84     
          IF (TCA(I).EQ.0) THEN                                            SETMODL1.85     
            TRACER_A(I)=.FALSE.                                            SETMODL1.86     
          ELSE                                                             SETMODL1.87     
            TRACER_A(I)=.TRUE.                                             SETMODL1.88     
          END IF                                                           SETMODL1.89     
        END DO                                                             SETMODL1.90     
                                                                           SETMODL1.91     
                                                                           SETMODL1.93     
        IF(TOTAE.EQ.'Y') THEN                                              SETMODL1.94     
          IF(TOTEM.EQ.'Y') THEN                                            SETMODL1.95     
            H_TOTEM='Y'                                                    SETMODL1.96     
          ELSE                                                             SETMODL1.97     
            H_TOTEM='N'                                                    SETMODL1.98     
          END IF                                                           SETMODL1.99     
        ELSE                                                               SETMODL1.100    
          H_TOTEM='N'                                                      SETMODL1.101    
        END IF                                                             SETMODL1.102    
                                                                           SETMODL1.103    
*IF -DEF,RECON                                                             GSS3F401.1095   
! Set switches & pseudo level limits for atmos assimilation diags          GSS3F401.1096   
        DO I=1,AASSETS                                                     GSS3F401.1097   
          AASSET  (I)=.FALSE.                                              GSS3F401.1098   
          Obs_type(I)=0                                                    GSS3F401.1099   
        END DO                                                             GSS3F401.1100   
        IF (N_AOBS.GT.0) THEN                                              GSS3F401.1101   
        DO I=1,N_AOBS                                                      GSS3F401.1102   
!   Obtain first digit of obs type                                         GSS3F401.1103   
          Obs_type(I)=AOBINC(I)/100                                        GSS3F401.1104   
          AASSET(Obs_type(I))=.TRUE.                                       GSS3F401.1105   
          IF (I.GT.1) THEN                                                 GSS3F401.1106   
          IF (Obs_type(I).NE.Obs_type(I-1)) THEN                           GSS3F401.1107   
            AASPF (Obs_type(I))=AOBGRP(I)                                  GSS3F401.1108   
            AASPL (Obs_type(I))=AOBGRP(I)                                  GSS3F401.1109   
          END IF                                                           GSS3F401.1110   
          ELSE                                                             GSS3F401.1111   
            AASPF (Obs_type(I))=AOBGRP(I)                                  GSS3F401.1112   
            AASPL (Obs_type(I))=AOBGRP(I)                                  GSS3F401.1113   
          END IF                                                           GSS3F401.1114   
          IF (J.GT.AASSETS) J=AASSETS                                      GSS3F401.1115   
          IF (I.GT.1      ) THEN                                           GSS3F401.1116   
            IF (Obs_type(I).EQ.Obs_type(I-1)) THEN                         GSS3F401.1117   
              IF (AOBGRP(I).LT.AASPF(Obs_type(I)))                         GSS3F401.1118   
     &            AASPF(Obs_type(I))=AOBGRP(I)                             GSS3F401.1119   
              IF (AOBGRP(I).GT.AASPL(Obs_type(I)))                         GSS3F401.1120   
     &            AASPL(Obs_type(I))=AOBGRP(I)                             GSS3F401.1121   
            END IF                                                         GSS3F401.1122   
          END IF                                                           GSS3F401.1123   
        END DO                                                             GSS3F401.1124   
        END IF                                                             GSS3F401.1125   
*ENDIF                                                                     GSS3F401.1126   
                                                                           GSS3F401.1127   
                                                                           SETMODL1.131    
        H_OROG_GRAD=(H_VERS(Im,6).EQ.3)                                    SETMODL1.132    
                                                                           SETMODL1.133    
        IF(OCAAA.EQ.1) THEN                                                GSS3F401.1128   
! Atmos global model                                                       GSS3F401.1129   
          H_GLOBAL(A_IM)='Y'                                               GSS3F401.1130   
*IF -DEF,MPP                                                               GPB1F402.601    
          H_A_EWSPACE=360.0/ROW_LENGTH                                     GSS3F401.1131   
          H_A_NSSPACE=180.0/(P_ROWS-1)                                     GSS3F401.1132   
*ELSE                                                                      GPB1F402.602    
          H_A_EWSPACE=360.0/                                               GPB1F402.603    
     &      decomp_db_glsize(1,decomp_standard_atmos)                      GPB1F402.604    
          H_A_NSSPACE=180.0/                                               GPB1F402.605    
     &      (decomp_db_glsize(2,decomp_standard_atmos)-1)                  GPB1F402.606    
*ENDIF                                                                     GPB1F402.607    
          H_A_FIRSTLAT=90.0                                                SETMODL1.156    
          H_A_FIRSTLONG=0.0                                                SETMODL1.157    
          H_A_POLELAT=90.0                                                 SETMODL1.158    
          H_A_POLELONG=0.0                                                 SETMODL1.159    
          LMESO=.FALSE.                                                    SETMODL1.160    
        ELSE IF (OCAAA.EQ.2) THEN                                          SETMODL1.161    
! Atmos LAM                                                                GSS3F401.1133   
          H_GLOBAL(A_IM)='N'                                               GSS3F401.1134   
          LMESO=(MESO.EQ.'Y')                                              SETMODL1.163    
          H_A_EWSPACE=EWSPACEA                                             SETMODL1.164    
          H_A_NSSPACE=NSSPACEA                                             SETMODL1.165    
          H_A_FIRSTLAT=FRSTLATA                                            SETMODL1.166    
          H_A_FIRSTLONG=FRSTLONA                                           SETMODL1.167    
          IF (H_A_FIRSTLONG.LT.0) H_A_FIRSTLONG=H_A_FIRSTLONG+360.0        SETMODL1.168    
          H_A_POLELAT=POLELATA                                             SETMODL1.169    
          H_A_POLELONG=POLELONA                                            SETMODL1.170    
        ELSE IF (OCAAA.EQ.3) THEN                                          SETMODL1.171    
! Atmos single column                                                      GSS3F401.1135   
          H_GLOBAL(A_IM)='N'                                               GSS3F401.1136   
          H_A_EWSPACE=360.                                                 SETMODL1.173    
          H_A_NSSPACE=180.                                                 SETMODL1.174    
          H_A_FIRSTLAT=LATS                                                SETMODL1.175    
          H_A_FIRSTLONG=LONS                                               SETMODL1.176    
          H_A_POLELAT=90.0                                                 SETMODL1.177    
          H_A_POLELONG=0.0                                                 SETMODL1.178    
          LMESO=.FALSE.                                                    SETMODL1.179    
        ELSE IF (OCAAA.NE.0) THEN                                          GSS3F401.1137   
          write(6,*)                                                       SETMODL1.181    
     &   'Setmodl: UNEXPECTED ATMOSPHERIC AREA CODE OCAAA',OCAAA           SETMODL1.182    
        END IF                                                             SETMODL1.183    
                                                                           SETMODL1.184    
        LEXTRA(A_SM)=(1+P_LEVELS+2*Q_LEVELS)*P_ROWS*ROW_LENGTH             GSS3F401.1138   
                                                                           SETMODL1.186    
      ELSE   ! Atmosphere model not included                               SETMODL1.187    
                                                                           SETMODL1.188    
                                                                           SETMODL1.192    
        L_H2_SULPH    =.FALSE.                                             AWI1F403.10     
        ZonAvOzone    =.FALSE.                                             SETMODL1.194    
        LMICROPHY     =.FALSE.                                             SETMODL1.195    
        H_OROG_GRAD   =.FALSE.                                             SETMODL1.196    
        LMESO         =.FALSE.                                             SETMODL1.197    
        H_FLOOR       ='N'                                                 SETMODL1.198    
        H_STRAT       ='N'                                                 SETMODL1.199    
        TOTAE         ='N'                                                 SETMODL1.202    
        H_TOTEM       ='N'                                                 SETMODL1.203    
        H_GLOBAL(A_IM)='N'                                                 GSS3F401.1139   
        LAND_FIELD    =0                                                   SETMODL1.205    
        P_ROWS        =0                                                   SETMODL1.206    
        P_LEVELS      =0                                                   SETMODL1.207    
        Q_LEVELS      =0                                                   SETMODL1.208    
        CLOUD_LEVELS  =0                                                   SETMODL1.209    
        TR_LEVELS     =0                                                   SETMODL1.210    
        TR_VARS       =0                                                   SETMODL1.211    
        DO I=1,29                                                          SETMODL1.213    
          TRACER_A(I) =.FALSE.                                             SETMODL1.214    
        END DO                                                             SETMODL1.215    
        StLevGWdrag   =0                                                   SETMODL1.217    
        BotVDiffLev   =0                                                   SETMODL1.218    
        TopVDifflev   =0                                                   SETMODL1.219    
        A_SW_RADSTEP  =0                                                   SETMODL1.221    
        A_LW_RADSTEP  =0                                                   SETMODL1.222    
        H_OROG_ROUGH  =0                                                   SETMODL1.223    
        A_CONV_STEP   =0                                                   SETMODL1.224    
        H_SWBANDS     =0                                                   SETMODL1.225    
        H_LWBANDS     =0                                                   SETMODL1.226    
        H_A_EWSPACE   =0.                                                  SETMODL1.229    
        H_A_NSSPACE   =0.                                                  SETMODL1.230    
        H_A_FIRSTLAT  =0.                                                  SETMODL1.231    
        H_A_FIRSTLONG =0.                                                  SETMODL1.232    
        H_A_POLELAT   =0.                                                  SETMODL1.233    
        H_A_POLELONG  =0.                                                  SETMODL1.234    
        PHENOL_PERIOD =0.                                                  ABX1F405.49     
        TRIFFID_PERIOD=0.                                                  ABX1F405.50     
      END IF                                                               SETMODL1.237    
                                                                           SETMODL1.238    
      DO I=1,6                                                             SETMODL1.239    
        O_ASSM_FIELDS(I)='N'                                               SETMODL1.240    
      END DO                                                               SETMODL1.241    
                                                                           SETMODL1.242    
      Im = OCEAN_IM                                                        GSS3F401.1140   
! Ocean model included                                                     GSS3F401.1141   
      IF (H_OCEAN.EQ.'Y') THEN                                             GSS3F401.1142   
        IF (OBS.EQ.3) THEN                                                 SETMODL1.245    
          COX_Z   =.TRUE.                                                  SETMODL1.246    
          COX_PMSL=(BSPMSL.EQ.'Y')                                         SETMODL1.247    
        ELSE                                                               SETMODL1.248    
          COX_Z   =.FALSE.                                                 SETMODL1.249    
          COX_PMSL=.FALSE.                                                 SETMODL1.250    
          COX_Y   =(OBS.EQ.1)                                              SETMODL1.251    
        END IF                                                             SETMODL1.252    
                                                                           SETMODL1.253    
        IF (L_OHMEAD) THEN                                                 GSS3F401.1143   
          OCEAN_BASINS=OBAS                                                SETMODL1.255    
        ELSE                                                               SETMODL1.256    
          OCEAN_BASINS=0                                                   SETMODL1.257    
        END IF                                                             SETMODL1.258    
                                                                           SETMODL1.259    
        COX_LCASE_C=((H_ATMOS.EQ.'Y').OR.(OSFC.EQ.'Y'))                    SETMODL1.260    
        COX_OCARB  = (H_VERS(Im,30).NE.0 . AND. OCARB.EQ.'Y')              SETMODL1.261    
        COX_X      =((MLMO.EQ.'Y').AND.(PSA.NE.0))                         SETMODL1.262    
        COX_P      = (OICE.EQ.1)                                           SETMODL1.263    
                                                                           SETMODL1.264    
        IF(COX_P) THEN                                                     SETMODL1.265    
          SEAICE_TYPE=OIDYN                                                SETMODL1.266    
        ELSE                                                               SETMODL1.267    
          SEAICE_TYPE=-1                                                   SETMODL1.268    
        END IF                                                             SETMODL1.269    
                                                                           SETMODL1.270    
        COX_LCASE_I= (OICE.EQ.2)                                           SETMODL1.271    
        COX_L      =((IVDF.NE.0).AND.(IDO.EQ.'Y'))                         SETMODL1.272    
                                                                           SETMODL1.273    
        Im = OCEAN_IM                                                      SETMODL1.274    
                                                                           SETMODL1.275    
        IF ((OCAAO.EQ.1).OR.(CCEW.EQ.'Y')) THEN                            SETMODL1.285    
          COX_O      =.TRUE.                                               SETMODL1.286    
          H_O_PTSPROW= NCOLSO-2                                            SETMODL1.287    
        ELSE                                                               SETMODL1.288    
          COX_O      =.FALSE.                                              SETMODL1.289    
          H_O_PTSPROW= NCOLSO                                              SETMODL1.290    
        END IF                                                             SETMODL1.291    
                                                                           SETMODL1.292    
        DO I=1,18                                                          SETMODL1.293    
          IF (TCO(I).EQ.0) THEN                                            SETMODL1.294    
            TRACER_O(I)=.FALSE.                                            SETMODL1.295    
          ELSE                                                             SETMODL1.296    
            TRACER_O(I)=.TRUE.                                             SETMODL1.297    
          END IF                                                           SETMODL1.298    
        END DO                                                             SETMODL1.299    
                                                                           SETMODL1.300    
        N_COMP_O  =  NECF(1)                                               SETMODL1.301    
                                                                           SETMODL1.302    
        DO I      =2,NLEVSO                                                SETMODL1.303    
          N_COMP_O=  N_COMP_O+NECF(I)                                      SETMODL1.304    
        END DO                                                             SETMODL1.305    
                                                                           SETMODL1.306    
        H_O_EWSPACE  = EWSPACEO                                            SETMODL1.328    
        H_O_NSSPACE  =-NSSPACEO                                            SETMODL1.329    
        H_O_FIRSTLAT = FRSTLATO                                            SETMODL1.330    
        H_O_FIRSTLONG= FRSTLONO                                            SETMODL1.331    
        IF (H_O_FIRSTLONG.LT.0) H_O_FIRSTLONG=H_O_FIRSTLONG+360.0          SETMODL1.332    
                                                                           SETMODL1.333    
        IF (OCAAO.EQ.1) THEN                                               GSS3F401.1144   
! Ocean global model                                                       GSS3F401.1145   
          COX_1234=.FALSE.                                                 SETMODL1.335    
          H_GLOBAL(O_IM)='Y'                                               GSS3F401.1146   
          H_O_POLELAT=90.0                                                 SETMODL1.337    
          H_O_POLELONG=0.0                                                 SETMODL1.338    
        ELSE IF (OCAAO.EQ.2) THEN                                          SETMODL1.339    
! Ocean LAM                                                                GSS3F401.1147   
          COX_1234=(UPD175.EQ.'Y')                                         SETMODL1.340    
          H_GLOBAL(O_IM)='N'                                               GSS3F401.1148   
          H_O_POLELAT=POLELATO                                             SETMODL1.342    
          H_O_POLELONG=POLELONO                                            SETMODL1.343    
        ELSE IF (OCAAO.NE.0) THEN                                          GSS3F401.1149   
          write(6,*)                                                       SETMODL1.345    
     &   'Setmodl: UNEXPECTED OCEANIC AREA CODE OCAAO',OCAAO               SETMODL1.346    
        END IF                                                             SETMODL1.347    
                                                                           SETMODL1.349    
        DO I=1,NOASFLDS                                                    SETMODL1.350    
          IF(OAFLD(I).EQ.'Y') THEN                                         SETMODL1.351    
            O_ASSM_FIELDS(OASFLDID(I))='Y'                                 SETMODL1.352    
          ELSE                                                             SETMODL1.353    
            O_ASSM_FIELDS(OASFLDID(I))='N'                                 SETMODL1.354    
          END IF                                                           SETMODL1.355    
        END DO                                                             SETMODL1.356    
                                                                           SETMODL1.357    
      ELSE          ! Ocean model not included                             SETMODL1.358    
                                                                           SETMODL1.359    
        H_OCEAN       ='N'                                                 GSS3F401.1150   
        H_GLOBAL(O_IM)='N'                                                 GSS3F401.1151   
        COX_LCASE_C =.FALSE.                                               SETMODL1.362    
        COX_OCARB   =.FALSE.                                               SETMODL1.363    
        COX_Z       =.FALSE.                                               SETMODL1.364    
        COX_Y       =.FALSE.                                               SETMODL1.365    
        COX_PMSL    =.FALSE.                                               SETMODL1.366    
        COX_P       =.FALSE.                                               SETMODL1.367    
        COX_X       =.FALSE.                                               SETMODL1.369    
        COX_L       =.FALSE.                                               SETMODL1.370    
        COX_LCASE_I =.FALSE.                                               SETMODL1.372    
        COX_1234    =.FALSE.                                               SETMODL1.373    
        COX_O       =.FALSE.                                               SETMODL1.374    
        SEAICE_TYPE =-1                                                    SETMODL1.376    
        OCEAN_BASINS= 0                                                    SETMODL1.377    
        OCBOHaney   = 0                                                    SETMODL1.378    
        H_O_PTSPROW  =0                                                    SETMODL1.389    
        NROWSO       =0                                                    SETMODL1.390    
        NLEVSO       =0                                                    SETMODL1.391    
        N_COMP_O     =0                                                    SETMODL1.395    
        DO I=1,18                                                          SETMODL1.399    
          TRACER_O(I)=.FALSE.                                              SETMODL1.400    
        END DO                                                             SETMODL1.401    
        H_O_EWSPACE  =0.0                                                  SETMODL1.411    
        H_O_NSSPACE  =0.0                                                  SETMODL1.412    
        H_O_FIRSTLAT =0.0                                                  SETMODL1.413    
        H_O_FIRSTLONG=0.0                                                  SETMODL1.414    
        H_O_POLELAT  =0.0                                                  SETMODL1.415    
        H_O_POLELONG =0.0                                                  SETMODL1.416    
      END IF                                                               SETMODL1.418    
                                                                           SETMODL1.419    
      Im = SLAB_IM                                                         GSS3F401.1152   
! Slab ocean model included                                                GSS3F401.1153   
      IF(H_SLAB.EQ.'Y') THEN                                               GSS3F401.1154   
        H_SLAB_CAL   =SCAL                                                 GSS3F401.1155   
      ELSE                                                                 GSS3F401.1156   
        H_SLAB_CAL   ='N'                                                  GSS3F401.1157   
      END IF                                                               GSS3F401.1158   
                                                                           GSS3F401.1159   
      Im = WAVE_IM                                                         GSS3F401.1160   
! Wave model included                                                      GSS3F401.1161   
      IF  (H_WAVE.EQ.'Y') THEN                                             GSS3F401.1162   
        H_W_NSSPACE   =NSSPACEW                                            GSS3F401.1163   
        H_W_FIRSTLAT  =FRSTLATW                                            GSS3F401.1164   
        IF (H_W_FIRSTLONG.LT.0) H_W_FIRSTLONG=H_W_FIRSTLONG+360.0          GSS3F401.1165   
        IF(OCAAW .EQ. 1 ) THEN                                             GSS3F401.1166   
! Wave global model                                                        GSS3F401.1167   
          H_GLOBAL(W_IM)='Y'                                               GSS3F401.1168   
          H_W_EWSPACE   =360./NCOLSW                                       GSS3F401.1169   
          H_W_FIRSTLONG =0.                                                GSS3F401.1170   
        ELSE IF (OCAAW.EQ.2) THEN                                          GSS3F401.1171   
! Wave LAM                                                                 GSS3F401.1172   
          H_GLOBAL(W_IM)='N'                                               GSS3F401.1173   
          H_W_EWSPACE   =EWSPACEW                                          GSS3F401.1174   
          H_W_FIRSTLONG =FRSTLONW                                          GSS3F401.1175   
        ELSE IF (OCAAW.NE.0) THEN                                          GSS3F401.1176   
          write(6,*)                                                       GSS3F401.1177   
     &   'Setmodl: UNEXPECTED WAVE AREA CODE OCAAW',OCAAW                  GSS3F401.1178   
        END IF                                                             GSS3F401.1179   
      END IF                                                               GSS3F401.1180   
                                                                           GSS3F401.1181   
                                                                           SETMODL1.433    
      CLOSE(UNIT=10)                                                       SETMODL1.434    
      RETURN                                                               SETMODL1.435    
      END                                                                  SETMODL1.436    
                                                                           SETMODL1.437    
!- End of Subroutine code ----------------------------------------------   SETMODL1.438    
                                                                           SETMODL1.439    
! Function Interface:                                                      SETMODL1.440    
                                                                           SETMODL1.441    

      INTEGER FUNCTION CTOITST(CHAR)                                        5SETMODL1.442    
      CHARACTER*1  CHAR                                                    SETMODL1.443    
!                                                                          GSS3F401.1182   
      IF(CHAR.EQ.'0'.OR.CHAR.EQ.' ') THEN                                  GSS3F401.1183   
        CTOITST=0                                                          SETMODL1.446    
      ELSE IF(CHAR.EQ.'1') THEN                                            SETMODL1.447    
        CTOITST=1                                                          SETMODL1.448    
      ELSE IF(CHAR.EQ.'2') THEN                                            SETMODL1.449    
        CTOITST=2                                                          SETMODL1.450    
      ELSE IF(CHAR.EQ.'3') THEN                                            SETMODL1.451    
        CTOITST=3                                                          SETMODL1.452    
      ELSE IF(CHAR.EQ.'4') THEN                                            SETMODL1.453    
        CTOITST=4                                                          SETMODL1.454    
      ELSE IF(CHAR.EQ.'5') THEN                                            SETMODL1.455    
        CTOITST=5                                                          SETMODL1.456    
      ELSE IF(CHAR.EQ.'6') THEN                                            SETMODL1.457    
        CTOITST=6                                                          SETMODL1.458    
      ELSE IF(CHAR.EQ.'7') THEN                                            SETMODL1.459    
        CTOITST=7                                                          SETMODL1.460    
      ELSE IF(CHAR.EQ.'8') THEN                                            SETMODL1.461    
        CTOITST=8                                                          SETMODL1.462    
      ELSE IF(CHAR.EQ.'9') THEN                                            SETMODL1.463    
        CTOITST=9                                                          SETMODL1.464    
      ELSE IF(CHAR.EQ.'A') THEN                                            SETMODL1.465    
        CTOITST=10                                                         SETMODL1.466    
      ELSE IF(CHAR.EQ.'B') THEN                                            SETMODL1.467    
        CTOITST=11                                                         SETMODL1.468    
      ELSE IF(CHAR.EQ.'C') THEN                                            SETMODL1.469    
        CTOITST=12                                                         SETMODL1.470    
      ELSE IF(CHAR.EQ.'D') THEN                                            SETMODL1.471    
        CTOITST=13                                                         SETMODL1.472    
      ELSE IF(CHAR.EQ.'E') THEN                                            SETMODL1.473    
        CTOITST=14                                                         SETMODL1.474    
      ELSE IF(CHAR.EQ.'F') THEN                                            SETMODL1.475    
        CTOITST=15                                                         SETMODL1.476    
      ELSE IF(CHAR.EQ.'G') THEN                                            SETMODL1.477    
        CTOITST=16                                                         SETMODL1.478    
      ELSE IF(CHAR.EQ.'H') THEN                                            SETMODL1.479    
        CTOITST=17                                                         SETMODL1.480    
      ELSE IF(CHAR.EQ.'I') THEN                                            SETMODL1.481    
        CTOITST=18                                                         SETMODL1.482    
      ELSE IF(CHAR.EQ.'J') THEN                                            SETMODL1.483    
        CTOITST=19                                                         SETMODL1.484    
      ELSE IF(CHAR.EQ.'K') THEN                                            SETMODL1.485    
        CTOITST=20                                                         SETMODL1.486    
      ELSE IF(CHAR.EQ.'#') THEN                                            SETMODL1.487    
        CTOITST=0                                                          SETMODL1.488    
      ELSE                                                                 SETMODL1.489    
        WRITE(6,*)'SETMODL: UNEXPECTED SECTION CHOICE  ',CHAR              SETMODL1.490    
      END IF                                                               SETMODL1.491    
                                                                           SETMODL1.492    
      END                                                                  SETMODL1.493    
*ENDIF                                                                     SETMODL1.494    
                                                                           SETMODL1.495