Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:36:59 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
1dbaea09ee Chri*0001 #include "CPP_OPTIONS.h"
924557e60a Chri*0002 
                0003 C--   File plot_field.F: Routines for "formatted" I/O in the MITgcm UV 
                0004 C--                      implementation.
                0005 C--    Contents
42bd47f06f Chri*0006 C--    o plot_field_xyrs  - Writes a XY  _RS field
                0007 C--    o plot_field_xyrl  - Writes a XY  _RL field
                0008 C--    o plot_field_xyzrs - Writes a XYZ _RS field
                0009 C--    o plot_field_xyzrl - Writes a XYZ _RL field
                0010       SUBROUTINE PLOT_FIELD_XYRS( 
924557e60a Chri*0011      I                            fld, fldNam , myIter, myThid )
                0012 
de416ebcde Patr*0013 C     /==========================================================\
                0014 C     | SUBROUTINE PLOT_FIELD_XYRS                               |
                0015 C     | Print out an XY _RS field using text map.                |
                0016 C     |==========================================================|
                0017 C     | This routine references "numerical model" parameters like|
                0018 C     | like the integration time. It uses these to create a     |
                0019 C     | title for the field before calling a generic execution   |
                0020 C     | environment support routine.                             |
                0021 C     | This routine can also be edited to cause only some region|
                0022 C     | of a field to be printed by default, or every other      |
                0023 C     | point etc..                                              |
                0024 C     | Other plot formats can also be substituted here.         |
                0025 C     | _RS is usually REAL*4                                    |
                0026 C     \==========================================================/
9366854e02 Chri*0027       IMPLICIT NONE
de416ebcde Patr*0028 
924557e60a Chri*0029 #include "SIZE.h"
                0030 #include "EEPARAMS.h"
                0031 #include "PARAMS.h"
                0032 
                0033 C     == Routine arguments ==
                0034 C     fld - Field to plot
                0035 C     fldNam - Name of field
                0036 C     myIter - Iteration number for plot
                0037 C     myThid - Thread id of thread instance calling plot_field
42bd47f06f Chri*0038       _RS fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
924557e60a Chri*0039       CHARACTER*(*) fldNam
                0040       INTEGER myThid
                0041       INTEGER myIter
                0042 
                0043 C     == Local variables ==
                0044       CHARACTER*(MAX_LEN_MBUF) fldTitle
                0045       INTEGER iStart, iEnd, iStride
                0046       INTEGER jStart, jEnd, jStride
                0047       INTEGER kStart, kEnd, kStride
                0048       INTEGER biStart, biEnd, biStride
                0049       INTEGER bjStart, bjEnd, bjStride
                0050 
                0051 C--   To get around synchronisation and multi-threaded I/O issues
                0052 C--   thread 1 will do all the writes.
a85d6ab24e Chri*0053       _BARRIER
924557e60a Chri*0054       IF ( myThid .EQ. 1 ) THEN
                0055 C--    Form name for identifying "plot"
                0056        IF ( myIter .GE. 0 ) THEN
46dc4f419b Chri*0057         WRITE(fldTitle,'(A,A,A,I10)') 
                0058      &  '// Field ', fldNam, ' at iteration ',
924557e60a Chri*0059      &  myIter
                0060        ELSE
                0061         WRITE(fldTitle,'(A,A)') '// Field ', fldNam
                0062        ENDIF
                0063 C--    Do "plot" using textual contour map "execution environment" routine
                0064 C      Substitute other plotting utilities here!
                0065        iStart   =  1-OLx
                0066        iEnd     =  sNx+OLx
                0067        iStride  =  1
                0068        jStart   =  sNy+OLy
                0069        jEnd     =  1-OLy
                0070        jStride  = -1
                0071        kStart   =  1
                0072        kEnd     =  1
                0073        kStride  =  1
                0074        biStart  =  1
                0075        biEnd    =  nSx
                0076        biStride =  1
                0077        bjStart  =  nSy
                0078        bjEnd    =  1    
                0079        bjStride = -1
42bd47f06f Chri*0080        CALL PRINT_MAPRS(
924557e60a Chri*0081      I        fld, fldTitle, PRINT_MAP_XY,
                0082      I         1-OLx,sNx+OLx,1-OLy,sNy+OLy,1,1,  nSx,  nSy,
                0083      I         iStart,   iEnd,  iStride,
                0084      I         jStart,   jEnd,  jStride,
                0085      I         kStart,   kEnd,  kStride,
                0086      I        biStart,  biEnd, biStride,
                0087      I        bjStart,  bjEnd, bjStride )
                0088       ENDIF
