/[MITgcm]/MITgcm/verification/global_ocean.cs32x15/code_alt/code.192t_8x4/plot_field.F
ViewVC logotype

Contents of /MITgcm/verification/global_ocean.cs32x15/code_alt/code.192t_8x4/plot_field.F

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


Revision 1.1 - (show annotations) (download)
Mon Mar 15 01:37:23 2004 UTC (17 years, 8 months ago) by cnh
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint58l_post, checkpoint64z, checkpoint57t_post, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64a, checkpoint57o_post, checkpoint64c, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f, checkpoint58e_post, checkpoint57v_post, checkpoint52n_post, checkpoint53d_post, checkpoint58u_post, checkpoint58w_post, checkpoint54a_pre, checkpoint57m_post, checkpoint55c_post, checkpoint54e_post, checkpoint57s_post, checkpoint54a_post, checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g, checkpoint53c_post, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint57k_post, checkpoint55d_pre, checkpoint57d_post, checkpoint57g_post, checkpoint64, checkpoint65, checkpoint60, checkpoint61, checkpoint62, checkpoint63, checkpoint57b_post, checkpoint57c_pre, checkpoint58r_post, checkpoint55j_post, checkpoint56b_post, checkpoint57i_post, checkpoint57y_post, checkpoint57e_post, checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint55h_post, checkpoint58n_post, checkpoint58x_post, checkpoint57g_pre, checkpoint54b_post, checkpoint53b_pre, checkpoint55b_post, checkpoint58t_post, checkpoint58h_post, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint54d_post, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, checkpoint56c_post, checkpoint52m_post, checkpoint57y_pre, checkpoint55, checkpoint53a_post, checkpoint57f_pre, checkpoint57a_post, checkpoint54, checkpoint58q_post, checkpoint54f_post, checkpoint53b_post, checkpoint59q, checkpoint59p, checkpoint55g_post, checkpoint59r, checkpoint58j_post, checkpoint59e, checkpoint59d, checkpoint59g, checkpoint59f, checkpoint59a, checkpoint55f_post, checkpoint59c, checkpoint59b, checkpoint59m, checkpoint59l, checkpoint59o, checkpoint59n, checkpoint59i, checkpoint59h, checkpoint59k, checkpoint59j, checkpoint57r_post, checkpoint59, checkpoint58, checkpoint57a_pre, checkpoint55i_post, checkpoint57, checkpoint56, checkpoint53, eckpoint57e_pre, checkpoint57h_done, checkpoint58f_post, checkpoint53g_post, checkpoint57x_post, checkpoint58d_post, checkpoint58c_post, checkpoint57w_post, checkpoint57p_post, checkpint57u_post, checkpoint57f_post, checkpoint58a_post, checkpoint58i_post, checkpoint57q_post, checkpoint58g_post, checkpoint58o_post, checkpoint57z_post, checkpoint62c, checkpoint62b, checkpoint62a, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint62w, checkpoint62v, checkpoint62u, checkpoint62t, checkpoint57c_post, checkpoint62z, checkpoint62y, checkpoint62x, checkpoint58y_post, checkpoint55e_post, checkpoint58k_post, checkpoint58v_post, checkpoint53f_post, checkpoint55a_post, checkpoint53d_pre, checkpoint54c_post, checkpoint58s_post, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61b, checkpoint61c, checkpoint58p_post, checkpoint61a, checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q, checkpoint57j_post, checkpoint61z, checkpoint61x, checkpoint61y, checkpoint58b_post, checkpoint57h_pre, checkpoint58m_post, checkpoint57l_post, checkpoint57h_post, checkpoint56a_post, checkpoint55d_post, HEAD
o Fixes for ALLOW_EXCH2 as a packages_conf entry.

o Validation configurations for testing a variety of cube tilings including
  tiles that are left out over land. This second set of items needs
  mods to genmake2 to be automatically included in regression tests - until
  then it can be tested by hand. The file
  verification/global_ocean.cs32x15/code_alt/README
  shows how to do this manually with genmake2

