/[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.17 by cnh, Sun Feb 4 14:38:44 2001 UTC revision 1.18 by cnh, Fri Sep 21 03:54:35 2001 UTC
# Line 19  C--    o print_mapr8    Formats ABCD... Line 19  C--    o print_mapr8    Formats ABCD...
19  C--                     Uses print_message for writing  C--                     Uses print_message for writing
20  C--    o print_message  Does IO with unhighlighted header  C--    o print_message  Does IO with unhighlighted header
21    
22  CStartOfInterface  CBOP              
23    
24    C     !ROUTINE: PRINT_ERROR
25    
26    C     !INTERFACE:
27        SUBROUTINE PRINT_ERROR( message , myThid )        SUBROUTINE PRINT_ERROR( message , myThid )
 C     /============================================================\  
 C     | SUBROUTINE PRINT_ERROR                                     |  
 C     | o Write out error message using "standard" format.         |  
 C     | Notes                                                      |  
 C     | =====                                                      |  
 C     | o Some system   I/O is not "thread-safe". For this reason  |  
 C     |   without the FMTFTN_IO_THREAD_SAFE directive set a        |  
 C     |   critical region is defined around the write here. In some|  
 C     |   cases  BEGIN_CRIT() is approximated by only doing writes |  
 C     |   for thread number 1 - writes for other threads are       |  
 C     |   ignored!                                                 |  
 C     | o In a non-parallel form these routines can still be used. |  
 C     |   to produce pretty printed output!                        |  
 C     \============================================================/  
28        IMPLICIT NONE        IMPLICIT NONE
29    
30    C     !DESCRIPTION:
31    C     *============================================================*
32    C     | SUBROUTINE PRINT_ERROR                                      
33    C     | o Write out error message using "standard" format.          
34    C     *============================================================*
35    C     | Notes                                                      
36    C     | =====                                                      
37    C     | o Some system   I/O is not "thread-safe". For this reason  
38    C     |   without the FMTFTN_IO_THREAD_SAFE directive set a        
39    C     |   critical region is defined around the write here. In some
40    C     |   cases  BEGIN_CRIT() is approximated by only doing writes  
41    C     |   for thread number 1 - writes for other threads are        
42    C     |   ignored!                                                  
43    C     | o In a non-parallel form these routines are still used  
44    C     |   to produce pretty printed output. The process and thread
45    C     |   id prefix is omitted in this case.
46    C     *============================================================*
47    
48    C     !USES:
49  C     == Global data ==  C     == Global data ==
50  #include "SIZE.h"  #include "SIZE.h"
51  #include "EEPARAMS.h"  #include "EEPARAMS.h"
52  #include "EESUPPORT.h"  #include "EESUPPORT.h"
 C     == Routine arguments ==  
       CHARACTER*(*) message  
       INTEGER       myThid  
 CEndOfInterface  
53        INTEGER  IFNBLNK        INTEGER  IFNBLNK
54        EXTERNAL IFNBLNK        EXTERNAL IFNBLNK
55        INTEGER  ILNBLNK        INTEGER  ILNBLNK
56        EXTERNAL ILNBLNK        EXTERNAL ILNBLNK
57    
58    C     !INPUT/OUTPUT PARAMETERS:
59    C     == Routine arguments ==
60    C     message :: Text string to print
61    C     myThid  :: Thread number of this instance
62          CHARACTER*(*) message
63          INTEGER       myThid
64    
65    C     !LOCAL VARIABLES:
66  C     == Local variables ==  C     == Local variables ==
67    C     iStart, iEnd :: Temps. for string indexing
68    C     idString     :: Temp. for building message prefix
69        INTEGER iStart        INTEGER iStart
70        INTEGER iEnd        INTEGER iEnd
71        CHARACTER*9 idString        CHARACTER*9 idString
72    CEOP
73    
74  C--   Find beginning and end of message  C--   Find beginning and end of message
75        iStart = IFNBLNK( message )        iStart = IFNBLNK( message )
76        iEnd   = ILNBLNK( message )        iEnd   = ILNBLNK( message )
# Line 107  C Line 126  C
126        GOTO 1000        GOTO 1000
127        END        END
128    
129  CStartofinterface  CBOP
130    C     !ROUTINE: PRINT_LIST_I
131    
132    C     !INTERFACE:
133        SUBROUTINE PRINT_LIST_I( fld, lFld, index_type,        SUBROUTINE PRINT_LIST_I( fld, lFld, index_type,
134       &                         markEnd, compact, ioUnit )       &                         markEnd, compact, ioUnit )
 C     /==========================================================\  
 C     | o SUBROUTINE PRINT_LIST_I                                |  
 C     |==========================================================|  
 C     | Routine for producing list of values for a field with    |  
 C     | duplicate values collected into                          |  
 C     |    n @ value                                             |  
 C     | record.                                                  |  
 C     \==========================================================/  
135        IMPLICIT NONE        IMPLICIT NONE
136    C     !DESCRIPTION:
137    C     *==========================================================*
138    C     | o SUBROUTINE PRINT_LIST_I                                
139    C     *==========================================================*
140    C     | Routine for producing list of values for a field with    
141    C     | duplicate values collected into                          
142    C     |    n @ value                                              
143    C     | record.                                                  
144    C     *==========================================================*
145    
146    C     !USES:
147  C     == Global data ==    C     == Global data ==  
148  #include "SIZE.h"  #include "SIZE.h"
149  #include "EEPARAMS.h"  #include "EEPARAMS.h"
150    
151    C     !INPUT/OUTPUT PARAMETERS:
152  C     == Routine arguments ==  C     == Routine arguments ==
153  C     fld    -  Data to be printed  C     fld    ::  Data to be printed
154  C     lFld   -  Number of elements to be printed  C     lFld   ::  Number of elements to be printed
155  C     index_type - Flag indicating which type of index to print  C     index_type :: Flag indicating which type of index to print
156  C                  INDEX_K    => /* K = nnn */  C                   INDEX_K    => /* K = nnn */
157  C                  INDEX_I    => /* I = nnn */  C                   INDEX_I    => /* I = nnn */
158  C                  INDEX_J    => /* J = nnn */  C                   INDEX_J    => /* J = nnn */
159  C                  INDEX_NONE =>  C                   INDEX_NONE =>
160  C     compact -  Flag to control use of repeat symbol for same valued  C     compact ::  Flag to control use of repeat symbol for same valued
161  C                fields.  C                 fields.
162  C     markEnd -  Flag to control whether there is a separator after the  C     markEnd ::  Flag to control whether there is a separator after the
163  C                last element  C                 last element
164  C     ioUnit -  Unit number for IO.  C     ioUnit ::   Unit number for IO.
165        INTEGER lFld        INTEGER lFld
166        INTEGER index_type        INTEGER index_type
167        INTEGER fld(lFld)        INTEGER fld(lFld)
168        LOGICAL markEnd        LOGICAL markEnd
169        LOGICAL compact        LOGICAL compact
170        INTEGER ioUnit        INTEGER ioUnit
 CEndifinterface  
171    
172    C     !LOCAL VARIABLES:
173  C     == Local variables ==  C     == Local variables ==
174  C     iLo  - Range index holders for selecting elements with  C     iLo  - Range index holders for selecting elements with
175  C     iHi    with the same value  C     iHi    with the same value
# Line 163  C     K    - Loop counter Line 188  C     K    - Loop counter
188        CHARACTER*2 commOpen,commClose        CHARACTER*2 commOpen,commClose
189        CHARACTER*3 index_lab        CHARACTER*3 index_lab
190        INTEGER K        INTEGER K
191    CEOP
192    
193        IF     ( index_type .EQ. INDEX_I ) THEN        IF     ( index_type .EQ. INDEX_I ) THEN
194         index_lab = 'I ='         index_lab = 'I ='
# Line 221  C     K    - Loop counter Line 247  C     K    - Loop counter
247        RETURN        RETURN
248        END        END
249    
250  CStartofinterface  CBOP
251    C     !ROUTINE: PRINT_LIST_L
252    
253    C     !INTERFACE:
254        SUBROUTINE PRINT_LIST_L( fld, lFld, index_type, markEnd,        SUBROUTINE PRINT_LIST_L( fld, lFld, index_type, markEnd,
255       &                         compact, ioUnit )       &                         compact, ioUnit )
 C     /==========================================================\  
 C     | o SUBROUTINE PRINT_LIST_L                                |  
 C     |==========================================================|  
 C     | Routine for producing list of values for a field with    |  
 C     | duplicate values collected into                          |  
 C     |    n @ value                                             |  
 C     | record.                                                  |  
 C     \==========================================================/  
256        IMPLICIT NONE        IMPLICIT NONE
257    C     !DESCRIPTION:
258    C     *==========================================================*
259    C     | o SUBROUTINE PRINT_LIST_L                                
260    C     *==========================================================*
261    C     | Routine for producing list of values for a field with    
262    C     | duplicate values collected into                          
263    C     |    n @ value                                              
264    C     | record.                                                  
265    C     *==========================================================*
266    
267    C     !USES:
268  C     == Global data ==    C     == Global data ==  
269  #include "SIZE.h"  #include "SIZE.h"
270  #include "EEPARAMS.h"  #include "EEPARAMS.h"
271    
272    C     !INPUT/OUTPUT PARAMETERS:
273  C     == Routine arguments ==  C     == Routine arguments ==
274  C     fld    -  Data to be printed  C     fld    -  Data to be printed
275  C     lFld   -  Number of elements to be printed  C     lFld   -  Number of elements to be printed
# Line 257  C     ioUnit -  Unit number for IO. Line 289  C     ioUnit -  Unit number for IO.
289        LOGICAL markEnd        LOGICAL markEnd
290        LOGICAL compact        LOGICAL compact
291        INTEGER ioUnit        INTEGER ioUnit
 CEndifinterface  
292    
293    C     !LOCAL VARIABLES:
294  C     == Local variables ==  C     == Local variables ==
295  C     iLo  - Range index holders for selecting elements with  C     iLo  - Range index holders for selecting elements with
296  C     iHi    with the same value  C     iHi    with the same value
# Line 277  C     K    - Loop counter Line 309  C     K    - Loop counter
309        CHARACTER*2 commOpen,commClose        CHARACTER*2 commOpen,commClose
310        CHARACTER*3 index_lab        CHARACTER*3 index_lab
311        INTEGER K        INTEGER K
312    CEOP
313    
314        IF     ( index_type .EQ. INDEX_I ) THEN        IF     ( index_type .EQ. INDEX_I ) THEN
315         index_lab = 'I ='         index_lab = 'I ='
# Line 335  C     K    - Loop counter Line 368  C     K    - Loop counter
368        RETURN        RETURN
369        END        END
370    
371  CStartofinterface  CBOP
372    C     !ROUTINE: PRINT_LIST_R8
373    C     !INTERFACE:
374        SUBROUTINE PRINT_LIST_R8( fld, lFld, index_type,        SUBROUTINE PRINT_LIST_R8( fld, lFld, index_type,
375       &    markEnd, compact, ioUnit )       &    markEnd, compact, ioUnit )
 C     /==========================================================\  
 C     | o SUBROUTINE PRINT_LIST_R8                               |  
 C     |==========================================================|  
 C     | Routine for producing list of values for a field with    |  
 C     | duplicate values collected into                          |  
 C     |    n @ value                                             |  
 C     | record.                                                  |  
 C     \==========================================================/  
376        IMPLICIT NONE        IMPLICIT NONE
377    C     !DESCRIPTION:
378    C     *==========================================================*
379    C     | o SUBROUTINE PRINT_LIST_R8                                
380    C     *==========================================================*
381    C     | Routine for producing list of values for a field with    
382    C     | duplicate values collected into                          
383    C     |    n @ value                                              
384    C     | record.                                                  
385    C     *==========================================================*
386    
387  C     == Global data ==    C     !USES:
388    C     == Global data ==
389  #include "SIZE.h"  #include "SIZE.h"
390  #include "EEPARAMS.h"  #include "EEPARAMS.h"
391    
392    C     !INPUT/OUTPUT PARAMETERS:
393  C     == Routine arguments ==  C     == Routine arguments ==
394  C     fld    -  Data to be printed  C     fld    -  Data to be printed
395  C     lFld   -  Number of elements to be printed  C     lFld   -  Number of elements to be printed
# Line 371  C     ioUnit -  Unit number for IO. Line 409  C     ioUnit -  Unit number for IO.
409        LOGICAL markEnd        LOGICAL markEnd
410        LOGICAL compact        LOGICAL compact
411        INTEGER ioUnit        INTEGER ioUnit
 CEndifinterface  
412    
413    C     !LOCA VARIABLES:
414  C     == Local variables ==  C     == Local variables ==
415  C     iLo  - Range index holders for selecting elements with  C     iLo  - Range index holders for selecting elements with
416  C     iHi    with the same value  C     iHi    with the same value
# Line 391  C     K    - Loop counter Line 429  C     K    - Loop counter
429        CHARACTER*2 commOpen,commClose        CHARACTER*2 commOpen,commClose
430        CHARACTER*3 index_lab        CHARACTER*3 index_lab
431        INTEGER K        INTEGER K
432    CEOP
433    
434        IF     ( index_type .EQ. INDEX_I ) THEN        IF     ( index_type .EQ. INDEX_I ) THEN
435         index_lab = 'I ='         index_lab = 'I ='
# Line 451  C     K    - Loop counter Line 490  C     K    - Loop counter
490        RETURN        RETURN
491        END        END
492    
493  CStartOfInterface  CBOP
494    C     !ROUTINE: PRINT_MAPRS
495    C     !INTERFACE:
496        SUBROUTINE PRINT_MAPRS ( fld, fldTitle, plotMode,        SUBROUTINE PRINT_MAPRS ( fld, fldTitle, plotMode,
497       I        iLo,   iHi,   jLo,   jHi,  kLo,  kHi, nBx, nBy,       I        iLo,   iHi,   jLo,   jHi,  kLo,  kHi, nBx, nBy,
498       I       iMin,  iMax,  iStr,       I       iMin,  iMax,  iStr,
# Line 459  CStartOfInterface Line 500  CStartOfInterface
500       I       kMin, kMax,   kStr,       I       kMin, kMax,   kStr,
501       I      bxMin, bxMax,  bxStr,       I      bxMin, bxMax,  bxStr,
502       I      byMin, byMax,  byStr )       I      byMin, byMax,  byStr )
 C     /==========================================================\  
 C     | SUBROUTINE PRINT_MAPR4                                   |  
 C     | o Does textual mapping printing of a field.              |  
 C     |==========================================================|  
 C     | This routine does the actual formatting of the data      |  
 C     | and printing to a file. It assumes an array using the    |  
 C     | MITgcm UV indexing scheme and base index variables.      |  
 C     | User code should call an interface routine like          |  
 C     | PLOT_FIELD_XYR4( ... ) rather than this code directly.   |  
 C     | Text plots can be oriented XY, YZ, XZ. An orientation    |  
 C     | is specficied through the "plotMode" argument. All the   |  
 C     | plots made by a single call to this routine will use the |  
 C     | same contour interval. The plot range (iMin,...,byStr)   |  
 C     | can be three-dimensional. A separate plot is made for    |  
 C     | each point in the plot range normal to the orientation.  |  
 C     | e.g. if the orientation is XY (plotMode = PRINT_MAP_XY). |  
 C     |      kMin =1, kMax = 5 and kStr = 2 will produce three XY|  
 C     |      plots - one for K=1, one for K=3 and one for K=5.   |  
 C     |      Each plot would have extents iMin:iMax step iStr    |  
 C     |      and jMin:jMax step jStr.                            |  
 C     \==========================================================/  
503        IMPLICIT NONE        IMPLICIT NONE
504    C     !DESCRIPTION:
505    C     *==========================================================*
506    C     | SUBROUTINE PRINT_MAPR4                                    
507    C     | o Does textual mapping printing of a field.              
508    C     *==========================================================*
509    C     | This routine does the actual formatting of the data      
510    C     | and printing to a file. It assumes an array using the    
511    C     | MITgcm UV indexing scheme and base index variables.      
512    C     | User code should call an interface routine like          
513    C     | PLOT_FIELD_XYR4( ... ) rather than this code directly.    
514    C     | Text plots can be oriented XY, YZ, XZ. An orientation    
515    C     | is specficied through the "plotMode" argument. All the    
516    C     | plots made by a single call to this routine will use the  
517    C     | same contour interval. The plot range (iMin,...,byStr)    
518    C     | can be three-dimensional. A separate plot is made for    
519    C     | each point in the plot range normal to the orientation.  
520    C     | e.g. if the orientation is XY (plotMode = PRINT_MAP_XY).  
521    C     |      kMin =1, kMax = 5 and kStr = 2 will produce three XY
522    C     |      plots - one for K=1, one for K=3 and one for K=5.    
523    C     |      Each plot would have extents iMin:iMax step iStr    
524    C     |      and jMin:jMax step jStr.                            
525    C     *==========================================================*
526    
527    C     !USES:
528  C     == Global variables ==  C     == Global variables ==
529  #include "SIZE.h"  #include "SIZE.h"
530  #include "EEPARAMS.h"  #include "EEPARAMS.h"
531  #include "EESUPPORT.h"  #include "EESUPPORT.h"
532          INTEGER  IFNBLNK
533          EXTERNAL IFNBLNK
534          INTEGER  ILNBLNK
535          EXTERNAL ILNBLNK
536    
537    C     !INPUT/OUTPUT PARAMETERS:
538  C     == Routine arguments ==  C     == Routine arguments ==
539  C     fld        - Real*4 array holding data to be plotted  C     fld        - Real*4 array holding data to be plotted
540  C     fldTitle   - Name of field to be plotted  C     fldTitle   - Name of field to be plotted
# Line 514  C     kStr Line 562  C     kStr
562        INTEGER kMin, kMax, kStr        INTEGER kMin, kMax, kStr
563        INTEGER bxMin, bxMax, bxStr        INTEGER bxMin, bxMax, bxStr
564        INTEGER byMin, byMax, byStr        INTEGER byMin, byMax, byStr
 CEndOfInterface  
 C     == Local variables ==  
       INTEGER  IFNBLNK  
       EXTERNAL IFNBLNK  
       INTEGER  ILNBLNK  
       EXTERNAL ILNBLNK  
565    
566    C     !LOCAL VARIABLES:
567  C     == Local variables ==  C     == Local variables ==
568  C     plotBuf - Buffer for building plot record  C     plotBuf - Buffer for building plot record
569  C     chList  - Character string used for plot  C     chList  - Character string used for plot
# Line 569  C               Str  - stride within blo Line 612  C               Str  - stride within blo
612        INTEGER I, J, K, iStrngLo, iStrngHi, iBuf, iDx        INTEGER I, J, K, iStrngLo, iStrngHi, iBuf, iDx
613        INTEGER bi, bj, bk        INTEGER bi, bj, bk
614        LOGICAL validRange        LOGICAL validRange
615    CEOP
616    
617        chList = '-abcdefghijklmnopqrstuvwxyz+'        chList = '-abcdefghijklmnopqrstuvwxyz+'
618        small  =  1. _d -15        small  =  1. _d -15
# Line 860  C--   Write delimiter Line 904  C--   Write delimiter
904        RETURN        RETURN
905        END        END
906    
907  CStartOfInterface  CBOP
908    C     !ROUTINE: PRINT_MAPRL
909    
910    C     !INTERFACE:
911        SUBROUTINE PRINT_MAPRL ( fld, fldTitle, plotMode,        SUBROUTINE PRINT_MAPRL ( fld, fldTitle, plotMode,
912       I        iLo,   iHi,   jLo,   jHi,  kLo,  kHi, nBx, nBy,       I        iLo,   iHi,   jLo,   jHi,  kLo,  kHi, nBx, nBy,
913       I       iMin,  iMax,  iStr,       I       iMin,  iMax,  iStr,
# Line 868  CStartOfInterface Line 915  CStartOfInterface
915       I       kMin, kMax,   kStr,       I       kMin, kMax,   kStr,
916       I      bxMin, bxMax,  bxStr,       I      bxMin, bxMax,  bxStr,
917       I      byMin, byMax,  byStr )       I      byMin, byMax,  byStr )
 C     /==========================================================\  
 C     | SUBROUTINE PRINT_MAPRL                                   |  
 C     | o Does textual mapping printing of a field.              |  
 C     |==========================================================|  
 C     | This routine does the actual formatting of the data      |  
 C     | and printing to a file. It assumes an array using the    |  
 C     | MITgcm UV indexing scheme and base index variables.      |  
 C     | User code should call an interface routine like          |  
 C     | PLOT_FIELD_XYR8( ... ) rather than this code directly.   |  
 C     | Text plots can be oriented XY, YZ, XZ. An orientation    |  
 C     | is specficied through the "plotMode" argument. All the   |  
 C     | plots made by a single call to this routine will use the |  
 C     | same contour interval. The plot range (iMin,...,byStr)   |  
 C     | can be three-dimensional. A separate plot is made for    |  
 C     | each point in the plot range normal to the orientation.  |  
 C     | e.g. if the orientation is XY (plotMode = PRINT_MAP_XY). |  
 C     |      kMin =1, kMax = 5 and kStr = 2 will produce three XY|  
 C     |      plots - one for K=1, one for K=3 and one for K=5.   |  
 C     |      Each plot would have extents iMin:iMax step iStr    |  
 C     |      and jMin:jMax step jStr.                            |  
 C     \==========================================================/  
918        IMPLICIT NONE        IMPLICIT NONE
919    
920    C     !DESCRIPTION:
921    C     *==========================================================*
922    C     | SUBROUTINE PRINT_MAPRL                                    
923    C     | o Does textual mapping printing of a field.              
924    C     *==========================================================*
925    C     | This routine does the actual formatting of the data      
926    C     | and printing to a file. It assumes an array using the    
927    C     | MITgcm UV indexing scheme and base index variables.      
928    C     | User code should call an interface routine like          
929    C     | PLOT_FIELD_XYR8( ... ) rather than this code directly.    
930    C     | Text plots can be oriented XY, YZ, XZ. An orientation    
931    C     | is specficied through the "plotMode" argument. All the    
932    C     | plots made by a single call to this routine will use the  
933    C     | same contour interval. The plot range (iMin,...,byStr)    
934    C     | can be three-dimensional. A separate plot is made for    
935    C     | each point in the plot range normal to the orientation.  
936    C     | e.g. if the orientation is XY (plotMode = PRINT_MAP_XY).  
937    C     |      kMin =1, kMax = 5 and kStr = 2 will produce three XY
938    C     |      plots - one for K=1, one for K=3 and one for K=5.    
939    C     |      Each plot would have extents iMin:iMax step iStr    
940    C     |      and jMin:jMax step jStr.                            
941    C     *==========================================================*
942          IMPLICIT NONE
943    
944    C     !USES:
945  C     == Global variables ==  C     == Global variables ==
946  #include "SIZE.h"  #include "SIZE.h"
947  #include "EEPARAMS.h"  #include "EEPARAMS.h"
948  #include "EESUPPORT.h"  #include "EESUPPORT.h"
949          INTEGER  IFNBLNK
950          EXTERNAL IFNBLNK
951          INTEGER  ILNBLNK
952          EXTERNAL ILNBLNK
953    
954    C     !INPUT/OUTPUT PARAMETERS:
955  C     == Routine arguments ==  C     == Routine arguments ==
956  C     fld        - Real*8 array holding data to be plotted  C     fld        - Real*8 array holding data to be plotted
957  C     fldTitle   - Name of field to be plotted  C     fldTitle   - Name of field to be plotted
# Line 923  C     kStr Line 979  C     kStr
979        INTEGER kMin, kMax, kStr        INTEGER kMin, kMax, kStr
980        INTEGER bxMin, bxMax, bxStr        INTEGER bxMin, bxMax, bxStr
981        INTEGER byMin, byMax, byStr        INTEGER byMin, byMax, byStr
 CEndOfInterface  
 C     == Local variables ==  
       INTEGER  IFNBLNK  
       EXTERNAL IFNBLNK  
       INTEGER  ILNBLNK  
       EXTERNAL ILNBLNK  
982    
983    C     !LOCAL VARIABLES:
984  C     == Local variables ==  C     == Local variables ==
985  C     plotBuf - Buffer for building plot record  C     plotBuf - Buffer for building plot record
986  C     chList  - Character string used for plot  C     chList  - Character string used for plot
# Line 978  C               Str  - stride within blo Line 1029  C               Str  - stride within blo
1029        INTEGER I, J, K, iStrngLo, iStrngHi, iBuf, iDx        INTEGER I, J, K, iStrngLo, iStrngHi, iBuf, iDx
1030        INTEGER bi, bj, bk        INTEGER bi, bj, bk
1031        LOGICAL validRange        LOGICAL validRange
1032    CEOP
1033    
1034        chList = '-abcdefghijklmnopqrstuvwxyz+'        chList = '-abcdefghijklmnopqrstuvwxyz+'
1035        small  = 1. _d -15        small  = 1. _d -15
# Line 1267  C--   Write delimiter Line 1319  C--   Write delimiter
1319        RETURN        RETURN
1320        END        END
1321    
1322  CStartOfInterface  CBOP
1323    C     !ROUTINE: PRINT_MESSAGE
1324    
1325    C     !INTERFACE:
1326        SUBROUTINE PRINT_MESSAGE( message, unit, sq , myThid )        SUBROUTINE PRINT_MESSAGE( message, unit, sq , myThid )
 C     /============================================================\  
 C     | SUBROUTINE PRINT_MESSAGE                                   |  
 C     | o Write out informational message using "standard" format. |  
 C     | Notes                                                      |  
 C     | =====                                                      |  
 C     | o Some system   I/O is not "thread-safe". For this reason  |  
 C     |   without the FMTFTN_IO_THREAD_SAFE directive set a        |  
 C     |   critical region is defined around the write here. In some|  
 C     |   cases  BEGIN_CRIT() is approximated by only doing writes |  
 C     |   for thread number 1 - writes for other threads are       |  
 C     |   ignored!                                                 |  
 C     | o In a non-parallel form these routines can still be used. |  
 C     |   to produce pretty printed output!                        |  
 C     \============================================================/  
1327        IMPLICIT NONE        IMPLICIT NONE
1328    C     !DESCRIPTION:
1329    C     *============================================================*
1330    C     | SUBROUTINE PRINT_MESSAGE                                    
1331    C     | o Write out informational message using "standard" format.  
1332    C     *============================================================*
1333    C     | Notes                                                      
1334    C     | =====                                                      
1335    C     | o Some system   I/O is not "thread-safe". For this reason  
1336    C     |   without the FMTFTN_IO_THREAD_SAFE directive set a        
1337    C     |   critical region is defined around the write here. In some
1338    C     |   cases  BEGIN_CRIT() is approximated by only doing writes  
1339    C     |   for thread number 1 - writes for other threads are        
1340    C     |   ignored!                                                  
1341    C     | o In a non-parallel form these routines can still be used.  
1342    C     |   to produce pretty printed output!                        
1343    C     *============================================================*
1344    
1345    C     !USES:
1346  C     == Global data ==  C     == Global data ==
1347  #include "SIZE.h"  #include "SIZE.h"
1348  #include "EEPARAMS.h"  #include "EEPARAMS.h"
1349  #include "EESUPPORT.h"  #include "EESUPPORT.h"
1350          INTEGER  IFNBLNK
1351          EXTERNAL IFNBLNK
1352          INTEGER  ILNBLNK
1353          EXTERNAL ILNBLNK
1354    
1355    C     !INPUT/OUTPUT PARAMETERS:
1356  C     == Routine arguments ==  C     == Routine arguments ==
1357  C     message - Message to write  C     message :: Message to write
1358  C     unit    - Unit number to write to  C     unit    :: Unit number to write to
1359  C     sq      - Justification option  C     sq      :: Justification option
1360        CHARACTER*(*) message        CHARACTER*(*) message
1361        INTEGER       unit        INTEGER       unit
1362        CHARACTER*(*) sq        CHARACTER*(*) sq
1363        INTEGER  myThid        INTEGER  myThid
1364  CEndOfInterface  
1365        INTEGER  IFNBLNK  C     !LOCAL VARIABLES:
       EXTERNAL IFNBLNK  
       INTEGER  ILNBLNK  
       EXTERNAL ILNBLNK  
1366  C     == Local variables ==  C     == Local variables ==
1367    C     iStart, iEnd :: String indexing variables
1368    C     idString     :: Temp. for building prefix.
1369        INTEGER iStart        INTEGER iStart
1370        INTEGER iEnd        INTEGER iEnd
1371        CHARACTER*9 idString        CHARACTER*9 idString
1372    CEOP
1373    
1374  C--   Find beginning and end of message  C--   Find beginning and end of message
1375        IF ( sq .EQ. SQUEEZE_BOTH .OR.        IF ( sq .EQ. SQUEEZE_BOTH .OR.
1376       &     sq .EQ. SQUEEZE_LEFT ) THEN       &     sq .EQ. SQUEEZE_LEFT ) THEN

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

  ViewVC Help
Powered by ViewVC 1.1.22