a85d6ab24e Chri*0089       _BARRIER
924557e60a Chri*0090 
                0091       RETURN
                0092       END
42bd47f06f Chri*0093       SUBROUTINE PLOT_FIELD_XYRL( 
924557e60a Chri*0094      I                            fld, fldNam , myIter, myThid )
                0095 
de416ebcde Patr*0096 C     /==========================================================\
                0097 C     | SUBROUTINE PLOT_FIELD_XYRL                               |
                0098 C     | Print out an XY _RL field using text map.                |
                0099 C     |==========================================================|
                0100 C     | This routine references "numerical model" parameters like|
                0101 C     | like the integration time. It uses these to create a     |
                0102 C     | title for the field before calling a generic execution   |
                0103 C     | environment support routine.                             |
                0104 C     | This routine can also be edited to cause only some region|
                0105 C     | of a field to be printed by default, or every other      |
                0106 C     | point etc..                                              |
                0107 C     | Other plot formats can also be substituted here.         |
                0108 C     | _RL is usually REAL*8                                    |
                0109 C     \==========================================================/
9366854e02 Chri*0110       IMPLICIT NONE
de416ebcde Patr*0111 
924557e60a Chri*0112 #include "SIZE.h"
                0113 #include "EEPARAMS.h"
                0114 #include "PARAMS.h"
                0115 
                0116 C     == Routine arguments ==
                0117 C     fld - Field to plot
                0118 C     fldNam - Name of field
                0119 C     myIter - Iteration number for plot
                0120 C     myThid - Thread id of thread instance calling plot_field
42bd47f06f Chri*0121       _RL fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
924557e60a Chri*0122       CHARACTER*(*) fldNam
                0123       INTEGER myThid
                0124       INTEGER myIter
                0125 
                0126 C     == Local variables ==
                0127       CHARACTER*(MAX_LEN_MBUF) fldTitle
                0128       INTEGER iStart, iEnd, iStride
                0129       INTEGER jStart, jEnd, jStride
                0130       INTEGER kStart, kEnd, kStride
                0131       INTEGER biStart, biEnd, biStride
                0132       INTEGER bjStart, bjEnd, bjStride
                0133 
                0134 C--   To get around synchronisation and multi-threaded I/O issues
                0135 C--   thread 1 will do all the writes.
a85d6ab24e Chri*0136       _BARRIER
924557e60a Chri*0137       IF ( myThid .EQ. 1 ) THEN
                0138 C--    Form name for identifying "plot"
                0139        IF ( myIter .GE. 0 ) THEN
46dc4f419b Chri*0140         WRITE(fldTitle,'(A,A,A,I10)') 
                0141      &  '// Field ', fldNam, ' at iteration ',
924557e60a Chri*0142      &  myIter
                0143        ELSE
                0144         WRITE(fldTitle,'(A,A)') '// Field ', fldNam
                0145        ENDIF
                0146 C--    Do "plot" using textual contour map "execution environment" routine
                0147 C      Substitute other plotting utilities here!
                0148        iStart   =  1-OLx
                0149        iEnd     =  sNx+OLx
                0150        iStride  =  1
                0151        jStart   =  sNy+OLy
                0152        jEnd     =  1-OLy
                0153        jStride  = -1
                0154        kStart   =  1
                0155        kEnd     =  1
                0156        kStride  =  1
                0157        biStart  =  1
                0158        biEnd    =  nSx
                0159        biStride =  1
                0160        bjStart  =  nSy
                0161        bjEnd    =  1    
                0162        bjStride = -1
42bd47f06f Chri*0163        CALL PRINT_MAPRL(
924557e60a Chri*0164      I        fld, fldTitle, PRINT_MAP_XY,
                0165      I         1-OLx,sNx+OLx,1-OLy,sNy+OLy,1,1,  nSx,  nSy,
                0166      I         iStart,   iEnd,  iStride,
                0167      I         jStart,   jEnd,  jStride,
                0168      I         kStart,   kEnd,  kStride,
                0169      I        biStart,  biEnd, biStride,
                0170      I        bjStart,  bjEnd, bjStride )
                0171       ENDIF