1 C $Header: /u/gcmpack/MITgcm/model/src/plot_field.F,v 1.14 2002/02/07 20:00:09 heimbach Exp $
2 C $Name: $
3
4 #include "CPP_OPTIONS.h"
5
6 C-- File plot_field.F: Routines for "formatted" I/O in the MITgcm UV
7 C-- implementation.
8 C-- Contents
9 C-- o plot_field_xyrs - Writes a XY _RS field
10 C-- o plot_field_xyrl - Writes a XY _RL field
11 C-- o plot_field_xyzrs - Writes a XYZ _RS field
12 C-- o plot_field_xyzrl - Writes a XYZ _RL field
13 SUBROUTINE PLOT_FIELD_XYRS(
14 I fld, fldNam , myIter, myThid )
15
16 C /==========================================================\
17 C | SUBROUTINE PLOT_FIELD_XYRS |
18 C | Print out an XY _RS field using text map. |
19 C |==========================================================|
20 C | This routine references "numerical model" parameters like|
21 C | like the integration time. It uses these to create a |
22 C | title for the field before calling a generic execution |
23 C | environment support routine. |
24 C | This routine can also be edited to cause only some region|
25 C | of a field to be printed by default, or every other |
26 C | point etc.. |
27 C | Other plot formats can also be substituted here. |
28 C | _RS is usually REAL*4 |
29 C \==========================================================/
30 IMPLICIT NONE
31
32 #include "SIZE.h"
33 #include "EEPARAMS.h"
34 #include "PARAMS.h"
35
36 C == Routine arguments ==
37 C fld - Field to plot
38 C fldNam - Name of field
39 C myIter - Iteration number for plot
40 C myThid - Thread id of thread instance calling plot_field
41 _RS fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
42 CHARACTER*(*) fldNam
43 INTEGER myThid
44 INTEGER myIter
45
46 C == Local variables ==
47 CHARACTER*(MAX_LEN_MBUF) fldTitle
48 INTEGER iStart, iEnd, iStride
49 INTEGER jStart, jEnd, jStride
50 INTEGER kStart, kEnd, kStride
51 INTEGER biStart, biEnd, biStride
52 INTEGER bjStart, bjEnd, bjStride
53
54 C Temp for per tile plot looping
55 INTEGER bi ,bj
56
57 C-- To get around synchronisation and multi-threaded I/O issues
58 C-- thread 1 will do all the writes.
59 _BARRIER
60 IF ( myThid .EQ. 1 ) THEN
61 C-- Form name for identifying "plot"
62 IF ( myIter .GE. 0 ) THEN
63 WRITE(fldTitle,'(A,A,A,I10)')
64 & '// Field ', fldNam, ' at iteration ',
65 & myIter
66 ELSE
67 WRITE(fldTitle,'(A,A)') '// Field ', fldNam
68 ENDIF
69 C-- Do "plot" using textual contour map "execution environment" routine
70 C Substitute other plotting utilities here!
71 DO bj=1,nSy
72 DO bi=1,nSx
73 iStart = 1-OLx
74 iEnd = sNx+OLx
75 iStride = 1
76 jStart = sNy+OLy
77 jEnd = 1-OLy
78 jStride = -1
79 kStart = 1
80 kEnd = 1
81 kStride = 1
82 biStart = bi
83 biEnd = bi
84 biStride = 1
85 bjStart = bj
86 bjEnd = bj
87 bjStride = -1
88 WRITE(fldTitle,'(A,A,A,I6,A,I10)')
89 & '// Field ', fldNam,
90 & ' tile ', bi,
91 & ' at iteration ', myIter
92 CALL PRINT_MAPRS(
93 I fld, fldTitle, PRINT_MAP_XY,
94 I 1-OLx,sNx+OLx,1-OLy,sNy+OLy,1,1, nSx, nSy,
95 I iStart, iEnd, iStride,
96 I jStart, jEnd, jStride,
97 I kStart, kEnd, kStride,
98 I biStart, biEnd, biStride,
99 I bjStart, bjEnd, bjStride )
100 ENDDO
101 ENDDO
102 ENDIF
103 _BARRIER
104
105 RETURN
106 END
107 SUBROUTINE PLOT_FIELD_XYRL(
108 I fld, fldNam , myIter, myThid )
109
110 C /==========================================================\
111 C | SUBROUTINE PLOT_FIELD_XYRL |
112 C | Print out an XY _RL field using text map. |
113 C |==========================================================|
114 C | This routine references "numerical model" parameters like|
115 C | like the integration time. It uses these to create a |
116 C | title for the field before calling a generic execution |
117 C | environment support routine. |
118 C | This routine can also be edited to cause only some region|
119 C | of a field to be printed by default, or every other |
120 C | point etc.. |
121 C | Other plot formats can also be substituted here. |
122 C | _RL is usually REAL*8 |
123 C \==========================================================/
124 IMPLICIT NONE
125
126 #include "SIZE.h"
127 #include "EEPARAMS.h"
128 #include "PARAMS.h"
129
130 C == Routine arguments ==
131 C fld - Field to plot
132 C fldNam - Name of field
133 C myIter - Iteration number for plot
134 C myThid - Thread id of thread instance calling plot_field
135 _RL fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
136 CHARACTER*(*) fldNam
137 INTEGER myThid
138 INTEGER myIter
139
140 C == Local variables ==
141 CHARACTER*(MAX_LEN_MBUF) fldTitle
142 INTEGER iStart, iEnd, iStride
143 INTEGER jStart, jEnd, jStride
144 INTEGER kStart, kEnd, kStride
145 INTEGER biStart, biEnd, biStride
146 INTEGER bjStart, bjEnd, bjStride
147
148 C Temps for plot that loops over tiles
149 INTEGER bi, bj
150
151 C-- To get around synchronisation and multi-threaded I/O issues
152 C-- thread 1 will do all the writes.
153 _BARRIER
154 IF ( myThid .EQ. 1 ) THEN
155 C-- Form name for identifying "plot"
156 IF ( myIter .GE. 0 ) THEN
157 WRITE(fldTitle,'(A,A,A,I10)')
158 & '// Field ', fldNam, ' at iteration ',
159 & myIter
160 ELSE
161 WRITE(fldTitle,'(A,A)') '// Field ', fldNam
162 ENDIF
163 C-- Do "plot" using textual contour map "execution environment" routine
164 C Substitute other plotting utilities here!
165 DO bj=1,nSy
166 DO bi=1,nSx
167 iStart = 1-OLx
168 iEnd = sNx+OLx
169 iStride = 1
170 jStart = sNy+OLy
171 jEnd = 1-OLy
172 jStride = -1
173 kStart = 1
174 kEnd = 1
175 kStride = 1
176 biStart = 1
177 biEnd = bi
178 biStride = 1
179 bjStart = bj
180 bjEnd = 1
181 bjStride = -1
182 WRITE(fldTitle,'(A,A,A,I6,A,I10)')
183 & '// Field ', fldNam,
184 & ' tile ', bi,
185 & ' at iteration ', myIter
186 CALL PRINT_MAPRL(
187 I fld, fldTitle, PRINT_MAP_XY,
188 I 1-OLx,sNx+OLx,1-OLy,sNy+OLy,1,1, nSx, nSy,
189 I iStart, iEnd, iStride,
190 I jStart, jEnd, jStride,
191 I kStart, kEnd, kStride,
192 I biStart, biEnd, biStride,
193 I bjStart, bjEnd, bjStride )
194 ENDDO
195 ENDDO
196 ENDIF
197 _BARRIER
198
199 RETURN
200 END
201 SUBROUTINE PLOT_FIELD_XYZRS(
202 I fld, fldNam , fldNz, myIter, myThid )
203
204 C /==========================================================\
205 C | SUBROUTINE PLOT_FIELD_XYZR4 |
206 C | Print out an XYZ _RS field using text map. |
207 C |==========================================================|
208 C | This routine references "numerical model" parameters like|
209 C | like the integration time. It uses these to create a |
210 C | title for the field before calling a generic execution |
211 C | environment support routine. |
212 C | This routine can also be edited to cause only some region|
213 C | of a field to be printed by default, or every other |
214 C | point etc.. |
215 C | Other plot formats can also be substituted here. |
216 C | _RS is usually a REAL*4 field |
217 C \==========================================================/
218 IMPLICIT NONE
219
220 #include "SIZE.h"
221 #include "EEPARAMS.h"
222 #include "PARAMS.h"
223
224 C == Routine arguments ==
225 C fld - Field to plot
226 C fldNam - Name of field
227 C fldNz - No. of layers in the vertical
228 C (Different fields may have different vertical extents)
229 C (Under the present implementation all fields have the)
230 C (same lateral extents. )
231 C myIter - Iteration number for plot
232 C myThid - Thread id of thread instance calling plot_field
233 INTEGER fldNz
234 _RS fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:fldNz,nSx,nSy)
235 CHARACTER*(*) fldNam
236 INTEGER myThid
237 INTEGER myIter
238
239 C == Local variables ==
240 CHARACTER*(MAX_LEN_MBUF) fldTitle
241 INTEGER iStart, iEnd, iStride
242 INTEGER jStart, jEnd, jStride
243 INTEGER kStart, kEnd, kStride
244 INTEGER biStart, biEnd, biStride
245 INTEGER bjStart, bjEnd, bjStride
246
247 C-- To get around synchronisation and multi-threaded I/O issues
248 C-- thread 1 will do all the writes.
249 _BARRIER
250 IF ( myThid .EQ. 1 ) THEN
251 C-- Form name for identifying "plot"
252 IF ( myIter .GE. 0 ) THEN
253 WRITE(fldTitle,'(A,A,A,I10)')
254 & '// Field ', fldNam, ' at iteration ',
255 & myIter
256 ELSE
257 WRITE(fldTitle,'(A,A)') '// Field ', fldNam
258 ENDIF
259 C-- Do "plot" using textual contour map "execution environment" routine
260 C Substitute other plotting utilities here!
261 iStart = 1-OLx
262 iEnd = sNx+OLx
263 C iStart = 1
264 C iEnd = sNx
265 iStride = 1
266 jStart = sNy+OLy
267 jEnd = 1-OLy
268 C jStart = sNy
269 C jEnd = 1
270 jStride = -1
271 kStart = 1
272 C kEnd = fldNz
273 kEnd = 1
274 kStride = 1
275 biStart = 1
276 biEnd = nSx
277 biStride = 1
278 bjStart = nSy
279 bjEnd = 1
280 bjStride = -1
281 CALL PRINT_MAPRS(
282 I fld, fldTitle, PRINT_MAP_XY,
283 I 1-OLx,sNx+OLx,1-OLy,sNy+OLy,1,fldNz, nSx, nSy,
284 I iStart, iEnd, iStride,
285 I jStart, jEnd, jStride,
286 I kStart, kEnd, kStride,
287 I biStart, biEnd, biStride,
288 I bjStart, bjEnd, bjStride )
289 ENDIF
290 _BARRIER
291
292 RETURN
293 END
294 SUBROUTINE PLOT_FIELD_XYZRL(
295 I fld, fldNam , fldNz, myIter, myThid )
296
297 C /==========================================================\
298 C | SUBROUTINE PLOT_FIELD_XYZRL |
299 C | Print out an XYZ _RL field using text map. |
300 C |==========================================================|
301 C | This routine references "numerical model" parameters like|
302 C | like the integration time. It uses these to create a |
303 C | title for the field before calling a generic execution |
304 C | environment support routine. |
305 C | This routine can also be edited to cause only some region|
306 C | of a field to be printed by default, or every other |
307 C | point etc.. |
308 C | Other plot formats can also be substituted here. |
309 C | _RL is usually a REAL*8 field |
310 C \==========================================================/
311 IMPLICIT NONE
312
313 #include "SIZE.h"
314 #include "EEPARAMS.h"
315 #include "PARAMS.h"
316
317 C == Routine arguments ==
318 C fld - Field to plot
319 C fldNam - Name of field
320 C fldNz - No. of layers in the vertical
321 C (Different fields may have different vertical extents)
322 C (Under the present implementation all fields have the)
323 C (same lateral extents. )
324 C myIter - Iteration number for plot
325 C myThid - Thread id of thread instance calling plot_field
326 INTEGER fldNz
327 _RL fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:fldNz,nSx,nSy)
328 CHARACTER*(*) fldNam
329 INTEGER myThid
330 INTEGER myIter
331
332 C == Local variables ==
333 CHARACTER*(MAX_LEN_MBUF) fldTitle
334 INTEGER iStart, iEnd, iStride
335 INTEGER jStart, jEnd, jStride
336 INTEGER kStart, kEnd, kStride
337 INTEGER biStart, biEnd, biStride
338 INTEGER bjStart, bjEnd, bjStride
339
340 C-- To get around synchronisation and multi-threaded I/O issues
341 C-- thread 1 will do all the writes.
342 _BARRIER
343 IF ( myThid .EQ. 1 ) THEN
344 C-- Form name for identifying "plot"
345 IF ( myIter .GE. 0 ) THEN
346 WRITE(fldTitle,'(A,A,A,I10)')
347 & '// Field ', fldNam, ' at iteration ',
348 & myIter
349 ELSE
350 WRITE(fldTitle,'(A,A)') '// Field ', fldNam
351 ENDIF
352 C-- Do "plot" using textual contour map "execution environment" routine
353 C Substitute other plotting utilities here!
354 iStart = 1-OLx
355 iEnd = sNx+OLx
356 iStart = 1
357 iEnd = sNx
358 iStride = 1
359 jStart = sNy+OLy
360 jEnd = 1-OLy
361 jStart = sNy
362 jEnd = 1
363 jStride = -1
364 kStart = 1
365 kEnd = fldNz
366 kEnd = 1
367 kStride = 1
368 biStart = 1
369 biEnd = nSx
370 biStride = 1
371 bjStart = nSy
372 bjEnd = 1
373 bjStride = -1
374 CALL PRINT_MAPRL(
375 I fld, fldTitle, PRINT_MAP_XY,
376 I 1-OLx,sNx+OLx,1-OLy,sNy+OLy,1,fldNz, nSx, nSy,
377 I iStart, iEnd, iStride,
378 I jStart, jEnd, jStride,
379 I kStart, kEnd, kStride,
380 I biStart, biEnd, biStride,
381 I bjStart, bjEnd, bjStride )
382 ENDIF
383 _BARRIER
384
385 RETURN
386 END
387
388 SUBROUTINE PLOT_FIELD_XZRS(
389 I fld, fldNam , fldNz, myIter, myThid )
390
391 C /==========================================================\
392 C | SUBROUTINE PLOT_FIELD_XYZR4 |
393 C | Print out an XYZ _RS field using text map. |
394 C |==========================================================|
395 C | This routine references "numerical model" parameters like|
396 C | like the integration time. It uses these to create a |
397 C | title for the field before calling a generic execution |
398 C | environment support routine. |
399 C | This routine can also be edited to cause only some region|
400 C | of a field to be printed by default, or every other |
401 C | point etc.. |
402 C | Other plot formats can also be substituted here. |
403 C | _RS is usually a REAL*4 field |
404 C \==========================================================/
405 IMPLICIT NONE
406
407 #include "SIZE.h"
408 #include "EEPARAMS.h"
409 #include "PARAMS.h"
410
411 C == Routine arguments ==
412 C fld - Field to plot
413 C fldNam - Name of field
414 C fldNz - No. of layers in the vertical
415 C (Different fields may have different vertical extents)
416 C (Under the present implementation all fields have the)
417 C (same lateral extents. )
418 C myIter - Iteration number for plot
419 C myThid - Thread id of thread instance calling plot_field
420 INTEGER fldNz
421 _RS fld(1-OLx:sNx+OLx,1:fldNz,nSx,nSy)
422 CHARACTER*(*) fldNam
423 INTEGER myThid
424 INTEGER myIter
425
426 C == Local variables ==
427 CHARACTER*(MAX_LEN_MBUF) fldTitle
428 INTEGER iStart, iEnd, iStride
429 INTEGER jStart, jEnd, jStride
430 INTEGER kStart, kEnd, kStride
431 INTEGER biStart, biEnd, biStride
432 INTEGER bjStart, bjEnd, bjStride
433
434 C-- To get around synchronisation and multi-threaded I/O issues
435 C-- thread 1 will do all the writes.
436 _BARRIER
437 IF ( myThid .EQ. 1 ) THEN
438 C-- Form name for identifying "plot"
439 IF ( myIter .GE. 0 ) THEN
440 WRITE(fldTitle,'(A,A,A,I10)')
441 & '// Field ', fldNam, ' at iteration ',
442 & myIter
443 ELSE
444 WRITE(fldTitle,'(A,A)') '// Field ', fldNam
445 ENDIF
446 C-- Do "plot" using textual contour map "execution environment" routine
447 C Substitute other plotting utilities here!
448 iStart = 1
449 iEnd = sNx
450 iStride = 1
451 jStart = 1
452 jEnd = 1
453 jStride = 1
454 kStart = 1
455 kEnd = fldNz
456 kStride = 1
457 biStart = 1
458 biEnd = nSx
459 biStride = 1
460 bjStart = nSy
461 bjEnd = 1
462 bjStride = -1
463 CALL PRINT_MAPRS(
464 I fld, fldTitle, PRINT_MAP_XZ,
465 I 1-OLx,sNx+OLx,1,fldNz,1,1, nSx, nSy,
466 I iStart, iEnd, iStride,
467 I jStart, jEnd, jStride,
468 I kStart, kEnd, kStride,
469 I biStart, biEnd, biStride,
470 I bjStart, bjEnd, bjStride )
471 ENDIF
472 _BARRIER
473
474 RETURN
475 END
476 SUBROUTINE PLOT_FIELD_XZRL(
477 I fld, fldNam , fldNz, myIter, myThid )
478
479 C /==========================================================\
480 C | SUBROUTINE PLOT_FIELD_XYZRL |
481 C | Print out an XYZ _RL field using text map. |
482 C |==========================================================|
483 C | This routine references "numerical model" parameters like|
484 C | like the integration time. It uses these to create a |
485 C | title for the field before calling a generic execution |
486 C | environment support routine. |
487 C | This routine can also be edited to cause only some region|
488 C | of a field to be printed by default, or every other |
489 C | point etc.. |
490 C | Other plot formats can also be substituted here. |
491 C | _RL is usually a REAL*8 field |
492 C \==========================================================/
493 IMPLICIT NONE
494
495 #include "SIZE.h"
496 #include "EEPARAMS.h"
497 #include "PARAMS.h"
498
499 C == Routine arguments ==
500 C fld - Field to plot
501 C fldNam - Name of field
502 C fldNz - No. of layers in the vertical
503 C (Different fields may have different vertical extents)
504 C (Under the present implementation all fields have the)
505 C (same lateral extents. )
506 C myIter - Iteration number for plot
507 C myThid - Thread id of thread instance calling plot_field
508 INTEGER fldNz
509 _RL fld(1-OLx:sNx+OLx,1:fldNz,nSx,nSy)
510 CHARACTER*(*) fldNam
511 INTEGER myThid
512 INTEGER myIter
513
514 C == Local variables ==
515 CHARACTER*(MAX_LEN_MBUF) fldTitle
516 INTEGER iStart, iEnd, iStride
517 INTEGER jStart, jEnd, jStride
518 INTEGER kStart, kEnd, kStride
519 INTEGER biStart, biEnd, biStride
520 INTEGER bjStart, bjEnd, bjStride
521
522 C-- To get around synchronisation and multi-threaded I/O issues
523 C-- thread 1 will do all the writes.
524 _BARRIER
525 IF ( myThid .EQ. 1 ) THEN
526 C-- Form name for identifying "plot"
527 IF ( myIter .GE. 0 ) THEN
528 WRITE(fldTitle,'(A,A,A,I10)')
529 & '// Field ', fldNam, ' at iteration ',
530 & myIter
531 ELSE
532 WRITE(fldTitle,'(A,A)') '// Field ', fldNam
533 ENDIF
534 C-- Do "plot" using textual contour map "execution environment" routine
535 C Substitute other plotting utilities here!
536 iStart = 1
537 iEnd = sNx
538 iStride = 1
539 jStart = 1
540 jEnd = 1
541 jStride = -1
542 kStart = 1
543 kEnd = fldNz
544 c kEnd = 1
545 kStride = 1
546 biStart = 1
547 biEnd = nSx
548 biStride = 1
549 bjStart = nSy
550 bjEnd = 1
551 bjStride = -1
552 CALL PRINT_MAPRL(
553 I fld, fldTitle, PRINT_MAP_XZ,
554 I 1-OLx,sNx+OLx,1,1,1,fldNz, nSx, nSy,
555 I iStart, iEnd, iStride,
556 I jStart, jEnd, jStride,
557 I kStart, kEnd, kStride,
558 I biStart, biEnd, biStride,
559 I bjStart, bjEnd, bjStride )
560 ENDIF
561 _BARRIER
562
563 RETURN
564 END
565
566 SUBROUTINE PLOT_FIELD_YZRS(
567 I fld, fldNam , fldNz, myIter, myThid )
568
569 C /==========================================================\
570 C | SUBROUTINE PLOT_FIELD_XYZR4 |
571 C | Print out an XYZ _RS field using text map. |
572 C |==========================================================|
573 C | This routine references "numerical model" parameters like|
574 C | like the integration time. It uses these to create a |
575 C | title for the field before calling a generic execution |
576 C | environment support routine. |
577 C | This routine can also be edited to cause only some region|
578 C | of a field to be printed by default, or every other |
579 C | point etc.. |
580 C | Other plot formats can also be substituted here. |
581 C | _RS is usually a REAL*4 field |
582 C \==========================================================/
583 IMPLICIT NONE
584
585 #include "SIZE.h"
586 #include "EEPARAMS.h"
587 #include "PARAMS.h"
588
589 C == Routine arguments ==
590 C fld - Field to plot
591 C fldNam - Name of field
592 C fldNz - No. of layers in the vertical
593 C (Different fields may have different vertical extents)
594 C (Under the present implementation all fields have the)
595 C (same lateral extents. )
596 C myIter - Iteration number for plot
597 C myThid - Thread id of thread instance calling plot_field
598 INTEGER fldNz
599 _RS fld(1-OLy:sNy+OLy,1:fldNz,nSx,nSy)
600 CHARACTER*(*) fldNam
601 INTEGER myThid
602 INTEGER myIter
603
604 C == Local variables ==
605 CHARACTER*(MAX_LEN_MBUF) fldTitle
606 INTEGER iStart, iEnd, iStride
607 INTEGER jStart, jEnd, jStride
608 INTEGER kStart, kEnd, kStride
609 INTEGER biStart, biEnd, biStride
610 INTEGER bjStart, bjEnd, bjStride
611
612 C-- To get around synchronisation and multi-threaded I/O issues
613 C-- thread 1 will do all the writes.
614 _BARRIER
615 IF ( myThid .EQ. 1 ) THEN
616 C-- Form name for identifying "plot"
617 IF ( myIter .GE. 0 ) THEN
618 WRITE(fldTitle,'(A,A,A,I10)')
619 & '// Field ', fldNam, ' at iteration ',
620 & myIter
621 ELSE
622 WRITE(fldTitle,'(A,A)') '// Field ', fldNam
623 ENDIF
624 C-- Do "plot" using textual contour map "execution environment" routine
625 C Substitute other plotting utilities here!
626 iStart = 1
627 iEnd = 1
628 iStride = 1
629 jStart = sNy
630 jEnd = 1
631 jStride = -1
632 kStart = 1
633 kEnd = fldNz
634 C kEnd = 1
635 kStride = 1
636 biStart = 1
637 biEnd = nSx
638 biStride = 1
639 bjStart = nSy
640 bjEnd = 1
641 bjStride = -1
642 CALL PRINT_MAPRS(
643 I fld, fldTitle, PRINT_MAP_YZ,
644 I 1,1,1-OLy,sNy+OLy,1,fldNz, nSx, nSy,
645 I iStart, iEnd, iStride,
646 I jStart, jEnd, jStride,
647 I kStart, kEnd, kStride,
648 I biStart, biEnd, biStride,
649 I bjStart, bjEnd, bjStride )
650 ENDIF
651 _BARRIER
652
653 RETURN
654 END
655 SUBROUTINE PLOT_FIELD_YZRL(
656 I fld, fldNam , fldNz, myIter, myThid )
657
658 C /==========================================================\
659 C | SUBROUTINE PLOT_FIELD_XYZRL |
660 C | Print out an XYZ _RL field using text map. |
661 C |==========================================================|
662 C | This routine references "numerical model" parameters like|
663 C | like the integration time. It uses these to create a |
664 C | title for the field before calling a generic execution |
665 C | environment support routine. |
666 C | This routine can also be edited to cause only some region|
667 C | of a field to be printed by default, or every other |
668 C | point etc.. |
669 C | Other plot formats can also be substituted here. |
670 C | _RL is usually a REAL*8 field |
671 C \==========================================================/
672 IMPLICIT NONE
673
674 #include "SIZE.h"
675 #include "EEPARAMS.h"
676 #include "PARAMS.h"
677
678 C == Routine arguments ==
679 C fld - Field to plot
680 C fldNam - Name of field
681 C fldNz - No. of layers in the vertical
682 C (Different fields may have different vertical extents)
683 C (Under the present implementation all fields have the)
684 C (same lateral extents. )
685 C myIter - Iteration number for plot
686 C myThid - Thread id of thread instance calling plot_field
687 INTEGER fldNz
688 _RL fld(1-OLy:sNy+OLy,1:fldNz,nSx,nSy)
689 CHARACTER*(*) fldNam
690 INTEGER myThid
691 INTEGER myIter
692
693 C == Local variables ==
694 CHARACTER*(MAX_LEN_MBUF) fldTitle
695 INTEGER iStart, iEnd, iStride
696 INTEGER jStart, jEnd, jStride
697 INTEGER kStart, kEnd, kStride
698 INTEGER biStart, biEnd, biStride
699 INTEGER bjStart, bjEnd, bjStride
700
701 C-- To get around synchronisation and multi-threaded I/O issues
702 C-- thread 1 will do all the writes.
703 _BARRIER
704 IF ( myThid .EQ. 1 ) THEN
705 C-- Form name for identifying "plot"
706 IF ( myIter .GE. 0 ) THEN
707 WRITE(fldTitle,'(A,A,A,I10)')
708 & '// Field ', fldNam, ' at iteration ',
709 & myIter
710 ELSE
711 WRITE(fldTitle,'(A,A)') '// Field ', fldNam
712 ENDIF
713 C-- Do "plot" using textual contour map "execution environment" routine
714 C Substitute other plotting utilities here!
715 iStart = 1
716 iEnd = 1
717 iStride = 1
718 jStart = sNy
719 jEnd = 1
720 jStride = -1
721 kStart = 1
722 kEnd = fldNz
723 c kEnd = 1
724 kStride = 1
725 biStart = 1
726 biEnd = nSx
727 biStride = 1
728 bjStart = nSy
729 bjEnd = 1
730 bjStride = -1
731 CALL PRINT_MAPRL(
732 I fld, fldTitle, PRINT_MAP_YZ,
733 I 1,1,1-OLy,sNy+OLy,1,fldNz, nSx, nSy,
734 I iStart, iEnd, iStride,
735 I jStart, jEnd, jStride,
736 I kStart, kEnd, kStride,
737 I biStart, biEnd, biStride,
738 I bjStart, bjEnd, bjStride )
739 ENDIF
740 _BARRIER
741
742 RETURN
743 END

  ViewVC Help
Powered by ViewVC 1.1.22