/[MITgcm]/MITgcm/pkg/diagnostics/diagnostics_readparms.F
ViewVC logotype

Contents of /MITgcm/pkg/diagnostics/diagnostics_readparms.F

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


Revision 1.15 - (show annotations) (download)
Mon Jan 23 22:24:28 2006 UTC (18 years, 4 months ago) by jmc
Branch: MAIN
Changes since 1.14: +66 -8 lines
add options and parameters for regional-statistics diagnostics

1 C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagnostics_readparms.F,v 1.14 2005/07/06 02:13:52 edhill Exp $
2 C $Name: $
3
4 #include "DIAG_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7 CBOP 0
8 C !ROUTINE: DIAGNOSTICS_READPARMS
9
10 C !INTERFACE:
11 SUBROUTINE DIAGNOSTICS_READPARMS(myThid)
12
13 C !DESCRIPTION:
14 C Read Diagnostics Namelists to specify output sequence.
15
16 C !USES:
17 IMPLICIT NONE
18 #include "SIZE.h"
19 #include "EEPARAMS.h"
20 #include "PARAMS.h"
21 #include "DIAGNOSTICS_SIZE.h"
22 #include "DIAGNOSTICS.h"
23 #include "DIAGSTATS_REGIONS.h"
24
25 C !INPUT PARAMETERS:
26 INTEGER myThid
27 CEOP
28
29 C !LOCAL VARIABLES:
30 C ldimLoc :: Max Number of Lists (in data.diagnostics)
31 C kdimLoc :: Max Number of Levels (in data.diagnostics)
32 C fdimLoc :: Max Number of Fields (in data.diagnostics)
33 C frequency :: Frequency (in s) of Output (ouput every "frequency" second)
34 C timePhase :: phase (in s) within the "frequency" period to write output
35 C levels :: List Output Levels
36 C fields :: List Output Fields
37 C filename :: List Output Filename
38 C-- for regional-statistics
39 C lev_regMask(n) :: region-mask levels that define the region "n"
40 C val_regMask(n) :: corresponding mask value of region "n" in the region-mask
41 C-- per level statistics output:
42 C stat_freq :: Frequency (in s) of statistics output
43 C stat_phase :: phase (in s) to write statistics output
44 C stat_region :: List of statistics output Regions
45 C stat_fields :: List of statistics output Fields
46 C stat_fname :: List of statistics output Filename
47 INTEGER ldimLoc, kdimLoc, fdimLoc, rdimLoc
48 PARAMETER ( ldimLoc = 2*numlists )
49 PARAMETER ( kdimLoc = 2*numLevels )
50 PARAMETER ( fdimLoc = 2*numperlist )
51 PARAMETER ( rdimLoc = nRegions+21 )
52 _RL frequency(ldimLoc), timePhase(ldimLoc)
53 _RL levels(kdimLoc,ldimLoc)
54 _RL stat_freq(ldimLoc), stat_phase(ldimLoc)
55 CHARACTER*8 fields(fdimLoc,ldimLoc)
56 CHARACTER*8 stat_fields(fdimLoc,ldimLoc)
57 CHARACTER*80 filename(ldimLoc), blkFilName
58 CHARACTER*80 stat_fname(ldimLoc)
59 CHARACTER*8 fileflags(ldimLoc)
60 CHARACTER*8 blk8c
61 CHARACTER*(MAX_LEN_MBUF) msgBuf
62 INTEGER stat_region(rdimLoc,ldimLoc)
63 INTEGER lev_regMask(rdimLoc)
64 _RS val_regMask(rdimLoc)
65 INTEGER ku, stdUnit
66 INTEGER j,k,l,n,m
67 INTEGER iLen, regionCount
68 _RL undef, getcon
69 INTEGER ILNBLNK
70 EXTERNAL ILNBLNK
71
72 C-- full level output:
73 NAMELIST / diagnostics_list /
74 & frequency, timePhase, levels, fields, filename, fileflags,
75 & dumpatlast, diag_mnc,
76 & diag_pickup_read, diag_pickup_write,
77 & diag_pickup_read_mnc, diag_pickup_write_mnc
78
79 C-- per level statistics output:
80 NAMELIST / DIAG_STATIS_PARMS /
81 & stat_freq, stat_phase, stat_region, stat_fields,
82 & stat_fname, diagSt_mnc,
83 & lev_regMask, val_regMask,
84 & diagSt_regMaskFile, nLevRegMskFile
85
86 C Initialize and Read Diagnostics Namelist
87 _BEGIN_MASTER(myThid)
88
89 undef = getcon('UNDEF')
90 blk8c = ' '
91 DO k=1,LEN(blkFilName)
92 blkFilName(k:k) = ' '
93 ENDDO
94
95 DO l = 1,ldimLoc
96 frequency(l) = 0.
97 timePhase(l) = UNSET_RL
98 filename (l) = blkFilName
99 C eight spaces: 12345678
100 fileflags(l)(1:8) = ' '
101 DO k = 1,kdimLoc
102 levels (k,l) = undef
103 ENDDO
104 DO m = 1,fdimLoc
105 fields (m,l) = blk8c
106 ENDDO
107 ENDDO
108 dumpatlast = .FALSE.
109 diag_mnc = useMNC
110 diag_pickup_read = .FALSE.
111 diag_pickup_write = .FALSE.
112 diag_pickup_read_mnc = .FALSE.
113 diag_pickup_write_mnc = .FALSE.
114
115 diagSt_regMaskFile = ' '
116 nLevRegMskFile = 0
117 DO k = 1,rdimLoc
118 lev_regMask(k) = 0
119 val_regMask(k) = 0.
120 ENDDO
121 DO l = 1,ldimLoc
122 stat_freq(l) = 0.
123 stat_phase(l) = UNSET_RL
124 stat_fname(l) = blkFilName
125 DO k = 1,rdimLoc
126 stat_region(k,l) = UNSET_I
127 ENDDO
128 DO m = 1,fdimLoc
129 stat_fields(m,l) = blk8c
130 ENDDO
131 ENDDO
132
133 WRITE(msgBuf,'(2A)')
134 & ' DIAGNOSTICS_READPARMS: opening data.diagnostics'
135 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,SQUEEZE_RIGHT,1)
136
137 CALL OPEN_COPY_DATA_FILE('data.diagnostics',
138 & 'DIAGNOSTICS_READPARMS', ku, myThid )
139
140 WRITE(msgBuf,'(2A)') 'S/R DIAGNOSTICS_READPARMS,',
141 & ' read namelist "diagnostics_list": start'
142 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
143 & SQUEEZE_RIGHT , 1)
144 READ (ku,NML=diagnostics_list)
145 WRITE(msgBuf,'(2A)') 'S/R DIAGNOSTICS_READPARMS,',
146 & ' read namelist "diagnostics_list": OK'
147 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
148 & SQUEEZE_RIGHT , 1)
149
150 C- set default for statistics output according to the main flag
151 diag_mnc = diag_mnc .AND. useMNC
152 diagSt_mnc = diag_mnc
153
154 WRITE(msgBuf,'(2A)') 'S/R DIAGNOSTICS_READPARMS,',
155 & ' read namelist "DIAG_STATIS_PARMS": start'
156 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
157 & SQUEEZE_RIGHT , 1)
158 READ (ku,NML=DIAG_STATIS_PARMS)
159 WRITE(msgBuf,'(2A)') 'S/R DIAGNOSTICS_READPARMS,',
160 & ' read namelist "DIAG_STATIS_PARMS": OK'
161 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
162 & SQUEEZE_RIGHT , 1)
163
164 CLOSE (ku)
165
166 C Initialise diag_choices common block (except pointers)
167 nlists = 0
168 DO n = 1,numlists
169 freq(n) = 0.
170 phase(n) = 0.
171 nlevels(n) = 0
172 nfields(n) = 0
173 fnames(n) = blkFilName
174 DO k = 1,numLevels
175 levs(k,n) = 0
176 ENDDO
177 DO m = 1,numperlist
178 flds(m,n) = blk8c
179 ENDDO
180 ENDDO
181
182 C useMNC is confusing (can be T at this point & turned off later, whereas
183 C for all other pkgs, model stops if use${PKG}= T with #undef ALLOW_${PKG})
184 #ifndef ALLOW_MNC
185 C Fix to avoid running without getting any output:
186 diag_mnc = .FALSE.
187 diagSt_mnc = .FALSE.
188 #endif
189
190 C Fill Diagnostics Common Block with Namelist Info
191 diagSt_mnc = diagSt_mnc .AND. useMNC
192 diag_mdsio = (.NOT. diag_mnc) .OR. outputTypesInclusive
193 diag_pickup_read_mnc = diag_pickup_read_mnc .AND. diag_mnc
194 diag_pickup_write_mnc = diag_pickup_write_mnc .AND. diag_mnc
195 diag_pickup_read_mdsio =
196 & diag_pickup_read .AND. (.NOT. diag_pickup_read_mnc)
197 diag_pickup_write_mdsio = diag_pickup_write .AND.
198 & ((.NOT. diag_pickup_write_mnc) .OR. outputTypesInclusive)
199 diagSt_ascii = (.NOT. diagSt_mnc) .OR. outputTypesInclusive
200
201 DO l = 1,ldimLoc
202 iLen = ILNBLNK(filename(l))
203 C- Only lists with non-empty file name (iLen>0) are considered
204 IF ( iLen.GE.1 .AND. nlists.LT.numlists ) THEN
205 n = nlists + 1
206 freq(n) = frequency(l)
207 IF ( timePhase(l).NE. UNSET_RL ) THEN
208 phase(n) = timePhase(l)
209 ELSEIF ( frequency(l) .LT. 0. ) THEN
210 phase(n) = -0.5 _d 0 * frequency(l)
211 ENDIF
212 fnames(n) = filename (l)
213 fflags(n) = fileflags(l)
214 nlevels(n) = 0
215 IF ( levels(1,l).NE.undef ) THEN
216 DO k=1,kdimLoc
217 IF ( levels(k,l).NE.undef .AND.
218 & nlevels(n).LT.numLevels ) THEN
219 nlevels(n) = nlevels(n) + 1
220 levs(nlevels(n),n) = levels(k,l)
221 ELSEIF ( levels(k,l).NE.undef ) THEN
222 WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',
223 & 'Exceed Max.Num. of Levels numLevels=', numLevels
224 CALL PRINT_ERROR( msgBuf , myThid )
225 WRITE(msgBuf,'(2A,I3,A,F3.0)') 'DIAGNOSTICS_READPARMS: ',
226 & 'when trying to add level(k=', k, ' )=', levels(k,l)
227 CALL PRINT_ERROR( msgBuf , myThid )
228 WRITE(msgBuf,'(2A,I3,2A)') 'DIAGNOSTICS_READPARMS: ',
229 & ' for list l=', l, ', filename: ', filename(l)
230 CALL PRINT_ERROR( msgBuf , myThid )
231 STOP 'ABNORMAL END: S/R DIAGNOSTICS_READPARMS'
232 ENDIF
233 ENDDO
234 ELSE
235 C- will set levels later, once the Nb of levels of each diag is known
236 nlevels(n) = -1
237 ENDIF
238 nfields(n) = 0
239 DO m=1,fdimLoc
240 IF ( fields(m,l).NE.blk8c .AND.
241 & nfields(n).LT.numperlist ) THEN
242 nfields(n) = nfields(n) + 1
243 flds(nfields(n),n) = fields(m,l)
244 ELSEIF ( fields(m,l).NE.blk8c ) THEN
245 WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',
246 & 'Exceed Max.Num. of Fields/list numperlist=', numperlist
247 CALL PRINT_ERROR( msgBuf , myThid )
248 WRITE(msgBuf,'(2A,I3,3A,I3,2A)') 'DIAGNOSTICS_READPARMS: ',
249 & 'when trying to add field (m=', m, ' ): ',fields(m,l)
250 CALL PRINT_ERROR( msgBuf , myThid )
251 WRITE(msgBuf,'(2A,I3,2A)') 'DIAGNOSTICS_READPARMS: ',
252 & ' in list l=', l, ', filename: ', filename(l)
253 CALL PRINT_ERROR( msgBuf , myThid )
254 STOP 'ABNORMAL END: S/R DIAGNOSTICS_READPARMS'
255 ENDIF
256 ENDDO
257 nlists = nlists + 1
258 c write(6,*) 'list summary:',n,nfields(n),nlevels(n)
259 ELSEIF ( iLen.GE.1 ) THEN
260 WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',
261 & 'Exceed Max.Num. of list numlists=', numlists
262 CALL PRINT_ERROR( msgBuf , myThid )
263 WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',
264 & 'when trying to add list l=', l
265 CALL PRINT_ERROR( msgBuf , myThid )
266 WRITE(msgBuf,'(2A,F17.6,2A)') 'DIAGNOSTICS_READPARMS: ',
267 & ' Frq=', frequency(l), ', filename: ', filename(l)
268 CALL PRINT_ERROR( msgBuf , myThid )
269 STOP 'ABNORMAL END: S/R DIAGNOSTICS_READPARMS'
270 ENDIF
271 ENDDO
272
273 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
274
275 C- Initialise DIAG_STATS_REGMASK common block (except the mask)
276 nLevRegMask = 0
277 DO j = 0,nRegions
278 diagSt_kRegMsk(j) = 0
279 diagSt_vRegMsk(j) = 0.
280 ENDDO
281 C Global statistics (region # 0)
282 diagSt_kRegMsk(0) = 1
283
284 C- Initialise DIAG_STATIS common block (except pointers)
285 diagSt_nbLists = 0
286 DO n = 1,numlists
287 diagSt_freq(n) = 0.
288 diagSt_phase(n) = 0.
289 diagSt_nbFlds(n) = 0
290 diagSt_ioUnit(n) = 0
291 diagSt_Fname(n) = blkFilName
292 DO j = 0,nRegions
293 diagSt_region(j,n) = 0
294 ENDDO
295 DO m = 1,numperlist
296 diagSt_Flds(m,n) = blk8c
297 ENDDO
298 ENDDO
299
300 C Fill Diagnostics Common Block with Namelist Info
301 diagSt_ascii = (.NOT. diagSt_mnc) .OR. outputTypesInclusive
302
303 C- Region mask correspondence table:
304 C note: this table should be build when regions are defined ;
305 C for now, simpler just to read it from namelist in data.diagnostics
306 j = 0
307 DO k = 1,rdimLoc
308 IF ( lev_regMask(k).NE.0 .OR. val_regMask(k).NE.0. ) THEN
309 j = j+1
310 IF ( j.LE.nRegions ) THEN
311 diagSt_kRegMsk(j) = lev_regMask(k)
312 diagSt_vRegMsk(j) = val_regMask(k)
313 ENDIF
314 ENDIF
315 ENDDO
316 IF ( j.GT.nRegions ) THEN
317 WRITE(msgBuf,'(2A,I3,A)') 'DIAGNOSTICS_READPARMS: ',
318 & 'lev_regMask & val_regMask lists assume at least',j,' regions'
319 CALL PRINT_ERROR( msgBuf , myThid )
320 WRITE(msgBuf,'(2A)') 'DIAGNOSTICS_READPARMS: ',
321 & 'Need to increase "nRegions" in DIAGNOSTICS_SIZE.h'
322 CALL PRINT_ERROR( msgBuf , myThid )
323 STOP 'ABNORMAL END: S/R DIAGNOSTICS_READPARMS'
324 ENDIF
325
326 DO l = 1,ldimLoc
327 iLen = ILNBLNK(stat_fname(l))
328 C- Only lists with non-empty file name (iLen>0) are considered
329 IF ( iLen.GE.1 .AND. diagSt_nbLists.LT.numlists)THEN
330 n = diagSt_nbLists + 1
331 diagSt_freq(n) = stat_freq(l)
332 IF ( stat_phase(l).NE. UNSET_RL ) THEN
333 diagSt_phase(n) = stat_phase(l)
334 ELSEIF ( stat_freq(l) .LT. 0. ) THEN
335 diagSt_phase(n) = -0.5 _d 0 * stat_freq(l)
336 ENDIF
337 diagSt_Fname(n) = stat_fname(l)
338 regionCount = 0
339 DO k=1,rdimLoc
340 j = stat_region(k,l)
341 IF ( j.NE.UNSET_I .AND. j.GE.0 .AND. j.LE.nRegions ) THEN
342 IF ( diagSt_region(j,n).EQ.0 ) THEN
343 diagSt_region(j,n) = 1
344 regionCount = regionCount + 1
345 ELSE
346 WRITE(msgBuf,'(2A,I3,2A)')
347 & 'DIAGNOSTICS_READPARMS:',
348 & ' in list l=', l, ', stat_fname: ', stat_fname(l)
349 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
350 & SQUEEZE_RIGHT , myThid )
351 WRITE(msgBuf,'(A,I3,A)')
352 & 'DIAGNOSTICS_READPARMS: region=',j,
353 & ' can only be selected once => ignore 2nd selection'
354 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
355 & SQUEEZE_RIGHT , myThid )
356 ENDIF
357 ELSEIF ( j.NE.UNSET_I ) THEN
358 WRITE(msgBuf,'(A,I3,A,I3,2A)')
359 & 'DIAGNOSTICS_READPARMS: region=',j,
360 & ' in list l=', l, ', stat_fname: ', stat_fname(l)
361 CALL PRINT_ERROR( msgBuf , myThid )
362 WRITE(msgBuf,'(2A,I3,A,I3,2A)')
363 & 'DIAGNOSTICS_READPARMS: ==> exceed Max.Nb of regions',
364 & '(=',nRegions,' )'
365 CALL PRINT_ERROR( msgBuf , myThid )
366 STOP 'ABNORMAL END: S/R DIAGNOSTICS_READPARMS'
367 ENDIF
368 ENDDO
369 IF ( regionCount.EQ.0 ) THEN
370 C- no region selected => default is Global statistics (region Id: 0)
371 diagSt_region(0,n) = 1
372 ENDIF
373 diagSt_nbFlds(n) = 0
374 DO m=1,fdimLoc
375 IF ( stat_fields(m,l).NE.blk8c .AND.
376 & diagSt_nbFlds(n).LT.numperlist ) THEN
377 diagSt_nbFlds(n) = diagSt_nbFlds(n) + 1
378 diagSt_Flds(diagSt_nbFlds(n),n) = stat_fields(m,l)
379 ELSEIF ( stat_fields(m,l).NE.blk8c ) THEN
380 WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',
381 & 'Exceed Max.Num. of Fields/list numperlist=', numperlist
382 CALL PRINT_ERROR( msgBuf , myThid )
383 WRITE(msgBuf,'(2A,I3,3A,I3,2A)') 'DIAGNOSTICS_READPARMS: ',
384 & 'when trying to add stat_field (m=', m,
385 & ' ): ',stat_fields(m,l)
386 CALL PRINT_ERROR( msgBuf , myThid )
387 WRITE(msgBuf,'(2A,I3,2A)') 'DIAGNOSTICS_READPARMS: ',
388 & ' in list l=', l, ', stat_fname: ', stat_fname(l)
389 CALL PRINT_ERROR( msgBuf , myThid )
390 STOP 'ABNORMAL END: S/R DIAGNOSTICS_READPARMS'
391 ENDIF
392 ENDDO
393 diagSt_nbLists = diagSt_nbLists + 1
394 c write(6,*) 'stat-list summary:',n,diagSt_nbFlds(n),regionCount
395 ELSEIF ( iLen.GE.1 ) THEN
396 WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',
397 & 'Exceed Max.Num. of list numlists=', numlists
398 CALL PRINT_ERROR( msgBuf , myThid )
399 WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',
400 & 'when trying to add stat_list l=', l
401 CALL PRINT_ERROR( msgBuf , myThid )
402 WRITE(msgBuf,'(2A,F17.6,2A)') 'DIAGNOSTICS_READPARMS: ',
403 & ' Frq=', stat_freq(l), ', stat_fname: ', stat_fname(l)
404 CALL PRINT_ERROR( msgBuf , myThid )
405 STOP 'ABNORMAL END: S/R DIAGNOSTICS_READPARMS'
406 ENDIF
407 ENDDO
408
409 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
410 C Echo History List Data Structure
411 stdUnit = standardMessageUnit
412 WRITE(msgBuf,'(A)')
413 & '-----------------------------------------------------'
414 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
415 WRITE(msgBuf,'(A)')
416 & ' DIAGNOSTICS_READPARMS: active diagnostics summary:'
417 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
418 WRITE(msgBuf,'(A)')
419 & '-----------------------------------------------------'
420 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
421 DO n = 1,nlists
422 WRITE(msgBuf,'(2a)') 'Creating Output Stream: ',fnames(n)
423 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
424 WRITE(msgBuf,'(2(A,F17.6))') 'Frequency : ',freq(n),
425 & ' ; Phase: ', phase(n)
426 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
427 IF ( nlevels(n).EQ.-1 ) THEN
428 WRITE(msgBuf,'(A,A)') ' Levels: ','will be set later'
429 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
430 ELSE
431 DO l=1,nlevels(n),20
432 m = MIN(nlevels(n),l+19)
433 WRITE(msgBuf,'(A,20F5.0)') ' Levels: ', (levs(k,n),k=l,m)
434 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
435 ENDDO
436 ENDIF
437 WRITE(msgBuf,*) 'Fields: ',(' ',flds(l,n),l=1,nfields(n))
438 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
439 ENDDO
440 WRITE(msgBuf,'(A)')
441 & '-----------------------------------------------------'
442 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
443 WRITE(msgBuf,'(A)')
444 & ' DIAGNOSTICS_READPARMS: statistics diags. summary:'
445 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
446 DO n = 1,diagSt_nbLists
447 WRITE(msgBuf,'(2a)') 'Creating Stats. Output Stream: ',
448 & diagSt_Fname(n)
449 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
450 WRITE(msgBuf,'(2(A,F17.6))') 'Frequency : ',diagSt_freq(n),
451 & ' ; Phase: ', diagSt_phase(n)
452 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
453 WRITE(msgBuf,'(A)') ' Regions : '
454 l = 12
455 DO j=0,nRegions
456 IF ( diagSt_region(j,n).GE.1 ) THEN
457 IF (l+3.LE.MAX_LEN_MBUF) WRITE(msgBuf,'(A,I3)') msgBuf(1:l),j
458 l = l+3
459 ENDIF
460 ENDDO
461 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
462 WRITE(msgBuf,*) 'Fields: ',
463 & (' ',diagSt_Flds(l,n),l=1,diagSt_nbFlds(n))
464 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
465 ENDDO
466 WRITE(msgBuf,'(A)')
467 & '-----------------------------------------------------'
468 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
469 WRITE(msgBuf,'(A)')
470 CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
471
472 _END_MASTER(myThid)
473
474 RETURN
475 END

  ViewVC Help
Powered by ViewVC 1.1.22