a85d6ab24e Chri*0172       _BARRIER
924557e60a Chri*0173 
                0174       RETURN
                0175       END
42bd47f06f Chri*0176       SUBROUTINE PLOT_FIELD_XYZRS( 
924557e60a Chri*0177      I                            fld, fldNam , fldNz, myIter, myThid )
                0178 
de416ebcde Patr*0179 C     /==========================================================\
                0180 C     | SUBROUTINE PLOT_FIELD_XYZR4                              |
                0181 C     | Print out an XYZ _RS field using text map.               |
                0182 C     |==========================================================|
                0183 C     | This routine references "numerical model" parameters like|
                0184 C     | like the integration time. It uses these to create a     |
                0185 C     | title for the field before calling a generic execution   |
                0186 C     | environment support routine.                             |
                0187 C     | This routine can also be edited to cause only some region|
                0188 C     | of a field to be printed by default, or every other      |
                0189 C     | point etc..                                              |
                0190 C     | Other plot formats can also be substituted here.         |
                0191 C     | _RS is usually a REAL*4 field                            |
                0192 C     \==========================================================/
9366854e02 Chri*0193       IMPLICIT NONE
de416ebcde Patr*0194 
924557e60a Chri*0195 #include "SIZE.h"
                0196 #include "EEPARAMS.h"
                0197 #include "PARAMS.h"
                0198 
                0199 C     == Routine arguments ==
                0200 C     fld - Field to plot
                0201 C     fldNam - Name of field
                0202 C     fldNz  - No. of layers in the vertical
                0203 C              (Different fields may have different vertical extents)
                0204 C              (Under the present implementation all fields have the)
                0205 C              (same lateral extents.                               )
                0206 C     myIter - Iteration number for plot
                0207 C     myThid - Thread id of thread instance calling plot_field
                0208       INTEGER fldNz
42bd47f06f Chri*0209       _RS fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:fldNz,nSx,nSy)
924557e60a Chri*0210       CHARACTER*(*) fldNam
                0211       INTEGER myThid
                0212       INTEGER myIter
                0213 
                0214 C     == Local variables ==
                0215       CHARACTER*(MAX_LEN_MBUF) fldTitle
                0216       INTEGER iStart, iEnd, iStride
                0217       INTEGER jStart, jEnd, jStride
                0218       INTEGER kStart, kEnd, kStride
                0219       INTEGER biStart, biEnd, biStride
                0220       INTEGER bjStart, bjEnd, bjStride
                0221 
                0222 C--   To get around synchronisation and multi-threaded I/O issues
                0223 C--   thread 1 will do all the writes.
a85d6ab24e Chri*0224       _BARRIER
924557e60a Chri*0225       IF ( myThid .EQ. 1 ) THEN
                0226 C--    Form name for identifying "plot"
                0227        IF ( myIter .GE. 0 ) THEN
46dc4f419b Chri*0228         WRITE(fldTitle,'(A,A,A,I10)') 
                0229      &  '// Field ', fldNam, ' at iteration ',
924557e60a Chri*0230      &  myIter
                0231        ELSE
                0232         WRITE(fldTitle,'(A,A)') '// Field ', fldNam
                0233        ENDIF
                0234 C--    Do "plot" using textual contour map "execution environment" routine
                0235 C      Substitute other plotting utilities here!
                0236        iStart   =  1-OLx
                0237        iEnd     =  sNx+OLx
                0238 C      iStart   =  1
                0239 C      iEnd     =  sNx
                0240        iStride  =  1
                0241        jStart   =  sNy+OLy
                0242        jEnd     =  1-OLy
                0243 C      jStart   =  sNy
                0244 C      jEnd     =  1
                0245        jStride  = -1
                0246        kStart   =  1
88830be691 Alis*0247 C      kEnd     =  fldNz
42bd47f06f Chri*0248        kEnd     =  1
924557e60a Chri*0249        kStride  =  1
                0250        biStart  =  1
                0251        biEnd    =  nSx
                0252        biStride =  1
                0253        bjStart  =  nSy
                0254        bjEnd    =  1    
                0255        bjStride = -1
