/[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.4 - (hide 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 dimitri 1.4 C $Header: /usr/local/gcmpack/MITgcm/pkg/monitor/mon_out.F,v 1.3 2003/05/13 18:18:05 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 dimitri 1.4 #include "PARAMS.h"
17     #include "EESUPPORT.h"
18 cnh 1.1 #include "MONITOR.h"
19     EXTERNAL IFNBLNK
20     INTEGER IFNBLNK
21     EXTERNAL ILNBLNK
22     INTEGER ILNBLNK
23 adcroft 1.2 INTEGER myThid
24 cnh 1.1 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 adcroft 1.2 _BEGIN_MASTER(myThid)
92 dimitri 1.4 #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 adcroft 1.2 _END_MASTER()
101 cnh 1.1
102     RETURN
103     END
104 adcroft 1.2 SUBROUTINE MON_OUT_RS(pref, value, foot, myThid )
105 cnh 1.1 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 dimitri 1.4 #include "PARAMS.h"
115     #include "EESUPPORT.h"
116 cnh 1.1 #include "MONITOR.h"
117     EXTERNAL IFNBLNK
118     INTEGER IFNBLNK
119     EXTERNAL ILNBLNK
120     INTEGER ILNBLNK
121 adcroft 1.2 INTEGER myThid
122 cnh 1.1 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 adcroft 1.2 _BEGIN_MASTER(myThid)
190 dimitri 1.4 #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 adcroft 1.2 _END_MASTER()
199 cnh 1.1
200     RETURN
201     END
202 adcroft 1.2 SUBROUTINE MON_OUT_RL(pref, value, foot, myThid )
203 cnh 1.1 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 dimitri 1.4 #include "PARAMS.h"
213     #include "EESUPPORT.h"
214 cnh 1.1 #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 adcroft 1.2 INTEGER myThid
229 cnh 1.1 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 adcroft 1.2 _BEGIN_MASTER(myThid)
288 dimitri 1.4 #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 adcroft 1.2 _END_MASTER()
297 cnh 1.1
298     RETURN
299     END

  ViewVC Help
Powered by ViewVC 1.1.22