/[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.4 - (show annotations) (download)
Sat Jan 10 00:48:49 2004 UTC (20 years, 5 months ago) by dimitri
Branch: MAIN
CVS Tags: checkpoint52l_pre, hrcube4, hrcube5, checkpoint52j_pre, checkpoint52l_post, checkpoint52k_post, checkpoint52i_pre, hrcube_1, hrcube_2, hrcube_3, checkpoint52i_post, checkpoint52h_pre, checkpoint52j_post
Changes since 1.3: +31 -7 lines
o added useSingleCPUIO flag to monitor.F and mon_out.F

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

  ViewVC Help
Powered by ViewVC 1.1.22