/[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.24 - (show annotations) (download)
Mon Jan 11 19:44:07 2010 UTC (14 years, 8 months ago) by jmc
Branch: MAIN
Changes since 1.23: +19 -8 lines
update printed message (writing vertical integral case)

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

  ViewVC Help
Powered by ViewVC 1.1.22