/[MITgcm]/MITgcm/pkg/monitor/mon_out.F
ViewVC logotype

Contents of /MITgcm/pkg/monitor/mon_out.F

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


Revision 1.5 - (show annotations) (download)
Sat Apr 3 04:57:11 2004 UTC (20 years, 1 month ago) by edhill
Branch: MAIN
Changes since 1.4: +40 -34 lines
 o add monitor to apr_reference
 o another _R[48] clean-up in eesupp

1 C $Header: /u/gcmpack/MITgcm/pkg/monitor/mon_out.F,v 1.4 2004/01/10 00:48:49 dimitri Exp $
2 C $Name: $
3
4 #include "MONITOR_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7 CBOP
8 C !ROUTINE: MON_OUT_I
9
10 C !INTERFACE:
11 SUBROUTINE MON_OUT_I(pref, value, foot, myThid )
12
13 C !DESCRIPTION:
14 C Formatted integer I/O for monitor print out.
15
16 C !USES:
17 IMPLICIT NONE
18 #include "SIZE.h"
19 #include "EEPARAMS.h"
20 #include "PARAMS.h"
21 #include "EESUPPORT.h"
22 #include "MONITOR.h"
23 EXTERNAL IFNBLNK
24 INTEGER IFNBLNK
25 EXTERNAL ILNBLNK
26 INTEGER ILNBLNK
27
28 C !INPUT PARAMETERS:
29 C.d pref - Field prefix ( ignored if == mon_string_none )
30 C.d value - Value to print
31 C.d foot - Field suffix ( ignored if == mon_string_none )
32 CHARACTER*(*) pref
33 INTEGER value
34 CHARACTER*(*) foot
35 INTEGER myThid
36 CEOP
37
38 C !LOCAL VARIABLES:
39 C.d msgBuf - Buffer for building output string
40 C.d lBuf - Buffer for length
41 C.d. I0 - Temps used in calculating string length
42 C I1
43 C. IL
44 CHARACTER*(MAX_LEN_MBUF) msgBuf
45 INTEGER lBuf
46 INTEGER I0, I1, IL
47 C.
48
49 msgBuf = ' '
50 lBuf = 0
51
52 I0 = IFNBLNK(mon_head)
53 I1 = ILNBLNK(mon_head)
54 IL = I1-I0+1
55 IF ( IL .GT. 0 .AND. lBuf+IL+1 .LE. MAX_LEN_MBUF ) THEN
56 msgBuf(1:IL) = mon_head
57 lBuf = IL+1
58 msgBuf(lBuf:lBuf) = ' '
59 ENDIF
60
61 IF ( mon_pref(1:mon_prefL) .NE. mon_string_none .AND.
62 & lBuf+mon_prefL+1 .LE. MAX_LEN_MBUF ) THEN
63 lBuf = lBuf+1
64 msgBuf(lBuf:lBuf+mon_prefL-1) = mon_pref(1:mon_prefL)
65 lBuf = lBuf+mon_prefL-1
66 ENDIF
67
68 I0 = IFNBLNK(pref)
69 I1 = ILNBLNK(pref)
70 IL = I1-I0+1
71 IF ( IL .GT. 0 ) THEN
72 IF ( pref(I0:I1) .NE. mon_string_none .AND.
73 & lBuf+IL+1 .LE. MAX_LEN_MBUF ) THEN
74 lBuf = lBuf+1
75 msgBuf(lBuf:lBuf+IL-1) = pref(I0:I1)
76 lBuf = lBuf+IL-1
77 ENDIF
78 ENDIF
79
80 I0 = IFNBLNK(foot)
81 I1 = ILNBLNK(foot)
82 IL = I1-I0+1
83 IF ( IL .GT. 0 ) THEN
84 IF ( foot(I0:I1) .NE. mon_string_none .AND.
85 & lBuf+IL+1 .LE. MAX_LEN_MBUF ) THEN
86 lBuf = lBuf+1
87 msgBuf(lBuf:lBuf+IL-1) = foot(I0:I1)
88 lBuf = lBuf+IL-1
89 ENDIF
90 ENDIF
91
92 msgBuf(35:35) = '='
93
94 _BEGIN_MASTER(myThid)
95 #ifdef ALLOW_USE_MPI
96 IF ( .NOT. useSingleCPUIO .OR. mpiMyId .EQ. 0 ) THEN
97 #endif /* ALLOW_USE_MPI */
98 WRITE(msgBuf(36:57),'(1X,I21)') value
99 CALL PRINT_MESSAGE( msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1 )
100 #ifdef ALLOW_USE_MPI
101 ENDIF
102 #endif /* ALLOW_USE_MPI */
103 _END_MASTER()
104
105 RETURN
106 END
107
108 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
109
110 SUBROUTINE MON_OUT_RS(pref, value, foot, myThid )
111 C.sh /==========================================================\
112 C | SUBROUTINE MON_OUT_RS |
113 C | o Formatted RS I/O for monitor print out. |
114 C. \==========================================================/
115 IMPLICIT NONE
116
117 C.gd === Global data ===
118 #include "SIZE.h"
119 #include "EEPARAMS.h"
120 #include "PARAMS.h"
121 #include "EESUPPORT.h"
122 #include "MONITOR.h"
123 EXTERNAL IFNBLNK
124 INTEGER IFNBLNK
125 EXTERNAL ILNBLNK
126 INTEGER ILNBLNK
127 INTEGER myThid
128 C.
129
130 C.ra === Routine arguments ===
131 C.d pref - Field prefix ( ignored if == mon_string_none )
132 C.d value - Value to print
133 C.d foot - Field suffix ( ignored if == mon_string_none )
134 CHARACTER*(*) pref
135 _RS value
136 CHARACTER*(*) foot
137 C.
138
139 C.lv === Local variables ===
140 C.d msgBuf - Buffer for building output string
141 C.d lBuf - Buffer for length
142 C.d. I0 - Temps used in calculating string length
143 C I1
144 C. IL
145 CHARACTER*(MAX_LEN_MBUF) msgBuf
146 INTEGER lBuf
147 INTEGER I0, I1, IL
148 C.
149
150 msgBuf = ' '
151 lBuf = 0
152
153 I0 = IFNBLNK(mon_head)
154 I1 = ILNBLNK(mon_head)
155 IL = I1-I0+1
156 IF ( IL .GT. 0 .AND. lBuf+IL+1 .LE. MAX_LEN_MBUF ) THEN
157 msgBuf(1:IL) = mon_head
158 lBuf = IL+1
159 msgBuf(lBuf:lBuf) = ' '
160 ENDIF
161
162 IF ( mon_pref(1:mon_prefL) .NE. mon_string_none .AND.
163 & lBuf+mon_prefL+1 .LE. MAX_LEN_MBUF ) THEN
164 lBuf = lBuf+1
165 msgBuf(lBuf:lBuf+mon_prefL-1) = mon_pref(1:mon_prefL)
166 lBuf = lBuf+mon_prefL-1
167 ENDIF
168
169 I0 = IFNBLNK(pref)
170 I1 = ILNBLNK(pref)
171 IL = I1-I0+1
172 IF ( IL .GT. 0 ) THEN
173 IF ( pref(I0:I1) .NE. mon_string_none .AND.
174 & lBuf+IL+1 .LE. MAX_LEN_MBUF ) THEN
175 lBuf = lBuf+1
176 msgBuf(lBuf:lBuf+IL-1) = pref(I0:I1)
177 lBuf = lBuf+IL-1
178 ENDIF
179 ENDIF
180
181 I0 = IFNBLNK(foot)
182 I1 = ILNBLNK(foot)
183 IL = I1-I0+1
184 IF ( IL .GT. 0 ) THEN
185 IF ( foot(I0:I1) .NE. mon_string_none .AND.
186 & lBuf+IL+1 .LE. MAX_LEN_MBUF ) THEN
187 lBuf = lBuf+1
188 msgBuf(lBuf:lBuf+IL-1) = foot(I0:I1)
189 lBuf = lBuf+IL-1
190 ENDIF
191 ENDIF
192
193 msgBuf(35:35) = '='
194
195 _BEGIN_MASTER(myThid)
196 #ifdef ALLOW_USE_MPI
197 IF ( .NOT. useSingleCPUIO .OR. mpiMyId .EQ. 0 ) THEN
198 #endif /* ALLOW_USE_MPI */
199 WRITE(msgBuf(36:57),'(1X,1P1E21.13)') value
200 CALL PRINT_MESSAGE( msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1 )
201 #ifdef ALLOW_USE_MPI
202 ENDIF
203 #endif /* ALLOW_USE_MPI */
204 _END_MASTER()
205
206 RETURN
207 END
208 SUBROUTINE MON_OUT_RL(pref, value, foot, myThid )
209 C.sh /==========================================================\
210 C | SUBROUTINE MON_OUT_RL |
211 C | o Formatted RL I/O for monitor print out. |
212 C. \==========================================================/
213 IMPLICIT NONE
214
215 C.gd === Global data ===
216 #include "SIZE.h"
217 #include "EEPARAMS.h"
218 #include "PARAMS.h"
219 #include "EESUPPORT.h"
220 #include "MONITOR.h"
221 EXTERNAL IFNBLNK
222 INTEGER IFNBLNK
223 EXTERNAL ILNBLNK
224 INTEGER ILNBLNK
225 C.
226
227 C.ra === Routine arguments ===
228 C.d pref - Field prefix ( ignored if == mon_string_none )
229 C.d value - Value to print
230 C.d foot - Field suffix ( ignored if == mon_string_none )
231 CHARACTER*(*) pref
232 _RL value
233 CHARACTER*(*) foot
234 INTEGER myThid
235 C.
236
237 C.lv === Local variables ===
238 C.d msgBuf - Buffer for building output string
239 C.d lBuf - Buffer for length
240 C.d. I0 - Temps used in calculating string length
241 C I1
242 C. IL
243 CHARACTER*(MAX_LEN_MBUF) msgBuf
244 INTEGER lBuf
245 INTEGER I0, I1, IL
246 C.
247
248 msgBuf = ' '
249 lBuf = 0
250
251 I0 = IFNBLNK(mon_head)
252 I1 = ILNBLNK(mon_head)
253 IL = I1-I0+1
254 IF ( IL .GT. 0 .AND. lBuf+IL+1 .LE. MAX_LEN_MBUF ) THEN
255 msgBuf(1:IL) = mon_head
256 lBuf = IL+1
257 msgBuf(lBuf:lBuf) = ' '
258 ENDIF
259
260 IF ( mon_pref(1:mon_prefL) .NE. mon_string_none .AND.
261 & lBuf+mon_prefL+1 .LE. MAX_LEN_MBUF ) THEN
262 lBuf = lBuf+1
263 msgBuf(lBuf:lBuf+mon_prefL-1) = mon_pref(1:mon_prefL)
264 lBuf = lBuf+mon_prefL-1
265 ENDIF
266
267 I0 = IFNBLNK(pref)
268 I1 = ILNBLNK(pref)
269 IL = I1-I0+1
270 IF ( IL .GT. 0 ) THEN
271 IF ( pref(I0:I1) .NE. mon_string_none .AND.
272 & lBuf+IL+1 .LE. MAX_LEN_MBUF ) THEN
273 lBuf = lBuf+1
274 msgBuf(lBuf:lBuf+IL-1) = pref(I0:I1)
275 lBuf = lBuf+IL-1
276 ENDIF
277 ENDIF
278
279 I0 = IFNBLNK(foot)
280 I1 = ILNBLNK(foot)
281 IL = I1-I0+1
282 IF ( IL .GT. 0 ) THEN
283 IF ( foot(I0:I1) .NE. mon_string_none .AND.
284 & lBuf+IL+1 .LE. MAX_LEN_MBUF ) THEN
285 lBuf = lBuf+1
286 msgBuf(lBuf:lBuf+IL-1) = foot(I0:I1)
287 lBuf = lBuf+IL-1
288 ENDIF
289 ENDIF
290
291 msgBuf(35:35) = '='
292
293 _BEGIN_MASTER(myThid)
294 #ifdef ALLOW_USE_MPI
295 IF ( .NOT. useSingleCPUIO .OR. mpiMyId .EQ. 0 ) THEN
296 #endif /* ALLOW_USE_MPI */
297 WRITE(msgBuf(36:57),'(1X,1P1E21.13)') value
298 CALL PRINT_MESSAGE( msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1 )
299 #ifdef ALLOW_USE_MPI
300 ENDIF
301 #endif /* ALLOW_USE_MPI */
302 _END_MASTER()
303
304 RETURN
305 END

  ViewVC Help
Powered by ViewVC 1.1.22