/[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.19 - (show annotations) (download)
Sun Dec 24 20:20:59 2006 UTC (17 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint58u_post, checkpoint58w_post, checkpoint58x_post, checkpoint58t_post, checkpoint59e, checkpoint59d, checkpoint59f, checkpoint59a, checkpoint59c, checkpoint59b, checkpoint59, checkpoint58y_post, checkpoint58v_post
Changes since 1.18: +11 -5 lines
minor changes (when vert.interp is used, p-levels magnitude is larger)

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

  ViewVC Help
Powered by ViewVC 1.1.22