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

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

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

revision 1.5 by edhill, Wed Dec 29 02:13:38 2004 UTC revision 1.6 by jmc, Mon Feb 7 03:07:49 2005 UTC
# Line 43  C     !LOCAL VARIABLES: Line 43  C     !LOCAL VARIABLES:
43        INTEGER i, j, k, m, n, bi, bj        INTEGER i, j, k, m, n, bi, bj
44        CHARACTER*8 parms1        CHARACTER*8 parms1
45        CHARACTER*3 mate_index        CHARACTER*3 mate_index
46        INTEGER mate        INTEGER mate, mVec
47        _RL qtmp1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+Nrphys,nSx,nSy)        _RL qtmp1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+Nrphys,nSx,nSy)
       _RL qtmp2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+Nrphys,nSx,nSy)  
48        _RL undef, getcon        _RL undef, getcon
49        EXTERNAL getcon        EXTERNAL getcon
50        INTEGER ILNBLNK        INTEGER ILNBLNK
51        EXTERNAL ILNBLNK        EXTERNAL ILNBLNK
52        INTEGER ilen        INTEGER ilen
53    
54          INTEGER ioUnit
55        CHARACTER*(MAX_LEN_FNAM) pref        CHARACTER*(MAX_LEN_FNAM) pref
56        CHARACTER*(MAX_LEN_MBUF) suff        CHARACTER*(MAX_LEN_MBUF) suff
57        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
# Line 71  C     !LOCAL VARIABLES: Line 71  C     !LOCAL VARIABLES:
71    
72  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
73    
74          ioUnit= standardMessageUnit
75        undef = getcon('UNDEF')        undef = getcon('UNDEF')
76        glf = globalFiles        glf = globalFiles
77        WRITE(suff,'(I10.10)') myIter        WRITE(suff,'(I10.10)') myIter
# Line 160  C-        Empty diagnostics case : Line 161  C-        Empty diagnostics case :
161  C-        diagnostics is not empty :  C-        diagnostics is not empty :
162    
163              IF ( myThid.EQ.1 )              IF ( myThid.EQ.1 )
164       &             WRITE(6,2000) m,cdiag(m),ndiag(m),gdiag(m)       &             WRITE(ioUnit,2000) m,cdiag(m),ndiag(m),gdiag(m)
             IF ( parms1(5:5).NE.'C' ) THEN  
165    
166                DO k = 1,nlevels(listnum)              IF ( parms1(5:5).EQ.'C' ) THEN
167                  CALL GETDIAG (levs(k,listnum),m,undef,qtmp1,myThid)  C             Check for Mate of a Counter Diagnostic
168                ENDDO  C             --------------------------------------
169                  mate_index = parms1(6:8)
170                  READ (mate_index,'(I3)') mate
171                  IF ( myThid.EQ.1 )
172         &                 WRITE(ioUnit,2003) cdiag(m),mate,cdiag(mate)
173                ELSE
174                  mate = 0
175    
176  C             Check for Mate of a Vector Diagnostic  C             Check for Mate of a Vector Diagnostic
177  C             -------------------------------------  C             -------------------------------------
178                IF ( parms1(1:1).EQ.'U' .OR. parms1(1:1).EQ.'V' ) THEN                IF ( parms1(1:1).EQ.'U' .OR. parms1(1:1).EQ.'V' ) THEN
179                  mate_index = parms1(6:8)                  mate_index = parms1(6:8)
180                  READ (mate_index,'(I3)') mate                  READ (mate_index,'(I3)') mVec
181                  IF ( idiag(mate).NE.0 ) THEN                  IF ( idiag(mVec).NE.0 ) THEN
182                    IF ( myThid.EQ.1 )                    IF ( myThid.EQ.1 )
183       &                 WRITE(6,2001) cdiag(m),mate,cdiag(mate)       &                 WRITE(ioUnit,2001) cdiag(m),mVec,cdiag(mVec)
184                  ELSE                  ELSE
185                    IF ( myThid.EQ.1 )                    IF ( myThid.EQ.1 )
186       &                 WRITE(6,2002) cdiag(m),mate,cdiag(mate)       &                 WRITE(ioUnit,2002) cdiag(m),mVec,cdiag(mVec)
187                  ENDIF                  ENDIF
188                ENDIF                ENDIF
189                                ENDIF
             ELSE  
190    
191  C             Check for Mate of a Counter Diagnostic              DO bj = myByLo(myThid), myByHi(myThid)
192  C             --------------------------------------               DO bi = myBxLo(myThid), myBxHi(myThid)
               mate_index = parms1(6:8)  
               READ (mate_index,'(I3)') mate  
               IF ( myThid.EQ.1 )  
      &                 WRITE(6,2003) cdiag(m),mate,cdiag(mate)  
193                DO k = 1,nlevels(listnum)                DO k = 1,nlevels(listnum)
194                  CALL getdiag2(levs(k,listnum),m,undef,qtmp1,myThid)                  CALL GETDIAG(
195                  CALL getdiag2(levs(k,listnum),mate,undef,qtmp2,myThid)       I                       levs(k,listnum),undef,
196                  DO bj = myByLo(myThid), myByHi(myThid)       O                       qtmp1(1-OLx,1-OLy,k,bi,bj),
197                    DO bi = myBxLo(myThid), myBxHi(myThid)       I                       m,mate,bi,bj,myThid)
                     DO j = 1,sNy  
                       DO i = 1,sNx  
                         IF (qtmp2(i,j,k,bi,bj).NE.0.) THEN  
                           qtmp1(i,j,k,bi,bj) =  
      &                         qtmp1(i,j,k,bi,bj) / qtmp2(i,j,k,bi,bj)  
                         ELSE  
                           qtmp1(i,j,k,bi,bj) = undef  
                         ENDIF  
                       ENDDO  
                     ENDDO  
                   ENDDO  
                 ENDDO  
198                ENDDO                ENDDO
199                 ENDDO
200              ENDIF              ENDDO
201    
202  C-        end of empty diag / not empty block  C-        end of empty diag / not empty block
203            ENDIF            ENDIF

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

  ViewVC Help
Powered by ViewVC 1.1.22