/[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.3 - (show annotations) (download)
Tue May 13 18:18:05 2003 UTC (21 years ago) by adcroft
Branch: MAIN
CVS Tags: checkpoint51k_post, checkpoint52d_pre, checkpoint51o_pre, checkpoint51l_post, checkpoint51, checkpoint52, checkpoint52f_post, checkpoint51f_post, checkpoint51d_post, checkpoint51t_post, checkpoint51n_post, checkpoint51s_post, checkpoint51j_post, checkpoint52e_pre, checkpoint52e_post, checkpoint51n_pre, checkpoint52b_pre, checkpoint51l_pre, checkpoint51q_post, checkpoint51b_pre, checkpoint52b_post, checkpoint52c_post, checkpoint51h_pre, checkpoint50f_post, checkpoint50f_pre, checkpoint52f_pre, branchpoint-genmake2, checkpoint51r_post, checkpoint51i_post, checkpoint51b_post, checkpoint51c_post, checkpoint52d_post, checkpoint50g_post, checkpoint52a_pre, checkpoint50h_post, checkpoint50e_pre, checkpoint50i_post, checkpoint51i_pre, checkpoint50e_post, branch-netcdf, checkpoint51e_post, checkpoint51o_post, checkpoint51f_pre, checkpoint52a_post, checkpoint51g_post, ecco_c52_e35, checkpoint51m_post, checkpoint51a_post, checkpoint51p_post, checkpoint51u_post
Branch point for: branch-genmake2, branch-nonh, tg2-branch, netcdf-sm0, checkpoint51n_branch
Changes since 1.2: +2 -2 lines
 o split mon_set.F into mon_set_iounit.F and mon_set_pref.F
 o replaced ref's to CPP_OPTIONS with MONITOR_OPTIONS
 o added new s/r monitor_solution.F that checks that model state
   and if unlikely lets the model die cleanly
   - this is to reduce the number of hanging processes we encounter
     if the model dies due to FPEs

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

  ViewVC Help
Powered by ViewVC 1.1.22