/[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.1 by jmc, Mon Dec 13 21:43:54 2004 UTC revision 1.4 by jmc, Mon Feb 7 20:49:09 2005 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 66  C     Initialize and Read Diagnostics Na Line 66  C     Initialize and Read Diagnostics Na
66            fields (m,l) = blk8c            fields (m,l) = blk8c
67          ENDDO          ENDDO
68        ENDDO        ENDDO
69        diag_mnc   = .FALSE.        diag_mnc = useMNC
70    
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 92  C     Initialise diag_choices common blo Line 92  C     Initialise diag_choices common blo
92            jdiag(m,n) = 0            jdiag(m,n) = 0
93          ENDDO          ENDDO
94        ENDDO        ENDDO
       diag_mdsio = .TRUE.  
95    
96  C     Fill Diagnostics Common Block with Namelist Info  C     Fill Diagnostics Common Block with Namelist Info
97        IF ( useMNC .AND. diag_mnc        diag_mnc = diag_mnc .AND. useMNC
98       &            .AND. (.NOT. outputTypesInclusive)) THEN        diag_mdsio = (.NOT. diag_mnc) .OR. outputTypesInclusive
99          diag_mdsio = .FALSE.  
       ENDIF  
         
100        DO l = 1,ldimLoc        DO l = 1,ldimLoc
101         IF ( frequency(l).NE.0 .AND. nlists.LT.numlists ) THEN         IF ( frequency(l).NE.0 .AND. nlists.LT.numlists ) THEN
102           n = nlists + 1           n = nlists + 1
# Line 108  C     Fill Diagnostics Common Block with Line 105  C     Fill Diagnostics Common Block with
105           nlevels(n) = 0           nlevels(n) = 0
106           IF ( levels(1,l).NE.undef ) THEN           IF ( levels(1,l).NE.undef ) THEN
107             DO k=1,kdimLoc             DO k=1,kdimLoc
108               IF ( levels(k,l).NE.undef .AND.               IF ( levels(k,l).NE.undef .AND.
109       &            nlevels(n).LT.numLevels ) THEN       &            nlevels(n).LT.numLevels ) THEN
110                 nlevels(n) = nlevels(n) + 1                 nlevels(n) = nlevels(n) + 1
111                 levs(nlevels(n),n) = levels(k,l)                 levs(nlevels(n),n) = levels(k,l)
# Line 117  C     Fill Diagnostics Common Block with Line 114  C     Fill Diagnostics Common Block with
114       &         'Exceed Max.Num. of Levels numLevels=', numLevels       &         'Exceed Max.Num. of Levels numLevels=', numLevels
115                CALL PRINT_ERROR( msgBuf , myThid )                CALL PRINT_ERROR( msgBuf , myThid )
116                WRITE(msgBuf,'(2A,I3,A,F3.0)') 'DIAGNOSTICS_READPARMS: ',                WRITE(msgBuf,'(2A,I3,A,F3.0)') 'DIAGNOSTICS_READPARMS: ',
117       &         'when trying to add level(k=', k, ' )=', levels(k,l)       &         'when trying to add level(k=', k, ' )=', levels(k,l)
118                CALL PRINT_ERROR( msgBuf , myThid )                CALL PRINT_ERROR( msgBuf , myThid )
119                WRITE(msgBuf,'(2A,I3,2A)') 'DIAGNOSTICS_READPARMS: ',                WRITE(msgBuf,'(2A,I3,2A)') 'DIAGNOSTICS_READPARMS: ',
120       &         ' for list l=', l, ', filename: ', filename(l)       &         ' for list l=', l, ', filename: ', filename(l)
# Line 126  C     Fill Diagnostics Common Block with Line 123  C     Fill Diagnostics Common Block with
123               ENDIF               ENDIF
124             ENDDO             ENDDO
125           ELSE           ELSE
126             nlevels(n) = Nr  C-       will set levels later, once the Nb of levels of each diag is known
127             DO k=1,nlevels(n)             nlevels(n) = -1
              levs(k,n) = k  
            ENDDO  
128           ENDIF           ENDIF
129           nfields(n) = 0           nfields(n) = 0
130           DO m=1,fdimLoc           DO m=1,fdimLoc
131             IF ( fields(m,l).NE.blk8c .AND.             IF ( fields(m,l).NE.blk8c .AND.
132       &          nfields(n).LT.numperlist ) THEN       &          nfields(n).LT.numperlist ) THEN
133               nfields(n) = nfields(n) + 1               nfields(n) = nfields(n) + 1
134               flds(nfields(n),n) = fields(m,l)               flds(nfields(n),n) = fields(m,l)
135             ELSEIF ( fields(m,n).NE.blk8c ) THEN             ELSEIF ( fields(m,l).NE.blk8c ) THEN
136               WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',               WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',
137       &        'Exceed Max.Num. of Fields/list numperlist=', numperlist       &        'Exceed Max.Num. of Fields/list numperlist=', numperlist
138               CALL PRINT_ERROR( msgBuf , myThid )               CALL PRINT_ERROR( msgBuf , myThid )
# Line 151  C     Fill Diagnostics Common Block with Line 146  C     Fill Diagnostics Common Block with
146             ENDIF             ENDIF
147           ENDDO           ENDDO
148           nlists = nlists + 1           nlists = nlists + 1
149    c        write(6,*) 'list summary:',n,nfields(n),nlevels(n)
150         ELSEIF ( frequency(l).NE.0 ) THEN         ELSEIF ( frequency(l).NE.0 ) THEN
151           WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',           WRITE(msgBuf,'(2A,I3)') 'DIAGNOSTICS_READPARMS: ',
152       &            'Exceed Max.Num. of list numlists=', numlists       &            'Exceed Max.Num. of list numlists=', numlists
# Line 182  C     Echo History List Data Structure Line 178  C     Echo History List Data Structure
178          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
179          WRITE(msgBuf,*) 'Frequency: ',freq(n)          WRITE(msgBuf,*) 'Frequency: ',freq(n)
180          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
181          DO l=1,nlevels(n),20          IF ( nlevels(n).EQ.-1 ) THEN
182              WRITE(msgBuf,'(A,A)') ' Levels:    ','will be set later'
183              CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
184            ELSE
185             DO l=1,nlevels(n),20
186            m = MIN(nlevels(n),l+19)            m = MIN(nlevels(n),l+19)
187            WRITE(msgBuf,'(A,20F5.0)') ' Levels:    ', (levs(k,n),k=l,m)            WRITE(msgBuf,'(A,20F5.0)') ' Levels:    ', (levs(k,n),k=l,m)
188            CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)            CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
189          ENDDO           ENDDO
190            ENDIF
191          WRITE(msgBuf,*) 'Fields:   ',(' ',flds(l,n),l=1,nfields(n))          WRITE(msgBuf,*) 'Fields:   ',(' ',flds(l,n),l=1,nfields(n))
192          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)          CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
193        ENDDO        ENDDO

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22