*IF DEF,C70_1A,AND,-DEF,SCMA AJC0F405.268
C ******************************COPYRIGHT****************************** GTS2F400.12956
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.12957
C GTS2F400.12958
C Use, duplication or disclosure of this code is subject to the GTS2F400.12959
C restrictions as set forth in the contract. GTS2F400.12960
C GTS2F400.12961
C Meteorological Office GTS2F400.12962
C London Road GTS2F400.12963
C BRACKNELL GTS2F400.12964
C Berkshire UK GTS2F400.12965
C RG12 2SZ GTS2F400.12966
C GTS2F400.12967
C If no contract has been raised with this copy of the code, the use, GTS2F400.12968
C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.12969
C to do so must first be obtained in writing from the Head of Numerical GTS2F400.12970
C Modelling at the above address. GTS2F400.12971
C GTS2F400.12972
!+ Reads History & control files; also interim for CRUN and HK for Op. UMSETUP1.3
! UMSETUP1.4
! Subroutine Interface: UMSETUP1.5
SUBROUTINE UM_SETUP(ICODE,CMESSAGE) 1,9UMSETUP1.6
UMSETUP1.7
IMPLICIT NONE UMSETUP1.8
! UMSETUP1.9
! Description: UMSETUP1.10
! Reads History and control namelist files for all runs. UMSETUP1.11
! For CRUNs also reads interim control file of values changed by user. UMSETUP1.12
! For operational runs reads housekeeping file. UMSETUP1.13
! UMSETUP1.14
! Method: as above UMSETUP1.15
! UMSETUP1.16
! Current Code Owner: RTHBarnes. UMSETUP1.17
! UMSETUP1.18
! History: UMSETUP1.19
! Version Date Comment UMSETUP1.20
! ------- ---- ------- UMSETUP1.21
! 3.5 04/05/95 Sub-models stage 1: New routine. RTHBarnes. UMSETUP1.22
! 4.0 06/09/95 Add Timer stop section. RTHBarnes. GRB1F400.71
! 4.0 06/12/95 Check env.var. TYPE for CRUN as well as HSTEPim. RTHB GRB1F400.72
! 4.1 14/05/96 Change GETENV to more portable FORT_GET_ENV P.Burton GPB0F401.1
! 4.2 11/09/96 Remove EXTERNAL GET_ENV statement P.Burton APB1F402.18
! 4.5 23/10/98 Introduce Single Column Model. J-C Thil. AJC0F405.267
! UMSETUP1.23
! Code Description: UMSETUP1.24
! Language: FORTRAN 77 + common extensions. UMSETUP1.25
! This code is written to UMDP3 v6 programming standards. UMSETUP1.26
! UMSETUP1.27
! System component covered: C0 UMSETUP1.28
! System Task: C0 UMSETUP1.29
! UMSETUP1.30
! Declarations: UMSETUP1.31
! UMSETUP1.32
! Global variables (*CALLed COMDECKs etc...): UMSETUP1.33
*CALL CSUBMODL
UMSETUP1.34
*CALL CHSUNITS
UMSETUP1.35
*CALL CHISTORY
UMSETUP1.36
*CALL CCONTROL
UMSETUP1.37
UMSETUP1.38
! Subroutine arguments UMSETUP1.39
! Scalar arguments with intent(in): UMSETUP1.40
! Array arguments with intent(in): UMSETUP1.41
! Scalar arguments with intent(InOut): UMSETUP1.42
! Array arguments with intent(InOut): UMSETUP1.43
! Scalar arguments with intent(out): UMSETUP1.44
Integer ICODE ! Error code UMSETUP1.45
Character*80 CMESSAGE ! Error message UMSETUP1.46
! Array arguments with intent(out): UMSETUP1.47
UMSETUP1.48
! Local parameters: UMSETUP1.49
UMSETUP1.50
! Local scalars: UMSETUP1.51
INTEGER I ! Loop variable UMSETUP1.52
INTEGER UNITICTL ! Unit no. for Interim Control file UMSETUP1.53
LOGICAL CRUN ! T if continuation run UMSETUP1.54
INTEGER J ! dummy for use with FORT_GET_ENV APB1F402.19
CHARACTER*4 TYPE ! Type of run - NRUN or CRUN GRB1F400.74
UMSETUP1.55
! Local dynamic arrays: UMSETUP1.56
UMSETUP1.57
! Function & Subroutine calls: UMSETUP1.58
External TIMER, READHIST, READCNTL, READHK, EREPORT, ABORT UMSETUP1.59
& ,FORT_GET_ENV APB1F402.20
UMSETUP1.60
!- End of header UMSETUP1.61
! UMSETUP1.62
! ---------------------------------------------------------------------- UMSETUP1.63
! 0. Start Timer running UMSETUP1.64
! UMSETUP1.65
CALL TIMER
('UM_SETUP',3) UMSETUP1.66
ICODE=0 UMSETUP1.67
! ---------------------------------------------------------------------- UMSETUP1.68
! 1. Read History file. UMSETUP1.69
! UMSETUP1.70
CALL READHIST
( IHIST_UNIT,ICODE,CMESSAGE ) UMSETUP1.71
IF(ICODE .GT. 0) GOTO 999 UMSETUP1.72
UMSETUP1.73
! ---------------------------------------------------------------------- UMSETUP1.74
! 2. Read Control file on standard input. UMSETUP1.75
! UMSETUP1.76
CALL READCNTL
( 5,ICODE,CMESSAGE ) UMSETUP1.77
IF(ICODE .GT. 0) GOTO 999 UMSETUP1.78
UMSETUP1.79
! ---------------------------------------------------------------------- UMSETUP1.80
! 3. Read Interim Control file for CRUNs only. UMSETUP1.81
! UMSETUP1.82
CALL FORT_GET_ENV
('TYPE',4,TYPE,4,J) GPB0F401.2
CRUN = .false. UMSETUP1.83
DO I = 1,N_INTERNAL_MODEL_MAX UMSETUP1.84
IF (H_STEPim(I) .gt. 0) THEN UMSETUP1.85
CRUN = .true. UMSETUP1.86
GO TO 300 UMSETUP1.87
END IF UMSETUP1.88
END DO UMSETUP1.89
300 CONTINUE UMSETUP1.90
IF (CRUN .or. TYPE.eq.'CRUN') THEN GRB1F400.77
WRITE(6,*)' UMSETUP; CRUN, read CONTCNTL from unit 9' GIE0F403.664
! Open and read Interim Control file UMSETUP1.92
UNITICTL = 9 UMSETUP1.93
CALL READCNTL
( UNITICTL,ICODE,CMESSAGE ) UMSETUP1.94
IF(ICODE .GT. 0) GOTO 999 UMSETUP1.95
CLOSE (UNITICTL) UMSETUP1.96
END IF UMSETUP1.97
UMSETUP1.98
! ---------------------------------------------------------------------- UMSETUP1.99
! 4. Read Housekeeping file for operational runs only. UMSETUP1.100
! UMSETUP1.101
IF(MODEL_STATUS .EQ. 'Operational') THEN UMSETUP1.102
CALL READHK
(HKFILE_UNIT,ICODE,CMESSAGE) UMSETUP1.103
IF(ICODE .GT. 0) GOTO 999 UMSETUP1.104
END IF UMSETUP1.105
UMSETUP1.106
! ---------------------------------------------------------------------- UMSETUP1.107
! 5. Output any error/warning message and stop if error. UMSETUP1.108
! UMSETUP1.109
999 CONTINUE UMSETUP1.110
IF(ICODE .NE. 0) CALL EREPORT
(ICODE,CMESSAGE) UMSETUP1.111
IF(ICODE .GT. 0) CALL ABORT
UMSETUP1.112
GRB1F400.79
! ---------------------------------------------------------------------- GRB1F400.80
! 6. Stop Timer for this routine. GRB1F400.81
! GRB1F400.82
CALL TIMER
('UM_SETUP',4) GRB1F400.83
UMSETUP1.113
RETURN UMSETUP1.114
END UMSETUP1.115
*ENDIF UMSETUP1.116