*IF DEF,CONTROL                                                            READCTL1.2      
C ******************************COPYRIGHT******************************    GTS2F400.12769  
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.12770  
C                                                                          GTS2F400.12771  
C Use, duplication or disclosure of this code is subject to the            GTS2F400.12772  
C restrictions as set forth in the contract.                               GTS2F400.12773  
C                                                                          GTS2F400.12774  
C                Meteorological Office                                     GTS2F400.12775  
C                London Road                                               GTS2F400.12776  
C                BRACKNELL                                                 GTS2F400.12777  
C                Berkshire UK                                              GTS2F400.12778  
C                RG12 2SZ                                                  GTS2F400.12779  
C                                                                          GTS2F400.12780  
C If no contract has been raised with this copy of the code, the use,      GTS2F400.12781  
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.12782  
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.12783  
C Modelling at the above address.                                          GTS2F400.12784  
C                                                                          GTS2F400.12785  
!                                                                          READCTL1.3      
! Subroutine Interface:                                                    READCTL1.4      

      SUBROUTINE READCNTL(UNIT,ICODE,CMESSAGE)                              2,2READCTL1.5      
                                                                           READCTL1.6      
      IMPLICIT NONE                                                        READCTL1.7      
!                                                                          READCTL1.8      
! Description:                                                             READCTL1.9      
!  Reads overall, generic and model-specific control variables.            READCTL1.10     
!                                                                          READCTL1.11     
! Method:                                                                  READCTL1.12     
!  Reads namelist containing all overall, generic and model-specific       READCTL1.13     
!  control variables not in History file.  Control variables are then      READCTL1.14     
!  available from COMMON block storage. Declarations, namelist and         READCTL1.15     
!  common are all in included comdecks.                                    READCTL1.16     
!                                                                          READCTL1.17     
! Current Code Owner: R.T.H.Barnes                                         READCTL1.18     
!                                                                          READCTL1.19     
! History:                                                                 READCTL1.20     
! Version   Date     Comment                                               READCTL1.21     
! -------   ----     -------                                               READCTL1.22     
!  3.5  29/03/95     Original code. RTHBarnes.                             READCTL1.23     
!  4.0  18/10/95  Add ICODE error return to GET_FILE call. RTHBarnes       GRB2F400.5      
!  4.1  23/02/96  Extend for new wave sub_model.  RTHBarnes.               WRB1F401.726    
!                                                                          READCTL1.24     
! Code Description:                                                        READCTL1.25     
!   Language: FORTRAN 77 + common extensions.                              READCTL1.26     
!   This code is written to UMDP3 v6 programming standards.                READCTL1.27     
!                                                                          READCTL1.28     
! System component covered: <appropriate code>                             READCTL1.29     
! System Task:              <appropriate code>                             READCTL1.30     
!                                                                          READCTL1.31     
! Declarations:                                                            READCTL1.32     
!                                                                          READCTL1.33     
! Global variables (*CALLed COMDECKs etc...):                              READCTL1.34     
*CALL CSUBMODL                                                             READCTL1.35     
*CALL CHSUNITS                                                             READCTL1.36     
*CALL CCONTROL                                                             READCTL1.37     
                                                                           READCTL1.38     
! Subroutine arguments                                                     READCTL1.39     
!   Scalar arguments with intent(in):                                      READCTL1.40     
!   Array  arguments with intent(in):                                      READCTL1.41     
!   Scalar arguments with intent(InOut):                                   READCTL1.42     
!   Array  arguments with intent(InOut):                                   READCTL1.43     
!   Scalar arguments with intent(out):                                     READCTL1.44     
      INTEGER UNIT  ! namelist input unit no.                              READCTL1.45     
      INTEGER ICODE ! return code                                          READCTL1.46     
      CHARACTER*80 CMESSAGE ! error message                                READCTL1.47     
!   Array  arguments with intent(out):                                     READCTL1.48     
                                                                           READCTL1.49     
! Local parameters:                                                        READCTL1.50     
                                                                           READCTL1.51     
! Local scalars:                                                           READCTL1.52     
      CHARACTER*80 FILENAME ! physical filename                            READCTL1.53     
                                                                           READCTL1.54     
! Local dynamic arrays:                                                    READCTL1.55     
                                                                           READCTL1.56     
! Function & Subroutine calls:                                             READCTL1.57     
      External GET_FILE                                                    READCTL1.58     
                                                                           READCTL1.59     
!- End of header                                                           READCTL1.60     
                                                                           READCTL1.61     
!  Find filename and open for formatted i/o                                READCTL1.62     
                                                                           READCTL1.63     
      CALL GET_FILE(UNIT,FILENAME,80,ICODE)                                GRB2F400.6      
      OPEN(UNIT,FILE=FILENAME,FORM='FORMATTED',IOSTAT=ICODE,               PXNAMLST.8      
     & DELIM='APOSTROPHE')                                                 PXNAMLST.9      
                                                                           READCTL1.66     
!  Read overall control data into COMMON/CNTLCALL/                         READCTL1.67     
                                                                           READCTL1.68     
      READ(UNIT,NLSTCALL)                                                  READCTL1.69     
                                                                           READCTL1.70     
!  Read control information for WRITD1 diagnostics                         READCTL1.71     
!  but only from unit 5, not for continuation runs from unit 9             GRB2F400.7      
                                                                           READCTL1.72     
      IF (UNIT .eq. 5) THEN                                                GRB2F400.8      
      CALL READWRITD(UNIT,ICODE,CMESSAGE)                                  READCTL1.73     
      END IF                                                               GRB2F400.9      
                                                                           READCTL1.74     
!  Read generic control data into COMMON/CNTLCGEN/                         READCTL1.75     
                                                                           READCTL1.76     
      READ(UNIT,NLSTCGEN)                                                  READCTL1.77     
                                                                           READCTL1.78     
!  Read atmospheric control data into COMMON/CNTLCATM/                     READCTL1.79     
                                                                           READCTL1.80     
*IF DEF,ATMOS                                                              READCTL1.81     
      READ(UNIT,NLSTCATM)                                                  READCTL1.82     
*ENDIF                                                                     READCTL1.83     
                                                                           READCTL1.84     
!  Read ocean control data into COMMON/CNTLCOCN/                           READCTL1.85     
                                                                           READCTL1.86     
*IF DEF,OCEAN                                                              READCTL1.87     
      READ(UNIT,NLSTCOCN)                                                  READCTL1.88     
*ENDIF                                                                     READCTL1.89     
                                                                           READCTL1.90     
!  Read slab control data into COMMON/CNTLCSLB/                            READCTL1.91     
                                                                           READCTL1.92     
*IF DEF,SLAB                                                               READCTL1.93     
      READ(UNIT,NLSTCSLB)                                                  READCTL1.94     
*ENDIF                                                                     WRB1F401.727    
                                                                           WRB1F401.728    
!  Read wave control data into COMMON/CNTLCWAV/                            WRB1F401.729    
                                                                           WRB1F401.730    
*IF DEF,WAVE                                                               WRB1F401.731    
      READ(UNIT,NLSTCWAV)                                                  WRB1F401.732    
*ENDIF                                                                     READCTL1.95     
                                                                           READCTL1.96     
      REWIND(UNIT)                                                         READCTL1.97     
                                                                           READCTL1.98     
      RETURN                                                               READCTL1.99     
      END                                                                  READCTL1.100    
                                                                           READCTL1.101    
*ENDIF                                                                     READCTL1.102