/[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.25 - (show annotations) (download)
Fri Jan 15 00:24:37 2010 UTC (14 years, 4 months ago) by jmc
Branch: MAIN
Changes since 1.24: +4 -3 lines
add internal flag to check if adding diag to the list from the right place.

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

  ViewVC Help
Powered by ViewVC 1.1.22