/[MITgcm]/MITgcm/eesupp/src/print.F
ViewVC logotype

Diff of /MITgcm/eesupp/src/print.F

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

revision 1.6 by cnh, Thu May 21 18:30:08 1998 UTC revision 1.10 by adcroft, Wed Jul 15 22:16:10 1998 UTC
# Line 105  C Line 105  C
105        END        END
106    
107  CStartofinterface  CStartofinterface
108        SUBROUTINE PRINT_LIST_I( fld, lFld, index_type, ioUnit )        SUBROUTINE PRINT_LIST_I( fld, lFld, index_type, markEnd, compact, ioUnit )
109  C     /==========================================================\  C     /==========================================================\
110  C     | o SUBROUTINE PRINT_LIST_I                                |  C     | o SUBROUTINE PRINT_LIST_I                                |
111  C     |==========================================================|  C     |==========================================================|
# Line 127  C                  INDEX_K    => /* K = Line 127  C                  INDEX_K    => /* K =
127  C                  INDEX_I    => /* I = nnn */  C                  INDEX_I    => /* I = nnn */
128  C                  INDEX_J    => /* J = nnn */  C                  INDEX_J    => /* J = nnn */
129  C                  INDEX_NONE =>  C                  INDEX_NONE =>
130    C     compact -  Flag to control use of repeat symbol for same valued
131    C                fields.
132    C     markEnd -  Flag to control whether there is a separator after the
133    C                last element
134  C     ioUnit -  Unit number for IO.  C     ioUnit -  Unit number for IO.
135        INTEGER lFld        INTEGER lFld
136        INTEGER index_type        INTEGER index_type
137        INTEGER fld(lFld)        INTEGER fld(lFld)
138          LOGICAL markEnd
139          LOGICAL compact
140        INTEGER ioUnit        INTEGER ioUnit
141  CEndifinterface  CEndifinterface
142    
# Line 148  C     K    - Loop counter Line 154  C     K    - Loop counter
154        INTEGER nDup        INTEGER nDup
155        INTEGER xNew, xOld        INTEGER xNew, xOld
156        CHARACTER punc        CHARACTER punc
157        CHARACTER(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
158        CHARACTER*2 commOpen,commClose        CHARACTER*2 commOpen,commClose
159        CHARACTER*3 index_lab        CHARACTER*3 index_lab
160        INTEGER K        INTEGER K
# Line 170  C     K    - Loop counter Line 176  C     K    - Loop counter
176        xOld = fld(1)        xOld = fld(1)
177        DO K=2,lFld        DO K=2,lFld
178         xNew = fld(K  )         xNew = fld(K  )
179         IF ( xNew .NE. xOld ) THEN         IF ( .NOT. compact .OR. xNew .NE. xOld ) THEN
180          nDup = iHi-iLo+1          nDup = iHi-iLo+1
181          IF ( nDup .EQ. 1 ) THEN          IF ( nDup .EQ. 1 ) THEN
182           WRITE(msgBuf,'(A,I5,A)') '              ',xOld,punc           WRITE(msgBuf,'(A,I9,A)') '              ',xOld,punc
183           IF ( index_type .NE. INDEX_NONE )           IF ( index_type .NE. INDEX_NONE )
184       &    WRITE(msgBuf(45:),'(A,1X,A,I3,1X,A)') commOpen,index_lab,iLo,commClose       &    WRITE(msgBuf(45:),'(A,1X,A,I3,1X,A)') commOpen,index_lab,iLo,commClose
185          ELSE          ELSE
186           WRITE(msgBuf,'(I,'' '',A,I5,A)') nDup,'@',xOld,punc           WRITE(msgBuf,'(I,'' '',A,I9,A)') nDup,'@',xOld,punc
187           IF ( index_type .NE. INDEX_NONE )           IF ( index_type .NE. INDEX_NONE )
188       &    WRITE(msgBuf(45:),'(A,1X,A,I3,A,I3,1X,A)')       &    WRITE(msgBuf(45:),'(A,1X,A,I3,A,I3,1X,A)')
189       &    commOpen,index_lab,iLo,':',iHi,commClose       &    commOpen,index_lab,iLo,':',iHi,commClose
# Line 191  C     K    - Loop counter Line 197  C     K    - Loop counter
197         ENDIF         ENDIF
198        ENDDO        ENDDO
199        punc = ' '        punc = ' '
200          IF ( markEnd ) punc = ','
201        nDup = iHi-iLo+1        nDup = iHi-iLo+1
202        IF    ( nDup .EQ. 1 ) THEN        IF    ( nDup .EQ. 1 ) THEN
203         WRITE(msgBuf,'(A,I5,A)') '              ',xOld,punc         WRITE(msgBuf,'(A,I9,A)') '              ',xOld,punc
204         IF ( index_type .NE. INDEX_NONE )         IF ( index_type .NE. INDEX_NONE )
205       &  WRITE(msgBuf(45:),'(A,1X,A,I3,1X,A)') commOpen,index_lab,iLo,commClose       &  WRITE(msgBuf(45:),'(A,1X,A,I3,1X,A)') commOpen,index_lab,iLo,commClose
206        ELSEIF( nDup .GT. 1 ) THEN        ELSEIF( nDup .GT. 1 ) THEN
207         WRITE(msgBuf,'(I,'' '',A,I5,A)') nDup,'@',xOld,punc         WRITE(msgBuf,'(I,'' '',A,I9,A)') nDup,'@',xOld,punc
208         IF ( index_type .NE. INDEX_NONE )         IF ( index_type .NE. INDEX_NONE )
209       &  WRITE(msgBuf(45:),'(A,1X,A,I3,A,I3,1X,A)')       &  WRITE(msgBuf(45:),'(A,1X,A,I3,A,I3,1X,A)')
210       &  commOpen,index_lab,iLo,':',iHi,commClose       &  commOpen,index_lab,iLo,':',iHi,commClose
# Line 208  C     K    - Loop counter Line 215  C     K    - Loop counter
215        END        END
216    
217  CStartofinterface  CStartofinterface
218        SUBROUTINE PRINT_LIST_L( fld, lFld, index_type, ioUnit )        SUBROUTINE PRINT_LIST_L( fld, lFld, index_type, markEnd, compact, ioUnit )
219  C     /==========================================================\  C     /==========================================================\
220  C     | o SUBROUTINE PRINT_LIST_L                                |  C     | o SUBROUTINE PRINT_LIST_L                                |
221  C     |==========================================================|  C     |==========================================================|
# Line 230  C                  INDEX_K    => /* K = Line 237  C                  INDEX_K    => /* K =
237  C                  INDEX_I    => /* I = nnn */  C                  INDEX_I    => /* I = nnn */
238  C                  INDEX_J    => /* J = nnn */  C                  INDEX_J    => /* J = nnn */
239  C                  INDEX_NONE =>  C                  INDEX_NONE =>
240    C     compact -  Flag to control use of repeat symbol for same valued
241    C                fields.
242    C     markEnd -  Flag to control whether there is a separator after the
243    C                last element
244  C     ioUnit -  Unit number for IO.  C     ioUnit -  Unit number for IO.
245        INTEGER lFld        INTEGER lFld
246        INTEGER index_type        INTEGER index_type
247        LOGICAL fld(lFld)        LOGICAL fld(lFld)
248          LOGICAL markEnd
249          LOGICAL compact
250        INTEGER ioUnit        INTEGER ioUnit
251  CEndifinterface  CEndifinterface
252    
# Line 251  C     K    - Loop counter Line 264  C     K    - Loop counter
264        INTEGER nDup        INTEGER nDup
265        LOGICAL xNew, xOld        LOGICAL xNew, xOld
266        CHARACTER punc        CHARACTER punc
267        CHARACTER(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
268        CHARACTER*2 commOpen,commClose        CHARACTER*2 commOpen,commClose
269        CHARACTER*3 index_lab        CHARACTER*3 index_lab
270        INTEGER K        INTEGER K
# Line 273  C     K    - Loop counter Line 286  C     K    - Loop counter
286        xOld = fld(1)        xOld = fld(1)
287        DO K=2,lFld        DO K=2,lFld
288         xNew = fld(K  )         xNew = fld(K  )
289         IF ( xNew .NE. xOld ) THEN         IF ( .NOT. compact .OR. xNew .NE. xOld ) THEN
290          nDup = iHi-iLo+1          nDup = iHi-iLo+1
291          IF ( nDup .EQ. 1 ) THEN          IF ( nDup .EQ. 1 ) THEN
292           WRITE(msgBuf,'(A,L5,A)') '              ',xOld,punc           WRITE(msgBuf,'(A,L5,A)') '              ',xOld,punc
# Line 294  C     K    - Loop counter Line 307  C     K    - Loop counter
307         ENDIF         ENDIF
308        ENDDO        ENDDO
309        punc = ' '        punc = ' '
310          IF ( markEnd ) punc = ','
311        nDup = iHi-iLo+1        nDup = iHi-iLo+1
312        IF    ( nDup .EQ. 1 ) THEN        IF    ( nDup .EQ. 1 ) THEN
313         WRITE(msgBuf,'(A,L5,A)') '              ',xOld,punc         WRITE(msgBuf,'(A,L5,A)') '              ',xOld,punc
# Line 311  C     K    - Loop counter Line 325  C     K    - Loop counter
325        END        END
326    
327  CStartofinterface  CStartofinterface
328        SUBROUTINE PRINT_LIST_R8( fld, lFld, index_type, ioUnit )        SUBROUTINE PRINT_LIST_R8( fld, lFld, index_type, markEnd, compact, ioUnit )
329  C     /==========================================================\  C     /==========================================================\
330  C     | o SUBROUTINE PRINT_LIST_R8                               |  C     | o SUBROUTINE PRINT_LIST_R8                               |
331  C     |==========================================================|  C     |==========================================================|
# Line 333  C                  INDEX_K    => /* K = Line 347  C                  INDEX_K    => /* K =
347  C                  INDEX_I    => /* I = nnn */  C                  INDEX_I    => /* I = nnn */
348  C                  INDEX_J    => /* J = nnn */  C                  INDEX_J    => /* J = nnn */
349  C                  INDEX_NONE =>  C                  INDEX_NONE =>
350    C     compact -  Flag to control use of repeat symbol for same valued
351    C                fields.
352    C     markEnd -  Flag to control whether there is a separator after the
353    C                last element
354  C     ioUnit -  Unit number for IO.  C     ioUnit -  Unit number for IO.
355        INTEGER lFld        INTEGER lFld
356        INTEGER index_type        INTEGER index_type
357        Real*8  fld(lFld)        Real*8  fld(lFld)
358          LOGICAL markEnd
359          LOGICAL compact
360        INTEGER ioUnit        INTEGER ioUnit
361  CEndifinterface  CEndifinterface
362    
# Line 354  C     K    - Loop counter Line 374  C     K    - Loop counter
374        INTEGER nDup        INTEGER nDup
375        Real*8 xNew, xOld        Real*8 xNew, xOld
376        CHARACTER punc        CHARACTER punc
377        CHARACTER(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
378        CHARACTER*2 commOpen,commClose        CHARACTER*2 commOpen,commClose
379        CHARACTER*3 index_lab        CHARACTER*3 index_lab
380        INTEGER K        INTEGER K
# Line 376  C     K    - Loop counter Line 396  C     K    - Loop counter
396        xOld = fld(1)        xOld = fld(1)
397        DO K=2,lFld        DO K=2,lFld
398         xNew = fld(K  )         xNew = fld(K  )
399         IF ( xNew .NE. xOld ) THEN         IF ( .NOT. compact .OR. xNew .NE. xOld ) THEN
400          nDup = iHi-iLo+1          nDup = iHi-iLo+1
401          IF ( nDup .EQ. 1 ) THEN          IF ( nDup .EQ. 1 ) THEN
402           WRITE(msgBuf,'(A,1PE23.15,A)') '              ',xOld,punc           WRITE(msgBuf,'(A,1PE23.15,A)') '              ',xOld,punc
# Line 397  C     K    - Loop counter Line 417  C     K    - Loop counter
417         ENDIF         ENDIF
418        ENDDO        ENDDO
419        punc = ' '        punc = ' '
420          IF ( markEnd ) punc = ','
421        nDup = iHi-iLo+1        nDup = iHi-iLo+1
422        IF    ( nDup .EQ. 1 ) THEN        IF    ( nDup .EQ. 1 ) THEN
423         WRITE(msgBuf,'(A,1PE23.15,A)') '              ',xOld,punc         WRITE(msgBuf,'(A,1PE23.15,A)') '              ',xOld,punc
# Line 414  C     K    - Loop counter Line 435  C     K    - Loop counter
435        END        END
436    
437  CStartOfInterface  CStartOfInterface
438        SUBROUTINE PRINT_MAPR4 ( fld, fldTitle, plotMode,        SUBROUTINE PRINT_MAPRS ( fld, fldTitle, plotMode,
439       I        iLo,   iHi,   jLo,   jHi,  kLo,  kHi, nBx, nBy,       I        iLo,   iHi,   jLo,   jHi,  kLo,  kHi, nBx, nBy,
440       I       iMin,  iMax,  iStr,       I       iMin,  iMax,  iStr,
441       I       jMin,  jMax,  jStr,       I       jMin,  jMax,  jStr,
# Line 469  C     kStr Line 490  C     kStr
490        INTEGER jLo, jHi        INTEGER jLo, jHi
491        INTEGER kLo, kHi        INTEGER kLo, kHi
492        INTEGER nBx, nBy        INTEGER nBx, nBy
493        Real*4 fld(iLo:iHi,jLo:jHi,kLo:kHi,nBx,nBy)        _RS fld(iLo:iHi,jLo:jHi,kLo:kHi,nBx,nBy)
494        INTEGER iMin, iMax, iStr        INTEGER iMin, iMax, iStr
495        INTEGER jMin, jMax, jStr        INTEGER jMin, jMax, jStr
496        INTEGER kMin, kMax, kStr        INTEGER kMin, kMax, kStr
# Line 808  C--   Write delimiter Line 829  C--   Write delimiter
829        END        END
830    
831  CStartOfInterface  CStartOfInterface
832        SUBROUTINE PRINT_MAPR8 ( fld, fldTitle, plotMode,        SUBROUTINE PRINT_MAPRL ( fld, fldTitle, plotMode,
833       I        iLo,   iHi,   jLo,   jHi,  kLo,  kHi, nBx, nBy,       I        iLo,   iHi,   jLo,   jHi,  kLo,  kHi, nBx, nBy,
834       I       iMin,  iMax,  iStr,       I       iMin,  iMax,  iStr,
835       I       jMin,  jMax,  jStr,       I       jMin,  jMax,  jStr,
# Line 816  CStartOfInterface Line 837  CStartOfInterface
837       I      bxMin, bxMax,  bxStr,       I      bxMin, bxMax,  bxStr,
838       I      byMin, byMax,  byStr )       I      byMin, byMax,  byStr )
839  C     /==========================================================\  C     /==========================================================\
840  C     | SUBROUTINE PRINT_MAPR8                                   |  C     | SUBROUTINE PRINT_MAPRL                                   |
841  C     | o Does textual mapping printing of a field.              |  C     | o Does textual mapping printing of a field.              |
842  C     |==========================================================|  C     |==========================================================|
843  C     | This routine does the actual formatting of the data      |  C     | This routine does the actual formatting of the data      |
# Line 863  C     kStr Line 884  C     kStr
884        INTEGER jLo, jHi        INTEGER jLo, jHi
885        INTEGER kLo, kHi        INTEGER kLo, kHi
886        INTEGER nBx, nBy        INTEGER nBx, nBy
887        Real*8 fld(iLo:iHi,jLo:jHi,kLo:kHi,nBx,nBy)        _RL fld(iLo:iHi,jLo:jHi,kLo:kHi,nBx,nBy)
888        INTEGER iMin, iMax, iStr        INTEGER iMin, iMax, iStr
889        INTEGER jMin, jMax, jStr        INTEGER jMin, jMax, jStr
890        INTEGER kMin, kMax, kStr        INTEGER kMin, kMax, kStr

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

  ViewVC Help
Powered by ViewVC 1.1.22