42bd47f06f Chri*0256        CALL PRINT_MAPRS(
924557e60a Chri*0257      I        fld, fldTitle, PRINT_MAP_XY,
                0258      I         1-OLx,sNx+OLx,1-OLy,sNy+OLy,1,fldNz,  nSx,  nSy,
                0259      I         iStart,   iEnd,  iStride,
                0260      I         jStart,   jEnd,  jStride,
                0261      I         kStart,   kEnd,  kStride,
                0262      I        biStart,  biEnd, biStride,
                0263      I        bjStart,  bjEnd, bjStride )
                0264       ENDIF
a85d6ab24e Chri*0265       _BARRIER
924557e60a Chri*0266 
                0267       RETURN
                0268       END
42bd47f06f Chri*0269       SUBROUTINE PLOT_FIELD_XYZRL( 
924557e60a Chri*0270      I                            fld, fldNam , fldNz, myIter, myThid )
                0271 
                0272 C     /==========================================================\
42bd47f06f Chri*0273 C     | SUBROUTINE PLOT_FIELD_XYZRL                              |
                0274 C     | Print out an XYZ _RL field using text map.               |
924557e60a Chri*0275 C     |==========================================================|
                0276 C     | This routine references "numerical model" parameters like|
                0277 C     | like the integration time. It uses these to create a     |
                0278 C     | title for the field before calling a generic execution   |
                0279 C     | environment support routine.                             |
                0280 C     | This routine can also be edited to cause only some region|
                0281 C     | of a field to be printed by default, or every other      |
                0282 C     | point etc..                                              |
                0283 C     | Other plot formats can also be substituted here.         |
42bd47f06f Chri*0284 C     | _RL is usually a REAL*8 field                            |
924557e60a Chri*0285 C     \==========================================================/
9bef66796c Alis*0286       IMPLICIT NONE
                0287 
924557e60a Chri*0288 #include "SIZE.h"
                0289 #include "EEPARAMS.h"
                0290 #include "PARAMS.h"
                0291 
                0292 C     == Routine arguments ==
                0293 C     fld - Field to plot
                0294 C     fldNam - Name of field
                0295 C     fldNz  - No. of layers in the vertical
                0296 C              (Different fields may have different vertical extents)
                0297 C              (Under the present implementation all fields have the)
                0298 C              (same lateral extents.                               )
                0299 C     myIter - Iteration number for plot
                0300 C     myThid - Thread id of thread instance calling plot_field
                0301       INTEGER fldNz
42bd47f06f Chri*0302       _RL fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:fldNz,nSx,nSy)
924557e60a Chri*0303       CHARACTER*(*) fldNam
                0304       INTEGER myThid
                0305       INTEGER myIter
                0306 
                0307 C     == Local variables ==
                0308       CHARACTER*(MAX_LEN_MBUF) fldTitle
                0309       INTEGER iStart, iEnd, iStride
                0310       INTEGER jStart, jEnd, jStride
                0311       INTEGER kStart, kEnd, kStride
                0312       INTEGER biStart, biEnd, biStride
                0313       INTEGER bjStart, bjEnd, bjStride
                0314 
                0315 C--   To get around synchronisation and multi-threaded I/O issues
                0316 C--   thread 1 will do all the writes.
a85d6ab24e Chri*0317       _BARRIER
924557e60a Chri*0318       IF ( myThid .EQ. 1 ) THEN
                0319 C--    Form name for identifying "plot"
                0320        IF ( myIter .GE. 0 ) THEN
46dc4f419b Chri*0321         WRITE(fldTitle,'(A,A,A,I10)') 
                0322      &  '// Field ', fldNam, ' at iteration ',
924557e60a Chri*0323      &  myIter
                0324        ELSE
                0325         WRITE(fldTitle,'(A,A)') '// Field ', fldNam
                0326        ENDIF
                0327 C--    Do "plot" using textual contour map "execution environment" routine
                0328 C      Substitute other plotting utilities here!
                0329        iStart   =  1-OLx
                0330        iEnd     =  sNx+OLx
4b9b37ba3c Chri*0331        iStart   =  1
                0332        iEnd     =  sNx
924557e60a Chri*0333        iStride  =  1
                0334        jStart   =  sNy+OLy
                0335        jEnd     =  1-OLy
4b9b37ba3c Chri*0336        jStart   =  sNy
                0337        jEnd     =  1
