/[MITgcm]/MITgcm/model/src/open_copy_data_file.F
ViewVC logotype

Contents of /MITgcm/model/src/open_copy_data_file.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Wed Jun 21 19:23:39 2000 UTC (23 years, 11 months ago) by adcroft
Branch: MAIN
CVS Tags: checkpoint29, branch-atmos-merge-start, branch-atmos-merge-shapiro, checkpoint33, checkpoint32, checkpoint31, checkpoint30, checkpoint34, branch-atmos-merge-zonalfilt, branch-atmos-merge-phase5, branch-atmos-merge-phase4, branch-atmos-merge-phase7, branch-atmos-merge-phase6, branch-atmos-merge-phase1, branch-atmos-merge-phase3, branch-atmos-merge-phase2, branch-atmos-merge-freeze
Branch point for: branch-atmos-merge
With multiple routines reading and copying data files to STDOUT
it seemed appropriate to have a generic routine do this part.

1 C $Header: $
2
3 #include "CPP_OPTIONS.h"
4
5 SUBROUTINE OPEN_COPY_DATA_FILE(
6 I data_file, caller_sub,
7 O iUnit,
8 I myThid )
9 C /==========================================================\
10 C | SUBROUTINE OPEN_COPY_DATA_FILE |
11 C | o Routine to open and copy a data.* file to STDOUT |
12 C | and return the open unit in iUnit |
13 C |==========================================================|
14 C \==========================================================/
15 IMPLICIT NONE
16
17 C === Global variables ===
18 #include "SIZE.h"
19 #include "EEPARAMS.h"
20
21 C === Routine arguments ===
22 C myThid - Number of this instance of INI_PARMS
23 CHARACTER*(*) data_file
24 CHARACTER*(*) caller_sub
25 INTEGER iUnit
26 INTEGER myThid
27
28 C === Local variables ===
29 C msgBuf - Informational/error meesage buffer
30 CHARACTER*(MAX_LEN_MBUF) msgBuf
31 CHARACTER*(MAX_LEN_PREC) record
32 INTEGER ILNBLNK
33 EXTERNAL ILNBLNK
34 INTEGER errIO,IL
35 LOGICAL exst
36
37 C
38 _BEGIN_MASTER(myThid)
39
40 C-- Open the parameter file
41 INQUIRE( FILE=data_file, EXIST=exst )
42 IF (exst) THEN
43 WRITE(msgbuf,'(A,A)')
44 & ' OPEN_COPY_DATA_FILE: opening file ',data_file
45 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
46 & SQUEEZE_RIGHT , mythid)
47 ELSE
48 WRITE(msgBuf,'(A,A,A)')
49 & 'File ',data_file,' does not exist!'
50 CALL PRINT_ERROR( msgBuf , 1)
51 WRITE(msgBuf,'(A,A)') 'S/R CALLED BY ',caller_sub
52 CALL PRINT_ERROR( msgBuf , 1)
53 STOP 'ABNORMAL END: S/R OPEN_COPY_DATA_FILE'
54 ENDIF
55
56 OPEN(UNIT=scrUnit1,STATUS='SCRATCH')
57 OPEN(UNIT=scrUnit2,STATUS='SCRATCH')
58 OPEN(UNIT=modelDataUnit,FILE=data_file,STATUS='OLD',
59 & IOSTAT=errIO)
60 IF ( errIO .LT. 0 ) THEN
61 WRITE(msgBuf,'(A,A)')
62 & 'Unable to open data file: ',data_file
63 CALL PRINT_ERROR( msgBuf , 1)
64 WRITE(msgBuf,'(A,A)') 'S/R CALLED BY ',caller_sub
65 CALL PRINT_ERROR( msgBuf , 1)
66 STOP 'ABNORMAL END: S/R OPEN_COPY_DATA_FILE'
67 ENDIF
68
69 DO WHILE ( .TRUE. )
70 READ(modelDataUnit,FMT='(A)',END=1001) RECORD
71 IL = MAX(ILNBLNK(RECORD),1)
72 IF ( RECORD(1:1) .NE. commentCharacter )
73 & WRITE(UNIT=scrUnit1,FMT='(A)') RECORD(:IL)
74 WRITE(UNIT=scrUnit2,FMT='(A)') RECORD(:IL)
75 ENDDO
76 1001 CONTINUE
77 CLOSE(modelDataUnit)
78
79 C-- Report contents of model parameter file
80 WRITE(msgBuf,'(A)')
81 &'// ======================================================='
82 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
83 & SQUEEZE_RIGHT , 1)
84 WRITE(msgBuf,'(A,A,A)') '// Parameter file "',data_file,'"'
85 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
86 & SQUEEZE_RIGHT , 1)
87 WRITE(msgBuf,'(A)')
88 &'// ======================================================='
89 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
90 & SQUEEZE_RIGHT , 1)
91 iUnit = scrUnit2
92 REWIND(iUnit)
93 DO WHILE ( .TRUE. )
94 READ(UNIT=iUnit,FMT='(A)',END=2001) RECORD
95 IL = MAX(ILNBLNK(RECORD),1)
96 WRITE(msgBuf,'(A,A)') '>',RECORD(:IL)
97 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
98 & SQUEEZE_RIGHT , 1)
99 ENDDO
100 2001 CONTINUE
101 CLOSE(iUnit)
102 WRITE(msgBuf,'(A)') ' '
103 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
104 & SQUEEZE_RIGHT , 1)
105
106
107 C-- Return open unit to caller
108 iUnit = scrUnit1
109 REWIND(iUnit)
110
111 _END_MASTER(myThid)
112
113
114 RETURN
115 END
116

  ViewVC Help
Powered by ViewVC 1.1.22