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

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

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

revision 1.11 by molod, Tue Jun 14 22:30:02 2005 UTC revision 1.20 by jmc, Mon Aug 27 23:04:44 2007 UTC
# Line 20  C     !USES: Line 20  C     !USES:
20  #include "PARAMS.h"  #include "PARAMS.h"
21  #include "DIAGNOSTICS_SIZE.h"  #include "DIAGNOSTICS_SIZE.h"
22  #include "DIAGNOSTICS.h"  #include "DIAGNOSTICS.h"
23    #include "DIAGSTATS_REGIONS.h"
24    
25  C     !INPUT PARAMETERS:  C     !INPUT PARAMETERS:
26        INTEGER myThid        INTEGER myThid
27  CEOP  CEOP
28    
29  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
30  C     ldimLoc :: Max Number of Lists  C     ldimLoc :: Max Number of Lists  (in data.diagnostics)
31  C     kdimLoc :: Max Number of Levels  C     kdimLoc :: Max Number of Levels (in data.diagnostics)
32  C     fdimLoc :: Max Number of Fields  C     fdimLoc :: Max Number of Fields (in data.diagnostics)
33  C     frequency :: Frequency (in s) of Output (ouput every "frequency" second)  C     frequency :: Frequency (in s) of Output (ouput every "frequency" second)
34  C     timePhase :: phase (in s) within the "frequency" period to write output  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  C     levels    :: List Output Levels
39  C     fields    :: List Output Fields  C     fields    :: List Output Fields
40  C     filename  :: List Output Filename  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:  C--   per level statistics output:
45  C     stat_freq   :: Frequency (in s) of statistics output  C     stat_freq   :: Frequency (in s) of statistics output
46  C     stat_phase  :: phase (in s) to write statistics output  C     stat_phase  :: phase (in s) to write statistics output
47  C     stat_region :: List of statistics output Regions  C     stat_region :: List of statistics output Regions
48  C     stat_fields :: List of statistics output Fields  C     stat_fields :: List of statistics output Fields
# Line 44  C     stat_fname  :: List of statistics Line 51  C     stat_fname  :: List of statistics
51        PARAMETER ( ldimLoc = 2*numlists )        PARAMETER ( ldimLoc = 2*numlists )
52        PARAMETER ( kdimLoc = 2*numLevels )        PARAMETER ( kdimLoc = 2*numLevels )
53        PARAMETER ( fdimLoc = 2*numperlist )        PARAMETER ( fdimLoc = 2*numperlist )
54        PARAMETER ( rdimLoc = 2*nRegions+1 )        PARAMETER ( rdimLoc = nRegions+21 )
55        _RL         frequency(ldimLoc), timePhase(ldimLoc)        _RL         frequency(ldimLoc), timePhase(ldimLoc)
56          _RL         averagingFreq(ldimLoc), averagingPhase(ldimLoc)
57          INTEGER     repeatCycle(ldimLoc)
58        _RL         levels(kdimLoc,ldimLoc)        _RL         levels(kdimLoc,ldimLoc)
59        _RL         stat_freq(ldimLoc), stat_phase(ldimLoc)        _RL         stat_freq(ldimLoc), stat_phase(ldimLoc)
60        CHARACTER*8 fields(fdimLoc,ldimLoc)        CHARACTER*8 fields(fdimLoc,ldimLoc)
# Line 56  C     stat_fname  :: List of statistics Line 65  C     stat_fname  :: List of statistics
65        CHARACTER*8 blk8c        CHARACTER*8 blk8c
66        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
67        INTEGER stat_region(rdimLoc,ldimLoc)        INTEGER stat_region(rdimLoc,ldimLoc)
68          INTEGER set_regMask(rdimLoc)
69          _RS     val_regMask(rdimLoc)
70        INTEGER ku, stdUnit        INTEGER ku, stdUnit
71        INTEGER j,k,l,n,m        INTEGER j,k,l,n,m,nf
72        INTEGER regionCount        INTEGER iLen, regionCount
       _RL undef, getcon  
