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

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

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

revision 1.16 by jmc, Fri Jul 1 18:52:18 2011 UTC revision 1.17 by jmc, Sun Jul 23 00:28:37 2017 UTC
# Line 139  C        Search all possible model diagn Line 139  C        Search all possible model diagn
139            IF ( flds(md,ld).EQ.cdiag(nd) ) THEN            IF ( flds(md,ld).EQ.cdiag(nd) ) THEN
140              CALL DIAGNOSTICS_SETDIAG(mate,ndiagcount,md,ld,nd,myThid)              CALL DIAGNOSTICS_SETDIAG(mate,ndiagcount,md,ld,nd,myThid)
141              found = .TRUE.              found = .TRUE.
             jdiag(md,ld) = nd  
142            ENDIF            ENDIF
143           ENDDO           ENDDO
144           IF ( .NOT.found ) THEN           IF ( .NOT.found ) THEN
# Line 196  C     and if it exists. Note: for now, o Line 195  C     and if it exists. Note: for now, o
195         DO md=1,nActive(ld)         DO md=1,nActive(ld)
196          IF (mdiag(md,ld).EQ.0 ) THEN          IF (mdiag(md,ld).EQ.0 ) THEN
197    
198           nd = jdiag(md,ld)           k = SIGN(1,jdiag(md,ld))
199             nd = ABS(jdiag(md,ld))
200           mate = hdiag(nd)           mate = hdiag(nd)
201           IF ( mate.GT.0 ) THEN           IF ( mate.GT.0 ) THEN
202            DO j=1,nlists            DO j=1,nlists
203             DO i=1,nActive(j)             DO i=1,nActive(j)
204              IF ( mdiag(md,ld).EQ.0 .AND. jdiag(i,j).EQ.mate ) THEN              IF ( mdiag(md,ld).EQ.0 .AND. (k*jdiag(i,j)).EQ.mate ) THEN
205               IF ( freq(j).EQ.freq(ld) .AND. phase(j).EQ.phase(ld)               IF ( freq(j).EQ.freq(ld) .AND. phase(j).EQ.phase(ld)
206       &           .AND. averageFreq(j) .EQ.averageFreq(ld)       &           .AND. averageFreq(j) .EQ.averageFreq(ld)
207       &           .AND. averagePhase(j).EQ.averagePhase(ld)       &           .AND. averagePhase(j).EQ.averagePhase(ld)
# Line 231  C--   Set list of levels to write (if no Line 231  C--   Set list of levels to write (if no
231  C-      set Nb of levels to the minimum size of all diag of this list:  C-      set Nb of levels to the minimum size of all diag of this list:
232            kLev = numLevels*10            kLev = numLevels*10
233            DO md=1,nfields(ld)            DO md=1,nfields(ld)
234              nd = jdiag(md,ld)              nd = ABS(jdiag(md,ld))
235              kLev = MIN(kdiag(nd),kLev)              kLev = MIN(kdiag(nd),kLev)
236            ENDDO            ENDDO
237            IF ( kLev.LE.0 ) THEN            IF ( kLev.LE.0 ) THEN
# Line 273  C-      if no Vert.Interpolation, check Line 273  C-      if no Vert.Interpolation, check
273              kLev = MAX(NINT(levs(k,ld)),kLev)              kLev = MAX(NINT(levs(k,ld)),kLev)
274            ENDDO            ENDDO
275            DO md=1,nfields(ld)            DO md=1,nfields(ld)
276              nd = jdiag(md,ld)              nd = ABS(jdiag(md,ld))
277              IF ( kLev.GT.kdiag(nd) ) THEN              IF ( kLev.GT.kdiag(nd) ) THEN
278  C- Note: diagnostics_out take care (in some way) of this case  C- Note: diagnostics_out take care (in some way) of this case
279  C        so that it does not cause "index out-off bounds" error.  C        so that it does not cause "index out-off bounds" error.

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

  ViewVC Help
Powered by ViewVC 1.1.22