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

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

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


Revision 1.2 - (hide 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 adcroft 1.2 C $Header: /u/gcmpack/models/MITgcmUV/pkg/monitor/mon_out.F,v 1.1 2001/06/18 17:39:59 cnh Exp $
2 cnh 1.1 C $Name: $
3    
4     #include "CPP_OPTIONS.h"
5    
6 adcroft 1.2 SUBROUTINE MON_OUT_I(pref, value, foot, myThid )
7 cnh 1.1 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 adcroft 1.2 INTEGER myThid
22 cnh 1.1 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 adcroft 1.2 _BEGIN_MASTER(myThid)
90 cnh 1.1 WRITE(msgBuf(36:57),'(1X,I21)') value
91     CALL PRINT_MESSAGE( msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1 )
92 adcroft 1.2 _END_MASTER()
93 cnh 1.1
94     RETURN
95     END
96 adcroft 1.2 SUBROUTINE MON_OUT_RS(pref, value, foot, myThid )
97 cnh 1.1 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 adcroft 1.2 INTEGER myThid
112 cnh 1.1 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 adcroft 1.2 _BEGIN_MASTER(myThid)
180 cnh 1.1 WRITE(msgBuf(36:57),'(1X,1P1E21.13)') value
181 adcroft 1.2 CALL PRINT_MESSAGE( msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1 )
182     _END_MASTER()
183 cnh 1.1
184     RETURN
185     END
186 adcroft 1.2 SUBROUTINE MON_OUT_RL(pref, value, foot, myThid )
187 cnh 1.1 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 adcroft 1.2 INTEGER myThid
211 cnh 1.1 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 adcroft 1.2 _BEGIN_MASTER(myThid)
270 cnh 1.1 WRITE(msgBuf(36:57),'(1X,1P1E21.13)') value
271 adcroft 1.2 CALL PRINT_MESSAGE( msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1 )
272     _END_MASTER()
273 cnh 1.1
274     RETURN
275     END

  ViewVC Help
Powered by ViewVC 1.1.22