73        INTEGER  ILNBLNK        INTEGER  ILNBLNK
74        EXTERNAL ILNBLNK        EXTERNAL ILNBLNK
75    
76  C--   full level output:  C--   full level output:
77        NAMELIST / diagnostics_list /        NAMELIST / DIAGNOSTICS_LIST /
78       &     frequency, timePhase, levels, fields, filename, fileflags,       &     frequency, timePhase,
79       &     diag_mnc,       &     averagingFreq, averagingPhase, repeatCycle,
80         &     levels, fields, filename, fileflags,
81         &     dumpAtLast, diag_mnc,
82       &     diag_pickup_read,     diag_pickup_write,       &     diag_pickup_read,     diag_pickup_write,
83       &     diag_pickup_read_mnc, diag_pickup_write_mnc       &     diag_pickup_read_mnc, diag_pickup_write_mnc
84    
85  C--   per level statistics output:  C--   per level statistics output:
86        NAMELIST / DIAG_STATIS_PARMS /        NAMELIST / DIAG_STATIS_PARMS /
87       &     stat_freq, stat_phase, stat_region, stat_fields,       &     stat_freq, stat_phase, stat_region, stat_fields,
88       &     stat_fname,       &     stat_fname, diagSt_mnc,
89       &     diagSt_mnc       &     set_regMask, val_regMask,
90         &     diagSt_regMaskFile, nSetRegMskFile
91    
92  C     Initialize and Read Diagnostics Namelist  C     Initialize and Read Diagnostics Namelist
93        _BEGIN_MASTER(myThid)        _BEGIN_MASTER(myThid)
94    
       undef = getcon('UNDEF')  
95        blk8c  = '        '        blk8c  = '        '
96        DO k=1,LEN(blkFilName)        DO k=1,LEN(blkFilName)
97          blkFilName(k:k) = ' '          blkFilName(k:k) = ' '
98        ENDDO        ENDDO
99    
100        DO l = 1,ldimLoc        DO l = 1,ldimLoc
101          frequency(l) = 0.          frequency(l)  = 0.
102          timePhase(l) = UNSET_RL          timePhase(l)  = UNSET_RL
103          filename (l) = blkFilName          averagingFreq(l) = 0.
104            averagingPhase(l)= 0.
105            repeatCycle(l)   = 0
106            filename(l)   = blkFilName
107  C       eight spaces:        12345678  C       eight spaces:        12345678
108          fileflags(l)(1:8) = '        '  c       fileflags(l)(1:8) = '        '
109            fileflags(l)  = blk8c
110          DO k = 1,kdimLoc          DO k = 1,kdimLoc
111            levels (k,l) = undef            levels(k,l) = UNSET_RL
112          ENDDO          ENDDO
113          DO m = 1,fdimLoc          DO m = 1,fdimLoc
114            fields (m,l) = blk8c            fields(m,l) = blk8c
115          ENDDO          ENDDO
116        ENDDO        ENDDO
117        diag_mnc = useMNC        dumpAtLast            = .FALSE.
118          diag_mnc              = useMNC
119        diag_pickup_read      = .FALSE.        diag_pickup_read      = .FALSE.
120        diag_pickup_write     = .FALSE.        diag_pickup_write     = .FALSE.
121        diag_pickup_read_mnc  = .FALSE.        diag_pickup_read_mnc  = .FALSE.
122        diag_pickup_write_mnc = .FALSE.        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        DO l = 1,ldimLoc
131          stat_freq(l)  = 0.          stat_freq(l)  = 0.
132          stat_phase(l) = UNSET_RL          stat_phase(l) = UNSET_RL
# Line 141  C-    set default for statistics output Line 164  C-    set default for statistics output
164       &     ' read namelist "DIAG_STATIS_PARMS": start'       &     ' read namelist "DIAG_STATIS_PARMS": start'
165        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
166       &                    SQUEEZE_RIGHT , 1)       &                    SQUEEZE_RIGHT , 1)
 c     STOP 'before reading namelist: DIAG_STATIS_PARMS'  
