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 ) |
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 |
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 =' |
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 |
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 |
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 =' |
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 |
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 |
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 =' |
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, |
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 |
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 |
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 |
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, |
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 |
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 |
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 |
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 |