/[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.17 by molod, Fri Mar 3 15:37:50 2006 UTC revision 1.18 by jmc, Mon Jun 5 18:15:53 2006 UTC
# Line 32  C     kdimLoc :: Max Number of Levels (i Line 32  C     kdimLoc :: Max Number of Levels (i
32  C     fdimLoc :: Max Number of Fields (in data.diagnostics)  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
# Line 50  C     stat_fname  :: List of statistics Line 53  C     stat_fname  :: List of statistics
53        PARAMETER ( fdimLoc = 2*numperlist )        PARAMETER ( fdimLoc = 2*numperlist )
54        PARAMETER ( rdimLoc = nRegions+21 )        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 65  C     stat_fname  :: List of statistics Line 70  C     stat_fname  :: List of statistics
70        INTEGER ku, stdUnit        INTEGER ku, stdUnit
71        INTEGER j,k,l,n,m,nf        INTEGER j,k,l,n,m,nf
72        INTEGER iLen, 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       &     dumpatlast, 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    
# Line 86  C--   per level statistics output: Line 92  C--   per level statistics output:
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        dumpatlast            = .FALSE.        dumpAtLast            = .FALSE.
118        diag_mnc              = useMNC        diag_mnc              = useMNC
119        diag_pickup_read      = .FALSE.        diag_pickup_read      = .FALSE.
120        diag_pickup_write     = .FALSE.        diag_pickup_write     = .FALSE.
# Line 163  C-    set default for statistics output Line 172  C-    set default for statistics output
172    
173        CLOSE (ku)        CLOSE (ku)
174    
175  C     Initialise diag_choices common block (except pointers)  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 177  C     Initialise diag_choices common blo Line 189  C     Initialise diag_choices common blo
189          DO m = 1,numperlist          DO m = 1,numperlist
190            flds(m,n) = blk8c            flds(m,n) = blk8c
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 209  C-     Only lists with non-empty file na Line 222  C-     Only lists with non-empty file na
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,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)           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 )
# Line 228  C-     Only lists with non-empty file na Line 261  C-     Only lists with non-empty file na
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 419  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,F17.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,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          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)
# Line 450  C     Echo History List Data Structure Line 487  C     Echo History List Data Structure
487          WRITE(msgBuf,'(2a)') 'Creating Stats. Output Stream: ',          WRITE(msgBuf,'(2a)') 'Creating Stats. Output Stream: ',
488       &                       diagSt_Fname(n)       &                       diagSt_Fname(n)
489          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
490          WRITE(msgBuf,'(2(A,F17.6))') 'Frequency : ',diagSt_freq(n),          WRITE(msgBuf,'(2(A,F17.6))') 'Output Frequency:',
491       &                               ' ; Phase: ', diagSt_phase(n)       &               diagSt_freq(n), ' ; Phase: ', diagSt_phase(n)
492          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
493          WRITE(msgBuf,'(A)') ' Regions : '          WRITE(msgBuf,'(A)') ' Regions : '
494          l = 12          l = 12

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18

  ViewVC Help
Powered by ViewVC 1.1.22