/[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.3 - (hide 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 adcroft 1.3 C $Header: /u/gcmpack/models/MITgcmUV/pkg/monitor/mon_out.F,v 1.2 2001/06/25 20:35:23 adcroft Exp $
2 cnh 1.1 C $Name: $
3    
4 adcroft 1.3 #include "MONITOR_OPTIONS.h"
5 cnh 1.1
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