*IF DEF,FLUXPROC FPOPENF1.2 C ******************************COPYRIGHT****************************** FPOPENF1.3 C (c) CROWN COPYRIGHT 1998, METEOROLOGICAL OFFICE, All Rights Reserved. FPOPENF1.4 C FPOPENF1.5 C Use, duplication or disclosure of this code is subject to the FPOPENF1.6 C restrictions as set forth in the contract. FPOPENF1.7 C FPOPENF1.8 C Meteorological Office FPOPENF1.9 C London Road FPOPENF1.10 C BRACKNELL FPOPENF1.11 C Berkshire UK FPOPENF1.12 C RG12 2SZ FPOPENF1.13 C FPOPENF1.14 C If no contract has been raised with this copy of the code, the use, FPOPENF1.15 C duplication or disclosure of it is strictly prohibited. Permission FPOPENF1.16 C to do so must first be obtained in writing from the Head of Numerical FPOPENF1.17 C Modelling at the above address. FPOPENF1.18 C ******************************COPYRIGHT****************************** FPOPENF1.19 C FPOPENF1.20 C Programming standard: Unified Model Documentation Paper No 3 FPOPENF1.21 C Version No 1 15/1/90 FPOPENF1.22 C History: FPOPENF1.23 C version date change FPOPENF1.24 C 4.5 03/09/98 New code FPOPENF1.25 C FPOPENF1.26 ! Author: M. J. Bell FPOPENF1.27 !---------------------------------------------------------------------- FPOPENF1.28 ! contains routines: Open_file FPOPENF1.29 ! FPOPENF1.30 ! Purpose: Flux processing routine. FPOPENF1.31 ! Opens an external file FPOPENF1.32 !---------------------------------------------------------------------- FPOPENF1.33subroutine Open_file(Unit,Form,Stat,ICode) 12FPOPENF1.34 FPOPENF1.35 implicit none FPOPENF1.36 FPOPENF1.37 ! declaration of argument list FPOPENF1.38 INTEGER Unit !IN Unit Number on which to open file FPOPENF1.39 CHARACTER*11 Form !IN Format with which to open file FPOPENF1.40 CHARACTER*7 Stat !IN Status with which to open file FPOPENF1.41 INTEGER ICode !IN/OUT Return Code from file open FPOPENF1.42 FPOPENF1.43 ! declaration of glbbals FPOPENF1.44 *CALL CMESS
FPOPENF1.45 FPOPENF1.46 ! declaration of local scalars FPOPENF1.47 CHARACTER*1 CUn1D ! Unit Number as Characters(1 digit) FPOPENF1.48 CHARACTER*2 CUn2D ! Unit Number as Characters(2 digits) FPOPENF1.49 CHARACTER*5 FName ! Filename for open statement FPOPENF1.50 !---------------------------------------------------------------------- FPOPENF1.51 ! 0. Preliminaries FPOPENF1.52 CSub = 'Open_file' ! subroutine name for error messages FPOPENF1.53 FPOPENF1.54 FPOPENF1.55 ! 2. Construct file name FPOPENF1.56 FPOPENF1.57 IF (Unit.LE.9) THEN FPOPENF1.58 CUn1D='0' FPOPENF1.59 WRITE(CUn1D,'(I1)') Unit FPOPENF1.60 FName='ftn'//CUn1D FPOPENF1.61 ELSE FPOPENF1.62 CUn2D='00' FPOPENF1.63 WRITE(CUn2D,'(I2)') Unit FPOPENF1.64 FName='ftn'//CUn2D FPOPENF1.65 ENDIF FPOPENF1.66 FPOPENF1.67 ! 3. Open file FPOPENF1.68 FPOPENF1.69 OPEN(UNIT=Unit,FILE=FName,FORM=Form,STATUS=Stat,IOSTAT=ICode) FPOPENF1.70 FPOPENF1.71 9999 continue FPOPENF1.72 return FPOPENF1.73 end FPOPENF1.74 !---------------------------------------------------------------------- FPOPENF1.75 *ENDIF FPOPENF1.76