167        READ  (ku,NML=DIAG_STATIS_PARMS)        READ  (ku,NML=DIAG_STATIS_PARMS)
168        WRITE(msgBuf,'(2A)') 'S/R DIAGNOSTICS_READPARMS,',        WRITE(msgBuf,'(2A)') 'S/R DIAGNOSTICS_READPARMS,',
169       &     ' read namelist "DIAG_STATIS_PARMS": OK'       &     ' read namelist "DIAG_STATIS_PARMS": OK'
# Line 150  c     STOP 'before reading namelist: DIA Line 172  c     STOP 'before reading namelist: DIA
172    
173        CLOSE (ku)        CLOSE (ku)
174    
175  C     Initialise diag_choices common block  C     Initialise DIAG_SELECT common block (except pointers)
176        nlists = 0        nlists = 0
177        DO n = 1,numlists        DO n = 1,numlists
178          freq(n) = 0.          freq(n) = 0.
179          phase(n) = 0.          phase(n) = 0.
180            averageFreq(n)  = 0.
181            averagePhase(n) = 0.
182            averageCycle(n) = 1
183          nlevels(n) = 0          nlevels(n) = 0
184          nfields(n) = 0          nfields(n) = 0
185          fnames(n) = blkFilName          fnames(n) = blkFilName
# Line 163  C     Initialise diag_choices common blo Line 188  C     Initialise diag_choices common blo
188          ENDDO          ENDDO
189          DO m = 1,numperlist          DO m = 1,numperlist
190            flds(m,n) = blk8c            flds(m,n) = blk8c
           jdiag(m,n) = 0  
