/[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.2 by jmc, Tue Dec 14 03:48:23 2004 UTC revision 1.3 by jmc, Mon Dec 20 01:52:58 2004 UTC
# Line 12  C     !INTERFACE: Line 12  C     !INTERFACE:
12    
13  C     !DESCRIPTION:  C     !DESCRIPTION:
14  C     Read Diagnostics Namelists to specify output sequence.  C     Read Diagnostics Namelists to specify output sequence.
15          
16  C     !USES:  C     !USES:
17        IMPLICIT NONE        IMPLICIT NONE
18  #include "SIZE.h"  #include "SIZE.h"
# Line 71  C     Initialize and Read Diagnostics Na Line 71  C     Initialize and Read Diagnostics Na
71        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
72       &     ' DIAGNOSTICS_READPARMS: opening data.diagnostics'       &     ' DIAGNOSTICS_READPARMS: opening data.diagnostics'
73        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,SQUEEZE_RIGHT,1)        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,SQUEEZE_RIGHT,1)
74          
75        CALL OPEN_COPY_DATA_FILE('data.diagnostics',        CALL OPEN_COPY_DATA_FILE('data.diagnostics',
76       &     'DIAGNOSTICS_READPARMS', ku, myThid )       &     'DIAGNOSTICS_READPARMS', ku, myThid )
77        READ  (ku,NML=diagnostics_list)        READ  (ku,NML=diagnostics_list)
78        CLOSE (ku)        CLOSE (ku)
# Line 95  C     Initialise diag_choices common blo Line 95  C     Initialise diag_choices common blo
95        diag_mdsio = .TRUE.        diag_mdsio = .TRUE.
96    
97  C     Fill Diagnostics Common Block with Namelist Info  C     Fill Diagnostics Common Block with Namelist Info
98        IF ( useMNC .AND. diag_mnc        IF ( useMNC .AND. diag_mnc
99       &            .AND. (.NOT. outputTypesInclusive)) THEN       &            .AND. (.NOT. outputTypesInclusive)) THEN
100          diag_mdsio = .FALSE.          diag_mdsio = .FALSE.
101        ENDIF        ENDIF
102          
103        DO l = 1,ldimLoc        DO l = 1,ldimLoc
104         IF ( frequency(l).NE.0 .AND. nlists.LT.numlists ) THEN         IF ( frequency(l).NE.0 .AND. nlists.LT.numlists ) THEN
105           n = nlists + 1           n = nlists + 1
# Line 108  C     Fill Diagnostics Common Block with Line 108  C     Fill Diagnostics Common Block with
108           nlevels(n) = 0           nlevels(n) = 0
109           IF ( levels(1,l).NE.undef ) THEN           IF ( levels(1,l).NE.undef ) THEN
110             DO k=1,kdimLoc             DO k=1,kdimLoc
111               IF ( levels(k,l).NE.undef .AND.               IF ( levels(k,l).NE.undef .AND.
112       &            nlevels(n).LT.numLevels ) THEN       &            nlevels(n).LT.numLevels ) THEN
113                 nlevels(n) = nlevels(n) + 1                 nlevels(n) = nlevels(n) + 1
114                 levs(nlevels(n),n) = levels(k,l)                 levs(nlevels(n),n) = levels(k,l)
# Line 117  C     Fill Diagnostics Common Block with Line 117  C     Fill Diagnostics Common Block with
117       &         'Exceed Max.Num. of Levels numLevels=', numLevels       &         'Exceed Max.Num. of Levels numLevels=', numLevels
118                CALL PRINT_ERROR( msgBuf , myThid )                CALL PRINT_ERROR( msgBuf , myThid )
119                WRITE(msgBuf,'(2A,I3,A,F3.0)') 'DIAGNOSTICS_READPARMS: ',                WRITE(msgBuf,'(2A,I3,A,F3.0)') 'DIAGNOSTICS_READPARMS: ',
120       &         'when trying to add level(k=', k, ' )=', levels(k,l)       &         'when trying to add level(k=', k, ' )=', levels(k,l)
121                CALL PRINT_ERROR( msgBuf , myThid )                CALL PRINT_ERROR( msgBuf , myThid )
122                WRITE(msgBuf,'(2A,I3,2A)') 'DIAGNOSTICS_READPARMS: ',                WRITE(msgBuf,'(2A,I3,2A)') 'DIAGNOSTICS_READPARMS: ',
123       &         ' for list l=', l, ', filename: ', filename(l)       &         ' for list l=', l, ', filename: ', filename(l)
# Line 126  C     Fill Diagnostics Common Block with Line 126  C     Fill Diagnostics Common Block with
126               ENDIF               ENDIF
127             ENDDO             ENDDO
128           ELSE           ELSE
129             nlevels(n) = Nr  C-       will set levels later, once the Nb of levels of each diag is known
130             DO k=1,nlevels(n)             nlevels(n) = -1
              levs(k,n) = k  
            ENDDO  
131           ENDIF           ENDIF
132           nfields(n) = 0           nfields(n) = 0
133           DO m=1,fdimLoc           DO m=1,fdimLoc
134             IF ( fields(m,l).NE.blk8c .AND.             IF ( fields(m,l).NE.blk8c .AND.
135       &          nfields(n).LT.numperlist ) THEN       &          nfields(n).LT.numperlist ) THEN
136               nfields(n) = nfields(n) + 1               nfields(n) = nfields(n) + 1
137               flds(nfields(n),n) = fields(m,l)               flds(nfields(n),n) = fields(m,l)
# Line 183  C     Echo History List Data Structure Line 181  C     Echo History List Data Structure
181          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
182          WRITE(msgBuf,*) 'Frequency: ',freq(n)          WRITE(msgBuf,*) 'Frequency: ',freq(n)
183          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
184          DO l=1,nlevels(n),20          IF ( nlevels(n).EQ.-1 ) THEN
185              WRITE(msgBuf,'(A,A)') ' Levels:    ','will be set later'
186              CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
187            ELSE
188             DO l=1,nlevels(n),20
189            m = MIN(nlevels(n),l+19)            m = MIN(nlevels(n),l+19)
190            WRITE(msgBuf,'(A,20F5.0)') ' Levels:    ', (levs(k,n),k=l,m)            WRITE(msgBuf,'(A,20F5.0)') ' Levels:    ', (levs(k,n),k=l,m)
191            CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)            CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
192          ENDDO           ENDDO
193            ENDIF
194          WRITE(msgBuf,*) 'Fields:   ',(' ',flds(l,n),l=1,nfields(n))          WRITE(msgBuf,*) 'Fields:   ',(' ',flds(l,n),l=1,nfields(n))
195          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
196        ENDDO        ENDDO

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.22