/[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.2 - (show annotations) (download)
Mon Jun 25 20:35:23 2001 UTC (22 years, 11 months ago) by adcroft
Branch: MAIN
CVS Tags: checkpoint46n_post, checkpoint47e_post, checkpoint44e_post, checkpoint46l_post, checkpoint46g_pre, checkpoint47c_post, release1_p13_pre, checkpoint50c_post, checkpoint46f_post, checkpoint48e_post, checkpoint50c_pre, checkpoint44f_post, checkpoint46b_post, checkpoint43a-release1mods, ecco_c50_e32, ecco_c50_e33, ecco_c50_e30, ecco_c50_e31, release1_p13, checkpoint40pre3, checkpoint40pre1, checkpoint40pre7, checkpoint40pre6, checkpoint48i_post, checkpoint40pre9, checkpoint40pre8, checkpoint46l_pre, chkpt44d_post, checkpoint50, release1_p8, release1_p9, checkpoint50d_post, release1_p1, release1_p2, release1_p3, release1_p4, release1_p5, release1_p6, release1_p7, checkpoint50b_pre, checkpoint44e_pre, release1_b1, checkpoint48b_post, checkpoint43, checkpoint48c_pre, checkpoint47d_pre, release1_chkpt44d_post, checkpoint47a_post, checkpoint48d_pre, checkpoint47i_post, release1_p11, checkpoint47d_post, icebear5, icebear4, icebear3, icebear2, checkpoint46d_pre, checkpoint40pre2, checkpoint48d_post, release1-branch_tutorials, checkpoint48f_post, checkpoint45d_post, checkpoint46j_pre, chkpt44a_post, checkpoint44h_pre, checkpoint48h_post, checkpoint40pre4, ecco_c50_e29, checkpoint46a_post, checkpoint47g_post, checkpoint46j_post, checkpoint46k_post, ecco_c50_e28, chkpt44c_pre, checkpoint48a_post, checkpoint45a_post, checkpoint50a_post, ecco_c44_e19, ecco_c44_e18, ecco_c44_e17, ecco_c44_e16, release1_p12, release1_p10, release1_p16, release1_p17, release1_p14, release1_p15, checkpoint47j_post, ecco_c50_e33a, branch-exfmods-tag, checkpoint44g_post, checkpoint46e_pre, checkpoint48c_post, checkpoint45b_post, checkpoint46b_pre, release1-branch-end, release1_final_v1, checkpoint46c_pre, checkpoint46, checkpoint47b_post, checkpoint44b_post, checkpoint46h_pre, checkpoint46m_post, checkpoint46a_pre, checkpoint45c_post, ecco_ice2, ecco_ice1, checkpoint44h_post, checkpoint46g_post, release1_p12_pre, ecco_c44_e22, ecco_c44_e25, checkpoint40pre5, checkpoint47f_post, chkpt44a_pre, checkpoint46i_post, ecco_c44_e23, ecco_c44_e20, ecco_c44_e21, ecco_c44_e26, ecco_c44_e27, ecco_c44_e24, checkpoint46c_post, ecco-branch-mod1, ecco-branch-mod2, ecco-branch-mod3, ecco-branch-mod4, ecco-branch-mod5, checkpoint50d_pre, checkpoint46e_post, release1_beta1, checkpoint44b_pre, checkpoint42, checkpoint40, checkpoint41, checkpoint47, checkpoint44, checkpoint45, checkpoint48, checkpoint49, checkpoint46h_post, chkpt44c_post, checkpoint48g_post, checkpoint47h_post, checkpoint44f_pre, checkpoint46d_post, checkpoint50b_post, release1-branch_branchpoint
Branch point for: c24_e25_ice, branch-exfmods-curt, release1_final, release1-branch, release1, ecco-branch, release1_50yr, icebear, release1_coupled
Changes since 1.1: +15 -7 lines
Fixes for multi-threaded code: someone (who shall remain unnamed) broke
"monitor" by removing the _MASTER_THID() stuff around the I/O. I've
put it back in the appropriate place. In the meantime, I hope Chris
(oops) feels ashamed for not adhering to his own rules about passing
myThid around...   A.

1 C $Header: /u/gcmpack/models/MITgcmUV/pkg/monitor/mon_out.F,v 1.1 2001/06/18 17:39:59 cnh Exp $
2 C $Name: $
3
4 #include "CPP_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