191          ENDDO          ENDDO
192            fflags(n)   = blk8c
193        ENDDO        ENDDO
194    
195  C     useMNC is confusing (can be T at this point & turned off later, whereas  C     useMNC is confusing (can be T at this point & turned off later, whereas
# Line 187  C     Fill Diagnostics Common Block with Line 212  C     Fill Diagnostics Common Block with
212        diagSt_ascii = (.NOT. diagSt_mnc) .OR. outputTypesInclusive        diagSt_ascii = (.NOT. diagSt_mnc) .OR. outputTypesInclusive
213    
214        DO l = 1,ldimLoc        DO l = 1,ldimLoc
215         IF ( filename(L).NE.blkFilName .and. nlists.LT.numlists ) THEN         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           n = nlists + 1
219           freq(n)    = frequency(l)           freq(n)    = frequency(l)
220           IF ( timePhase(l).NE. UNSET_RL ) THEN           IF ( timePhase(l).NE. UNSET_RL ) THEN
# Line 195  C     Fill Diagnostics Common Block with Line 222  C     Fill Diagnostics Common Block with
222           ELSEIF ( frequency(l) .LT. 0. ) THEN           ELSEIF ( frequency(l) .LT. 0. ) THEN
223             phase(n) = -0.5 _d 0 * frequency(l)             phase(n) = -0.5 _d 0 * frequency(l)
224           ENDIF           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,F18.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)           fnames(n)  = filename (l)
246           fflags(n)  = fileflags(l)           fflags(n)  = fileflags(l)
247           nlevels(n) = 0           nlevels(n) = 0
248           IF ( levels(1,l).NE.undef ) THEN           IF ( levels(1,l).NE.UNSET_RL ) THEN
249             DO k=1,kdimLoc             DO k=1,kdimLoc
250               IF ( levels(k,l).NE.undef .AND.               IF ( levels(k,l).NE.UNSET_RL .AND.
251       &            nlevels(n).LT.numLevels ) THEN       &            nlevels(n).LT.numLevels ) THEN
252                 nlevels(n) = nlevels(n) + 1                 nlevels(n) = nlevels(n) + 1
253                 levs(nlevels(n),n) = levels(k,l)                 levs(nlevels(n),n) = levels(k,l)
254               ELSEIF ( levels(k,l).NE.undef ) THEN               ELSEIF ( levels(k,l).NE.UNSET_RL ) THEN
255                WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',                WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',
256       &         'Exceed Max.Num. of Levels numLevels=', numLevels       &         'Exceed Max.Num. of Levels numLevels=', numLevels
257                CALL PRINT_ERROR( msgBuf , myThid )                CALL PRINT_ERROR( msgBuf , myThid )
258                WRITE(msgBuf,'(2A,I3,A,F3.0)') 'DIAGNOSTICS_READPARMS: ',                WRITE(msgBuf,'(2A,I3,A,F8.0)') 'DIAGNOSTICS_READPARMS: ',
259       &         'when trying to add level(k=', k, ' )=', levels(k,l)       &         'when trying to add level(k=', k, ' )=', levels(k,l)
260                CALL PRINT_ERROR( msgBuf , myThid )                CALL PRINT_ERROR( msgBuf , myThid )
261                WRITE(msgBuf,'(2A,I3,2A)') 'DIAGNOSTICS_READPARMS: ',                WRITE(msgBuf,'(2A,I3,2A)') 'DIAGNOSTICS_READPARMS: ',
262       &         ' for list l=', l, ', filename: ', filename(l)       &         ' for list l=', l, ', filename: ', filename(l)
263                CALL PRINT_ERROR( msgBuf , myThid )                CALL PRINT_ERROR( msgBuf , myThid )
264                 STOP 'ABNORMAL END: S/R DIAGNOSTICS_READPARMS'                STOP 'ABNORMAL END: S/R DIAGNOSTICS_READPARMS'
265               ENDIF               ENDIF
266             ENDDO             ENDDO
267           ELSE           ELSE
# Line 242  C-       will set levels later, once the Line 289  C-       will set levels later, once the
289           ENDDO           ENDDO
290           nlists = nlists + 1           nlists = nlists + 1
291  c        write(6,*) 'list summary:',n,nfields(n),nlevels(n)  c        write(6,*) 'list summary:',n,nfields(n),nlevels(n)
292         ELSEIF (filename(L).NE.blkFilName) THEN         ELSEIF ( iLen.GE.1 ) THEN
293           WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',           WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',
294       &            'Exceed Max.Num. of list numlists=', numlists       &            'Exceed Max.Num. of list numlists=', numlists
295           CALL PRINT_ERROR( msgBuf , myThid )           CALL PRINT_ERROR( msgBuf , myThid )
296           WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',           WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',
297       &    'when trying to add list l=', l       &    'when trying to add list l=', l
298           CALL PRINT_ERROR( msgBuf , myThid )           CALL PRINT_ERROR( msgBuf , myThid )
299           WRITE(msgBuf,'(2A,F17.6,2A)') 'DIAGNOSTICS_READPARMS: ',           WRITE(msgBuf,'(2A,F18.6,2A)') 'DIAGNOSTICS_READPARMS: ',
300       &    ' Frq=', frequency(l), ', filename: ', filename(l)       &    ' Frq=', frequency(l), ', filename: ', filename(l)
301           CALL PRINT_ERROR( msgBuf , myThid )           CALL PRINT_ERROR( msgBuf , myThid )
302           STOP 'ABNORMAL END: S/R DIAGNOSTICS_READPARMS'           STOP 'ABNORMAL END: S/R DIAGNOSTICS_READPARMS'
# Line 258  c        write(6,*) 'list summary:',n,nf Line 305  c        write(6,*) 'list summary:',n,nf
305    
306  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
307    
308  C     Initialise DIAG_STATIS common block  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        diagSt_nbLists = 0
319        DO n = 1,numlists        DO n = 1,numlists
320          diagSt_freq(n) = 0.          diagSt_freq(n) = 0.
# Line 271  C     Initialise DIAG_STATIS common bloc Line 327  C     Initialise DIAG_STATIS common bloc
327          ENDDO          ENDDO
328          DO m = 1,numperlist          DO m = 1,numperlist
329            diagSt_Flds(m,n) = blk8c            diagSt_Flds(m,n) = blk8c
           jSdiag(m,n) = 0  
330          ENDDO          ENDDO
331        ENDDO        ENDDO
332    
333  C     Fill Diagnostics Common Block with Namelist Info  C     Fill Diagnostics Common Block with Namelist Info
334        diagSt_ascii = (.NOT. diagSt_mnc) .OR. outputTypesInclusive        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        DO l = 1,ldimLoc
360         IF(stat_fname(L).NE.blkFilName.AND.         iLen = ILNBLNK(stat_fname(l))
361       .                            diagSt_nbLists.LT.numlists)THEN  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           n = diagSt_nbLists + 1
364           diagSt_freq(n) = stat_freq(l)           diagSt_freq(n) = stat_freq(l)
365           IF ( stat_phase(l).NE. UNSET_RL ) THEN           IF ( stat_phase(l).NE. UNSET_RL ) THEN
# Line 293  C     Fill Diagnostics Common Block with Line 372  C     Fill Diagnostics Common Block with
372           DO k=1,rdimLoc           DO k=1,rdimLoc
373             j = stat_region(k,l)             j = stat_region(k,l)
374             IF ( j.NE.UNSET_I .AND. j.GE.0 .AND. j.LE.nRegions ) THEN             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               diagSt_region(j,n) = 1
377               regionCount = regionCount + 1               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             ELSEIF ( j.NE.UNSET_I ) THEN
391               WRITE(msgBuf,'(A,I3,A,I3,2A)')               WRITE(msgBuf,'(A,I3,A,I3,2A)')
392       &       'DIAGNOSTICS_READPARMS: region=',j,       &       'DIAGNOSTICS_READPARMS: region=',j,
# Line 322  C-       no region selected => default i Line 414  C-       no region selected => default i
414       &        'Exceed Max.Num. of Fields/list numperlist=', numperlist       &        'Exceed Max.Num. of Fields/list numperlist=', numperlist
415               CALL PRINT_ERROR( msgBuf , myThid )               CALL PRINT_ERROR( msgBuf , myThid )
416               WRITE(msgBuf,'(2A,I3,3A,I3,2A)') 'DIAGNOSTICS_READPARMS: ',               WRITE(msgBuf,'(2A,I3,3A,I3,2A)') 'DIAGNOSTICS_READPARMS: ',
417       &        'when trying to add stat_field (m=', m,       &        'when trying to add stat_field (m=', m,
418       &        ' ): ',stat_fields(m,l)       &        ' ): ',stat_fields(m,l)
419               CALL PRINT_ERROR( msgBuf , myThid )               CALL PRINT_ERROR( msgBuf , myThid )
420               WRITE(msgBuf,'(2A,I3,2A)') 'DIAGNOSTICS_READPARMS: ',               WRITE(msgBuf,'(2A,I3,2A)') 'DIAGNOSTICS_READPARMS: ',
# Line 333  C-       no region selected => default i Line 425  C-       no region selected => default i
425           ENDDO           ENDDO
426           diagSt_nbLists = diagSt_nbLists + 1           diagSt_nbLists = diagSt_nbLists + 1
427  c        write(6,*) 'stat-list summary:',n,diagSt_nbFlds(n),regionCount  c        write(6,*) 'stat-list summary:',n,diagSt_nbFlds(n),regionCount
428         ELSEIF ( stat_fname(L).NE.blkFilName ) THEN         ELSEIF ( iLen.GE.1 ) THEN
429           WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',           WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',
430       &            'Exceed Max.Num. of list numlists=', numlists       &            'Exceed Max.Num. of list numlists=', numlists
431           CALL PRINT_ERROR( msgBuf , myThid )           CALL PRINT_ERROR( msgBuf , myThid )
432           WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',           WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',
433       &    'when trying to add stat_list l=', l       &    'when trying to add stat_list l=', l
434           CALL PRINT_ERROR( msgBuf , myThid )           CALL PRINT_ERROR( msgBuf , myThid )
435           WRITE(msgBuf,'(2A,F17.6,2A)') 'DIAGNOSTICS_READPARMS: ',           WRITE(msgBuf,'(2A,F18.6,2A)') 'DIAGNOSTICS_READPARMS: ',
436       &    ' Frq=', stat_freq(l), ', stat_fname: ', stat_fname(l)       &    ' Frq=', stat_freq(l), ', stat_fname: ', stat_fname(l)
437           CALL PRINT_ERROR( msgBuf , myThid )           CALL PRINT_ERROR( msgBuf , myThid )
438           STOP 'ABNORMAL END: S/R DIAGNOSTICS_READPARMS'           STOP 'ABNORMAL END: S/R DIAGNOSTICS_READPARMS'
# Line 360  C     Echo History List Data Structure Line 452  C     Echo History List Data Structure
452       & '-----------------------------------------------------'       & '-----------------------------------------------------'
453        CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)        CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
454        DO n = 1,nlists        DO n = 1,nlists
455          WRITE(msgBuf,'(2a)') 'Creating Output Stream: ',fnames(n)          WRITE(msgBuf,'(2A)') 'Creating Output Stream: ', fnames(n)
456          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
457          WRITE(msgBuf,'(2(A,F17.6))') 'Frequency : ',freq(n),          WRITE(msgBuf,'(2(A,F18.6))') 'Output Frequency:', freq(n),
458       &                               ' ; Phase: ', phase(n)       &                               ' ; Phase: ', phase(n)
459          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
460            WRITE(msgBuf,'(2(A,F18.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          IF ( nlevels(n).EQ.-1 ) THEN
465            WRITE(msgBuf,'(A,A)') ' Levels:    ','will be set later'            WRITE(msgBuf,'(A,A)') ' Levels:    ','will be set later'
466            CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)            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          ELSE
474           DO l=1,nlevels(n),20           DO l=1,nlevels(n),20
475            m = MIN(nlevels(n),l+19)            m = MIN(nlevels(n),l+19)
# Line 375  C     Echo History List Data Structure Line 477  C     Echo History List Data Structure
477            CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)            CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
478           ENDDO           ENDDO
479          ENDIF          ENDIF
480          WRITE(msgBuf,*) 'Fields:   ',(' ',flds(l,n),l=1,nfields(n))          DO nf = 1,nfields(n),10
481          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)            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        ENDDO
486        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
487       & '-----------------------------------------------------'       & '-----------------------------------------------------'
# Line 385  C     Echo History List Data Structure Line 490  C     Echo History List Data Structure
490       &     ' DIAGNOSTICS_READPARMS: statistics diags. summary:'       &     ' DIAGNOSTICS_READPARMS: statistics diags. summary:'
491        CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)        CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
492        DO n = 1,diagSt_nbLists        DO n = 1,diagSt_nbLists
493          WRITE(msgBuf,'(2a)') 'Creating Stats. Output Stream: ',          WRITE(msgBuf,'(2A)') 'Creating Stats. Output Stream: ',
494       &                       diagSt_Fname(n)       &                       diagSt_Fname(n)
495          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
496          WRITE(msgBuf,'(2(A,F17.6))') 'Frequency : ',diagSt_freq(n),          WRITE(msgBuf,'(2(A,F18.6))') 'Output Frequency:',
497       &                               ' ; Phase: ', diagSt_phase(n)       &               diagSt_freq(n), ' ; Phase: ', diagSt_phase(n)
498          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
499          WRITE(msgBuf,'(A)') ' Regions : '          WRITE(msgBuf,'(A)') ' Regions: '
500          l = 12          l = 10
501          DO j=0,nRegions          DO j=0,nRegions
502           IF ( diagSt_region(j,n).GE.1 ) THEN           IF ( diagSt_region(j,n).GE.1 ) THEN
           IF (l+3.LE.MAX_LEN_MBUF) WRITE(msgBuf,'(A,I3)') msgBuf(1:l),j  
503            l = l+3            l = l+3
504              IF (l.LE.MAX_LEN_MBUF) WRITE(msgBuf(l-2:l),'(I3)') j
505           ENDIF           ENDIF
506          ENDDO          ENDDO
507          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
508          WRITE(msgBuf,*) 'Fields:   ',          DO nf = 1,diagSt_nbFlds(n),10
509       &                 (' ',diagSt_Flds(l,n),l=1,diagSt_nbFlds(n))            m = MIN(diagSt_nbFlds(n),nf+9)
510          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)            WRITE(msgBuf,'(21A)') ' Fields:   ',
511         &                 (' ',diagSt_Flds(l,n),l=nf,m)
512              CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
513            ENDDO
514        ENDDO        ENDDO
515        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
516       & '-----------------------------------------------------'       & '-----------------------------------------------------'

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.20

  ViewVC Help
Powered by ViewVC 1.1.22