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

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

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

revision 1.1 by jmc, Sun Jun 26 16:51:49 2005 UTC revision 1.5 by jmc, Sun Dec 24 20:20:59 2006 UTC
# Line 33  C     !LOCAL VARIABLES: Line 33  C     !LOCAL VARIABLES:
33        INTEGER md, ld, ipt, im        INTEGER md, ld, ipt, im
34        INTEGER j, k, k1, k2, l        INTEGER j, k, k1, k2, l
35        INTEGER  dUnit, stdUnit, iLen        INTEGER  dUnit, stdUnit, iLen
36        CHARACTER*(MAX_LEN_MBUF) msgBuf        INTEGER xNew, xOld, ii, nDup
37          CHARACTER*(2) cSep
38          CHARACTER*(MAX_LEN_MBUF) msgBuf, tmpBuf
39        CHARACTER*(MAX_LEN_FNAM) fn        CHARACTER*(MAX_LEN_FNAM) fn
40        CHARACTER*(72) ccLine, ccFlds, ccList        CHARACTER*(72) ccLine, ccFlds, ccList
41        LOGICAL  outpSummary        LOGICAL  outpSummary
# Line 64  C---+----1----+----2----+----3----+----4 Line 66  C---+----1----+----2----+----3----+----4
66           CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)           CALL PRINT_MESSAGE( msgBuf, stdUnit,SQUEEZE_RIGHT, myThid)
67          ENDIF          ENDIF
68         ENDIF         ENDIF
69          ELSE
70           outpSummary = .FALSE.
71        ENDIF        ENDIF
72    
73        IF ( outpSummary .AND. debugLevel.GE.debLevA ) THEN        IF ( outpSummary .AND. debugLevel.GE.debLevA ) THEN
# Line 93  C     write a summary diagnostics state: Line 97  C     write a summary diagnostics state:
97           WRITE(dUnit,'(I4,A,I4,A,2F17.6,A,I4)')           WRITE(dUnit,'(I4,A,I4,A,2F17.6,A,I4)')
98       &    nfields(ld), '  |',nActive(ld), '  |',       &    nfields(ld), '  |',nActive(ld), '  |',
99       &    freq(ld), phase(ld), ' |', nlevels(ld)       &    freq(ld), phase(ld), ' |', nlevels(ld)
100           DO k1=1,nlevels(ld),50           IF ( fflags(ld)(2:2).EQ.'P' ) THEN
101            k2 = MIN(nlevels(ld),k1+49)            DO k1=1,nlevels(ld),10
102            WRITE(dUnit,'(A,50I4)')' levels:',(nint(levs(k,ld)),k=k1,k2)             k2 = MIN(nlevels(ld),k1+9)
103           ENDDO             WRITE(dUnit,'(A,1P10E10.3)')' interp:', (levs(k,ld),k=k1,k2)
104              ENDDO
105             ELSE
106              DO k1=1,nlevels(ld),25
107               k2 = MIN(nlevels(ld),k1+24)
108               WRITE(dUnit,'(A,25I4)')' levels:',(NINT(levs(k,ld)),k=k1,k2)
109              ENDDO
110             ENDIF
111           WRITE(dUnit,'(A)') ccFlds           WRITE(dUnit,'(A)') ccFlds
112           DO md=1,nActive(ld)           DO md=1,nActive(ld)
113             WRITE(msgBuf,'(I5,3A,I5,A,I5,A,I4,A)')             WRITE(msgBuf,'(I5,3A,2(I5,A),I4,A)')
114       &       jdiag(md,ld),' |', flds(md,ld),'|',idiag(md,ld),' |',       &       jdiag(md,ld),' |', flds(md,ld),'|',idiag(md,ld),' |',
115       &       mdiag(md,ld),' |', kdiag(jdiag(md,ld)),' |'       &       mdiag(md,ld),' |', kdiag(jdiag(md,ld)),' |'
116             ipt = ABS(idiag(md,ld))             ipt = ABS(idiag(md,ld))
117             IF (ipt.NE.0) THEN             IF (ipt.NE.0 .AND. averageCycle(ld).GT.1) THEN
118              iLen = ILNBLNK(msgBuf)               xOld=ndiag(ipt,1,1)
119              WRITE(msgBuf,'(A,I6,A)') msgBuf(1:iLen),ndiag(ipt,1,1),' |'               nDup = 1
120             ENDIF               cSep = ', '
121             im = mdiag(md,ld)               DO l=1,averageCycle(ld)
122             IF (im.NE.0) THEN                 ii = ipt+l*kdiag(jdiag(md,ld))
123                   IF (l.EQ.averageCycle(ld)) THEN
124                     cSep = ' |'
125                     xNew=xOld+1
126                   ELSE
127                     xNew=ndiag(ii,1,1)
128                   ENDIF
129                   IF (xNew.EQ.xOld) THEN
130                     nDup = nDup + 1
131                   ELSE
132                     iLen = ILNBLNK(msgBuf)
133                     tmpBuf(1:iLen) = msgBuf(1:iLen)
134                     IF (nDup.EQ.1) THEN
135                       WRITE(msgBuf,'(A,I5,A)') tmpBuf(1:iLen),xOld,cSep
136                     ELSE
137                       WRITE(msgBuf,'(A,I5,A,I2,2A)') tmpBuf(1:iLen),xOld,
138         &              '(x',nDup,')',cSep
139                     ENDIF
140                     xOld = xNew
141                     nDup = 1
142                   ENDIF
143                 ENDDO
144               ELSEIF (ipt.NE.0) THEN
145              iLen = ILNBLNK(msgBuf)              iLen = ILNBLNK(msgBuf)
146              WRITE(msgBuf,'(A,I6,A)') msgBuf(1:iLen),ndiag(im,1,1),' |'              tmpBuf(1:iLen) = msgBuf(1:iLen)
147                WRITE(msgBuf,'(A,I6,A)') tmpBuf(1:iLen),ndiag(ipt,1,1),' |'
148                im = mdiag(md,ld)
149                IF (im.NE.0) THEN
150                 iLen = ILNBLNK(msgBuf)
151                 tmpBuf(1:iLen) = msgBuf(1:iLen)
152                 WRITE(msgBuf,'(A,I6,A)') tmpBuf(1:iLen),ndiag(im,1,1),' |'
153                ENDIF
154             ENDIF             ENDIF
155             iLen = ILNBLNK(msgBuf)             iLen = ILNBLNK(msgBuf)
156             WRITE(dUnit,'(A)') msgBuf(1:iLen)             WRITE(dUnit,'(A)') msgBuf(1:iLen)
# Line 146  c       WRITE(dUnit,'(A)') ccLine Line 186  c       WRITE(dUnit,'(A)') ccLine
186           DO j=0,nRegions           DO j=0,nRegions
187             IF ( diagSt_region(j,ld).GE.1             IF ( diagSt_region(j,ld).GE.1
188       &          .AND. iLen+3.LE.MAX_LEN_MBUF) THEN       &          .AND. iLen+3.LE.MAX_LEN_MBUF) THEN
189               WRITE(msgBuf,'(A,I3)') msgBuf(1:iLen),j               tmpBuf(1:iLen) = msgBuf(1:iLen)
190                 WRITE(msgBuf,'(A,I3)') tmpBuf(1:iLen),j
191               iLen = iLen+3               iLen = iLen+3
192             ENDIF             ENDIF
193           ENDDO           ENDDO
# Line 154  c       WRITE(dUnit,'(A)') ccLine Line 195  c       WRITE(dUnit,'(A)') ccLine
195    
196           WRITE(dUnit,'(A)') ccFlds           WRITE(dUnit,'(A)') ccFlds
197           DO md=1,diagSt_nbActv(ld)           DO md=1,diagSt_nbActv(ld)
198             WRITE(msgBuf,'(I5,3A,I5,A,I5,A,I4,A)')             WRITE(msgBuf,'(I5,3A,2(I5,A))')
199       &       jSdiag(md,ld),' |', diagSt_Flds(md,ld),'|',iSdiag(md,ld),       &       jSdiag(md,ld),' |', diagSt_Flds(md,ld),'|',iSdiag(md,ld),
200       &       ' |', mSdiag(md,ld),' |'       &       ' |', mSdiag(md,ld),' |'
201             ipt = ABS(iSdiag(md,ld))             ipt = ABS(iSdiag(md,ld))
202             IF (ipt.NE.0) THEN             IF (ipt.NE.0) THEN
203              iLen = ILNBLNK(msgBuf)              iLen = ILNBLNK(msgBuf)
204              WRITE(msgBuf,'(A,1PE12.5,A)') msgBuf(1:iLen),              tmpBuf(1:iLen) = msgBuf(1:iLen)
205                WRITE(msgBuf,'(A,1PE12.5,A)') tmpBuf(1:iLen),
206       &                         qSdiag(0,0,ipt,1,1),' |'       &                         qSdiag(0,0,ipt,1,1),' |'
207             ENDIF             ENDIF
208             im = mSdiag(md,ld)             im = mSdiag(md,ld)
209             IF (im.NE.0) THEN             IF (im.NE.0) THEN
210              iLen = ILNBLNK(msgBuf)              iLen = ILNBLNK(msgBuf)
211              WRITE(msgBuf,'(A,1PE12.5,A)') msgBuf(1:iLen),              tmpBuf(1:iLen) = msgBuf(1:iLen)
212                WRITE(msgBuf,'(A,1PE12.5,A)') tmpBuf(1:iLen),
213       &                         qSdiag(0,0,im, 1,1),' |'       &                         qSdiag(0,0,im, 1,1),' |'
214             ENDIF             ENDIF
215             iLen = ILNBLNK(msgBuf)             iLen = ILNBLNK(msgBuf)

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

  ViewVC Help
Powered by ViewVC 1.1.22