924557e60a Chri*0338        jStride  = -1
                0339        kStart   =  1
                0340        kEnd     =  fldNz
                0341        kEnd     =  1
                0342        kStride  =  1
                0343        biStart  =  1
                0344        biEnd    =  nSx
                0345        biStride =  1
                0346        bjStart  =  nSy
                0347        bjEnd    =  1    
                0348        bjStride = -1
42bd47f06f Chri*0349        CALL PRINT_MAPRL(
924557e60a Chri*0350      I        fld, fldTitle, PRINT_MAP_XY,
                0351      I         1-OLx,sNx+OLx,1-OLy,sNy+OLy,1,fldNz,  nSx,  nSy,
                0352      I         iStart,   iEnd,  iStride,
                0353      I         jStart,   jEnd,  jStride,
                0354      I         kStart,   kEnd,  kStride,
                0355      I        biStart,  biEnd, biStride,
                0356      I        bjStart,  bjEnd, bjStride )
                0357       ENDIF
a85d6ab24e Chri*0358       _BARRIER
924557e60a Chri*0359 
                0360       RETURN
                0361       END
                0362 
de416ebcde Patr*0363       SUBROUTINE PLOT_FIELD_XZRS( 
                0364      I                            fld, fldNam , fldNz, myIter, myThid )
                0365 
                0366 C     /==========================================================\
                0367 C     | SUBROUTINE PLOT_FIELD_XYZR4                              |
                0368 C     | Print out an XYZ _RS field using text map.               |
                0369 C     |==========================================================|
                0370 C     | This routine references "numerical model" parameters like|
                0371 C     | like the integration time. It uses these to create a     |
                0372 C     | title for the field before calling a generic execution   |
                0373 C     | environment support routine.                             |
                0374 C     | This routine can also be edited to cause only some region|
                0375 C     | of a field to be printed by default, or every other      |
                0376 C     | point etc..                                              |
                0377 C     | Other plot formats can also be substituted here.         |
                0378 C     | _RS is usually a REAL*4 field                            |
                0379 C     \==========================================================/
                0380       IMPLICIT NONE
                0381 
                0382 #include "SIZE.h"
                0383 #include "EEPARAMS.h"
                0384 #include "PARAMS.h"
                0385 
                0386 C     == Routine arguments ==
                0387 C     fld - Field to plot
                0388 C     fldNam - Name of field
                0389 C     fldNz  - No. of layers in the vertical
                0390 C              (Different fields may have different vertical extents)
                0391 C              (Under the present implementation all fields have the)
                0392 C              (same lateral extents.                               )
                0393 C     myIter - Iteration number for plot
                0394 C     myThid - Thread id of thread instance calling plot_field
                0395       INTEGER fldNz
                0396       _RS fld(1-OLx:sNx+OLx,1:fldNz,nSx,nSy)
                0397       CHARACTER*(*) fldNam
                0398       INTEGER myThid
                0399       INTEGER myIter
                0400 
                0401 C     == Local variables ==
                0402       CHARACTER*(MAX_LEN_MBUF) fldTitle
                0403       INTEGER iStart, iEnd, iStride
                0404       INTEGER jStart, jEnd, jStride
                0405       INTEGER kStart, kEnd, kStride
                0406       INTEGER biStart, biEnd, biStride
                0407       INTEGER bjStart, bjEnd, bjStride
                0408 
                0409 C--   To get around synchronisation and multi-threaded I/O issues
                0410 C--   thread 1 will do all the writes.
                0411       _BARRIER
                0412       IF ( myThid .EQ. 1 ) THEN
                0413 C--    Form name for identifying "plot"
                0414        IF ( myIter .GE. 0 ) THEN
                0415         WRITE(fldTitle,'(A,A,A,I10)') 
                0416      &  '// Field ', fldNam, ' at iteration ',
                0417      &  myIter
                0418        ELSE
                0419         WRITE(fldTitle,'(A,A)') '// Field ', fldNam
                0420        ENDIF
                0421 C--    Do "plot" using textual contour map "execution environment" routine
                0422 C      Substitute other plotting utilities here!
                0423        iStart   =  1
                0424        iEnd     =  sNx
                0425        iStride  =  1
                0426        jStart   =  1
                0427        jEnd     =  1
                0428        jStride  =  1
                0429        kStart   =  1
                0430        kEnd     =  fldNz
                0431        kStride  =  1
                0432        biStart  =  1
                0433        biEnd    =  nSx
                0434        biStride =  1
                0435        bjStart  =  nSy 
                0436        bjEnd    =  1    
                0437        bjStride = -1
                0438        CALL PRINT_MAPRS(
                0439      I        fld, fldTitle, PRINT_MAP_XZ,
                0440      I         1-OLx,sNx+OLx,1,fldNz,1,1,  nSx,  nSy,
                0441      I         iStart,   iEnd,  iStride,
                0442      I         jStart,   jEnd,  jStride,
                0443      I         kStart,   kEnd,  kStride,
                0444      I        biStart,  biEnd, biStride,
                0445      I        bjStart,  bjEnd, bjStride )
                0446       ENDIF
                0447       _BARRIER
                0448 
                0449       RETURN
                0450       END
                0451       SUBROUTINE PLOT_FIELD_XZRL( 
                0452      I                            fld, fldNam , fldNz, myIter, myThid )
                0453 
                0454 C     /==========================================================\
                0455 C     | SUBROUTINE PLOT_FIELD_XYZRL                              |
                0456 C     | Print out an XYZ _RL field using text map.               |
                0457 C     |==========================================================|
                0458 C     | This routine references "numerical model" parameters like|
                0459 C     | like the integration time. It uses these to create a     |
                0460 C     | title for the field before calling a generic execution   |
                0461 C     | environment support routine.                             |
                0462 C     | This routine can also be edited to cause only some region|
                0463 C     | of a field to be printed by default, or every other      |
                0464 C     | point etc..                                              |
                0465 C     | Other plot formats can also be substituted here.         |
                0466 C     | _RL is usually a REAL*8 field                            |
                0467 C     \==========================================================/
                0468       IMPLICIT NONE
                0469 
                0470 #include "SIZE.h"
                0471 #include "EEPARAMS.h"
                0472 #include "PARAMS.h"
                0473 
                0474 C     == Routine arguments ==
                0475 C     fld - Field to plot
                0476 C     fldNam - Name of field
                0477 C     fldNz  - No. of layers in the vertical
                0478 C              (Different fields may have different vertical extents)
                0479 C              (Under the present implementation all fields have the)
                0480 C              (same lateral extents.                               )
                0481 C     myIter - Iteration number for plot
                0482 C     myThid - Thread id of thread instance calling plot_field
                0483       INTEGER fldNz
                0484       _RL fld(1-OLx:sNx+OLx,1:fldNz,nSx,nSy)
                0485       CHARACTER*(*) fldNam
                0486       INTEGER myThid
                0487       INTEGER myIter
                0488 
                0489 C     == Local variables ==
                0490       CHARACTER*(MAX_LEN_MBUF) fldTitle
                0491       INTEGER iStart, iEnd, iStride
                0492       INTEGER jStart, jEnd, jStride
                0493       INTEGER kStart, kEnd, kStride
                0494       INTEGER biStart, biEnd, biStride
                0495       INTEGER bjStart, bjEnd, bjStride
                0496 
                0497 C--   To get around synchronisation and multi-threaded I/O issues
                0498 C--   thread 1 will do all the writes.
                0499       _BARRIER
                0500       IF ( myThid .EQ. 1 ) THEN
                0501 C--    Form name for identifying "plot"
                0502        IF ( myIter .GE. 0 ) THEN
                0503         WRITE(fldTitle,'(A,A,A,I10)') 
                0504      &  '// Field ', fldNam, ' at iteration ',
                0505      &  myIter
                0506        ELSE
                0507         WRITE(fldTitle,'(A,A)') '// Field ', fldNam
                0508        ENDIF
                0509 C--    Do "plot" using textual contour map "execution environment" routine
                0510 C      Substitute other plotting utilities here!
                0511        iStart   =  1
                0512        iEnd     =  sNx
                0513        iStride  =  1
                0514        jStart   =  1
                0515        jEnd     =  1
                0516        jStride  = -1
                0517        kStart   =  1
                0518        kEnd     =  fldNz
                0519 c      kEnd     =  1
                0520        kStride  =  1
                0521        biStart  =  1
                0522        biEnd    =  nSx
                0523        biStride =  1
                0524        bjStart  =  nSy
                0525        bjEnd    =  1    
                0526        bjStride = -1
                0527        CALL PRINT_MAPRL(
                0528      I        fld, fldTitle, PRINT_MAP_XZ,
                0529      I         1-OLx,sNx+OLx,1,1,1,fldNz,  nSx,  nSy,
                0530      I         iStart,   iEnd,  iStride,
                0531      I         jStart,   jEnd,  jStride,
                0532      I         kStart,   kEnd,  kStride,
                0533      I        biStart,  biEnd, biStride,
                0534      I        bjStart,  bjEnd, bjStride )
                0535       ENDIF
                0536       _BARRIER
                0537 
                0538       RETURN
                0539       END
                0540 
                0541       SUBROUTINE PLOT_FIELD_YZRS( 
                0542      I                            fld, fldNam , fldNz, myIter, myThid )
                0543 
                0544 C     /==========================================================\
                0545 C     | SUBROUTINE PLOT_FIELD_XYZR4                              |
                0546 C     | Print out an XYZ _RS field using text map.               |
                0547 C     |==========================================================|
                0548 C     | This routine references "numerical model" parameters like|
                0549 C     | like the integration time. It uses these to create a     |
                0550 C     | title for the field before calling a generic execution   |
                0551 C     | environment support routine.                             |
                0552 C     | This routine can also be edited to cause only some region|
                0553 C     | of a field to be printed by default, or every other      |
                0554 C     | point etc..                                              |
                0555 C     | Other plot formats can also be substituted here.         |
                0556 C     | _RS is usually a REAL*4 field                            |
                0557 C     \==========================================================/
                0558       IMPLICIT NONE
                0559 
                0560 #include "SIZE.h"
                0561 #include "EEPARAMS.h"
                0562 #include "PARAMS.h"
                0563 
                0564 C     == Routine arguments ==
                0565 C     fld - Field to plot
                0566 C     fldNam - Name of field
                0567 C     fldNz  - No. of layers in the vertical
                0568 C              (Different fields may have different vertical extents)
                0569 C              (Under the present implementation all fields have the)
                0570 C              (same lateral extents.                               )
                0571 C     myIter - Iteration number for plot
                0572 C     myThid - Thread id of thread instance calling plot_field
                0573       INTEGER fldNz
                0574       _RS fld(1-OLy:sNy+OLy,1:fldNz,nSx,nSy)
                0575       CHARACTER*(*) fldNam
                0576       INTEGER myThid
                0577       INTEGER myIter
                0578 
                0579 C     == Local variables ==
                0580       CHARACTER*(MAX_LEN_MBUF) fldTitle
                0581       INTEGER iStart, iEnd, iStride
                0582       INTEGER jStart, jEnd, jStride
                0583       INTEGER kStart, kEnd, kStride
                0584       INTEGER biStart, biEnd, biStride
                0585       INTEGER bjStart, bjEnd, bjStride
                0586 
                0587 C--   To get around synchronisation and multi-threaded I/O issues
                0588 C--   thread 1 will do all the writes.
                0589       _BARRIER
                0590       IF ( myThid .EQ. 1 ) THEN
                0591 C--    Form name for identifying "plot"
                0592        IF ( myIter .GE. 0 ) THEN
                0593         WRITE(fldTitle,'(A,A,A,I10)') 
                0594      &  '// Field ', fldNam, ' at iteration ',
                0595      &  myIter
                0596        ELSE
                0597         WRITE(fldTitle,'(A,A)') '// Field ', fldNam
                0598        ENDIF
                0599 C--    Do "plot" using textual contour map "execution environment" routine
                0600 C      Substitute other plotting utilities here!
                0601        iStart   =  1
                0602        iEnd     =  1
                0603        iStride  =  1
                0604        jStart   =  sNy
                0605        jEnd     =  1
                0606        jStride  = -1
                0607        kStart   =  1
                0608        kEnd     =  fldNz
                0609 C      kEnd     =  1
                0610        kStride  =  1
                0611        biStart  =  1
                0612        biEnd    =  nSx 
                0613        biStride =  1
                0614        bjStart  =  nSy
                0615        bjEnd    =  1    
                0616        bjStride = -1
                0617        CALL PRINT_MAPRS(
                0618      I        fld, fldTitle, PRINT_MAP_YZ,
                0619      I         1,1,1-OLy,sNy+OLy,1,fldNz,  nSx,  nSy,
                0620      I         iStart,   iEnd,  iStride,
                0621      I         jStart,   jEnd,  jStride,
                0622      I         kStart,   kEnd,  kStride,
                0623      I        biStart,  biEnd, biStride,
                0624      I        bjStart,  bjEnd, bjStride )
                0625       ENDIF
                0626       _BARRIER
                0627 
                0628       RETURN
                0629       END
                0630       SUBROUTINE PLOT_FIELD_YZRL( 
                0631      I                            fld, fldNam , fldNz, myIter, myThid )
                0632 
                0633 C     /==========================================================\
                0634 C     | SUBROUTINE PLOT_FIELD_XYZRL                              |
                0635 C     | Print out an XYZ _RL field using text map.               |
                0636 C     |==========================================================|
                0637 C     | This routine references "numerical model" parameters like|
                0638 C     | like the integration time. It uses these to create a     |
                0639 C     | title for the field before calling a generic execution   |
                0640 C     | environment support routine.                             |
                0641 C     | This routine can also be edited to cause only some region|
                0642 C     | of a field to be printed by default, or every other      |
                0643 C     | point etc..                                              |
                0644 C     | Other plot formats can also be substituted here.         |
                0645 C     | _RL is usually a REAL*8 field                            |
                0646 C     \==========================================================/
                0647       IMPLICIT NONE
                0648 
                0649 #include "SIZE.h"
                0650 #include "EEPARAMS.h"
                0651 #include "PARAMS.h"
                0652 
                0653 C     == Routine arguments ==
                0654 C     fld - Field to plot
                0655 C     fldNam - Name of field
                0656 C     fldNz  - No. of layers in the vertical
                0657 C              (Different fields may have different vertical extents)
                0658 C              (Under the present implementation all fields have the)
                0659 C              (same lateral extents.                               )
                0660 C     myIter - Iteration number for plot
                0661 C     myThid - Thread id of thread instance calling plot_field
                0662       INTEGER fldNz
                0663       _RL fld(1-OLy:sNy+OLy,1:fldNz,nSx,nSy)
                0664       CHARACTER*(*) fldNam
                0665       INTEGER myThid
                0666       INTEGER myIter
                0667 
                0668 C     == Local variables ==
                0669       CHARACTER*(MAX_LEN_MBUF) fldTitle
                0670       INTEGER iStart, iEnd, iStride
                0671       INTEGER jStart, jEnd, jStride
                0672       INTEGER kStart, kEnd, kStride
                0673       INTEGER biStart, biEnd, biStride
                0674       INTEGER bjStart, bjEnd, bjStride
                0675 
                0676 C--   To get around synchronisation and multi-threaded I/O issues
                0677 C--   thread 1 will do all the writes.
                0678       _BARRIER
                0679       IF ( myThid .EQ. 1 ) THEN
                0680 C--    Form name for identifying "plot"
                0681        IF ( myIter .GE. 0 ) THEN
                0682         WRITE(fldTitle,'(A,A,A,I10)') 
                0683      &  '// Field ', fldNam, ' at iteration ',
                0684      &  myIter
                0685        ELSE
                0686         WRITE(fldTitle,'(A,A)') '// Field ', fldNam
                0687        ENDIF
                0688 C--    Do "plot" using textual contour map "execution environment" routine
                0689 C      Substitute other plotting utilities here!
                0690        iStart   =  1
                0691        iEnd     =  1
                0692        iStride  =  1
                0693        jStart   =  sNy
                0694        jEnd     =  1
                0695        jStride  = -1
                0696        kStart   =  1
                0697        kEnd     =  fldNz
                0698 c      kEnd     =  1
                0699        kStride  =  1
                0700        biStart  =  1
                0701        biEnd    =  nSx 
                0702        biStride =  1
                0703        bjStart  =  nSy
                0704        bjEnd    =  1    
                0705        bjStride = -1
                0706        CALL PRINT_MAPRL(
                0707      I        fld, fldTitle, PRINT_MAP_YZ,
                0708      I         1,1,1-OLy,sNy+OLy,1,fldNz,  nSx,  nSy,
                0709      I         iStart,   iEnd,  iStride,
                0710      I         jStart,   jEnd,  jStride,
                0711      I         kStart,   kEnd,  kStride,
                0712      I        biStart,  biEnd, biStride,
                0713      I        bjStart,  bjEnd, bjStride )
                0714       ENDIF
                0715       _BARRIER
                0716 
                0717       RETURN
                0718       END