/[MITgcm]/MITgcm/model/src/plot_field.F
ViewVC logotype

Contents of /MITgcm/model/src/plot_field.F

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


Revision 1.14 - (show annotations) (download)
Thu Feb 7 20:00:09 2002 UTC (22 years, 2 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint46n_post, checkpoint51k_post, checkpoint62v, checkpoint47e_post, checkpoint57m_post, checkpoint52l_pre, checkpoint44e_post, checkpoint62u, hrcube4, hrcube5, checkpoint46l_post, checkpoint57g_pre, checkpoint46g_pre, checkpoint47c_post, checkpoint62t, checkpoint50c_post, checkpoint57s_post, checkpoint58b_post, checkpoint57b_post, checkpoint46f_post, checkpoint52d_pre, checkpoint57g_post, checkpoint48e_post, checkpoint56b_post, checkpoint50c_pre, checkpoint57y_post, checkpoint44f_post, checkpoint46b_post, checkpoint52j_pre, checkpoint51o_pre, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint54d_post, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint54e_post, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, checkpoint62c, checkpoint51l_post, checkpoint48i_post, checkpoint57r_post, checkpoint46l_pre, checkpoint57d_post, checkpoint57i_post, checkpoint52l_post, checkpoint52k_post, chkpt44d_post, checkpoint59, checkpoint58, checkpoint55, checkpoint54, checkpoint57, checkpoint56, checkpoint51, checkpoint50, checkpoint53, checkpoint52, checkpoint50d_post, checkpoint58f_post, checkpoint52f_post, checkpoint57n_post, checkpoint58d_post, checkpoint62s, checkpoint58a_post, checkpoint62r, checkpoint62q, checkpoint50b_pre, checkpoint44e_pre, checkpoint62p, checkpoint57z_post, checkpoint54f_post, checkpoint51f_post, checkpoint62a, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62w, checkpoint62z, checkpoint62y, checkpoint62x, checkpoint58y_post, checkpoint48b_post, checkpoint51d_post, checkpoint48c_pre, checkpoint47d_pre, checkpoint51t_post, checkpoint58t_post, checkpoint51n_post, checkpoint55i_post, checkpoint58m_post, checkpoint57l_post, checkpoint52i_pre, hrcube_1, hrcube_2, hrcube_3, checkpoint51s_post, checkpoint47a_post, checkpoint57t_post, checkpoint55c_post, checkpoint48d_pre, checkpoint51j_post, checkpoint47i_post, checkpoint63g, checkpoint52e_pre, checkpoint57v_post, checkpoint57f_post, checkpoint52e_post, checkpoint51n_pre, checkpoint47d_post, checkpoint53d_post, checkpoint46d_pre, checkpoint64, checkpoint65, checkpoint60, checkpoint61, checkpoint62, checkpoint63, checkpoint57a_post, checkpoint48d_post, checkpoint57h_pre, checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint48f_post, checkpoint45d_post, checkpoint52b_pre, checkpoint54b_post, checkpoint46j_pre, checkpoint58w_post, checkpoint57h_post, checkpoint51l_pre, checkpoint52m_post, checkpoint57y_pre, checkpoint55g_post, checkpoint44h_pre, checkpoint48h_post, checkpoint51q_post, checkpoint51b_pre, checkpoint46a_post, checkpoint47g_post, checkpoint52b_post, checkpoint52c_post, checkpoint46j_post, checkpoint51h_pre, checkpoint46k_post, chkpt44c_pre, checkpoint58o_post, checkpoint48a_post, checkpoint45a_post, checkpoint57c_post, checkpoint50f_post, checkpoint50a_post, checkpoint50f_pre, checkpoint58p_post, checkpoint58q_post, checkpoint52f_pre, checkpoint55d_post, checkpoint58e_post, mitgcm_mapl_00, checkpoint47j_post, checkpoint54a_pre, checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint53c_post, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint55d_pre, checkpoint57c_pre, checkpoint58r_post, checkpoint55j_post, branch-exfmods-tag, checkpoint44g_post, branchpoint-genmake2, checkpoint54a_post, checkpoint46e_pre, checkpoint55h_post, checkpoint58n_post, checkpoint51r_post, checkpoint48c_post, checkpoint45b_post, checkpoint46b_pre, checkpoint51i_post, checkpoint57e_post, release1_final_v1, checkpoint55b_post, checkpoint51b_post, checkpoint51c_post, checkpoint46c_pre, checkpoint53a_post, checkpoint46, checkpoint65o, checkpoint47b_post, checkpoint44b_post, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint59e, checkpoint59d, checkpoint59g, checkpoint59f, checkpoint59a, checkpoint55f_post, checkpoint59c, checkpoint59b, checkpoint59m, checkpoint59l, checkpoint59o, checkpoint59n, checkpoint59i, checkpoint59h, checkpoint59k, checkpoint46h_pre, checkpoint52d_post, checkpoint53g_post, checkpoint46m_post, checkpoint57p_post, checkpint57u_post, checkpoint46a_pre, checkpoint50g_post, checkpoint45c_post, checkpoint57q_post, checkpoint44h_post, eckpoint57e_pre, checkpoint46g_post, checkpoint58k_post, checkpoint52a_pre, checkpoint62b, checkpoint58v_post, checkpoint50h_post, checkpoint52i_post, checkpoint50e_pre, checkpoint50i_post, checkpoint51i_pre, checkpoint52h_pre, checkpoint56a_post, checkpoint64y, checkpoint64x, checkpoint58l_post, checkpoint64z, checkpoint53f_post, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64a, checkpoint64c, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f, checkpoint57h_done, checkpoint52j_post, checkpoint47f_post, checkpoint50e_post, checkpoint46i_post, checkpoint57j_post, checkpoint57f_pre, checkpoint61f, checkpoint46c_post, checkpoint58g_post, branch-netcdf, checkpoint50d_pre, checkpoint58x_post, checkpoint61n, checkpoint52n_post, checkpoint53b_pre, checkpoint46e_post, checkpoint59j, checkpoint58h_post, checkpoint56c_post, checkpoint58j_post, checkpoint51e_post, checkpoint57a_pre, checkpoint55a_post, checkpoint47, checkpoint45, checkpoint48, checkpoint49, checkpoint57o_post, checkpoint46h_post, checkpoint51o_post, checkpoint61q, checkpoint57k_post, checkpoint51f_pre, chkpt44c_post, checkpoint48g_post, checkpoint53b_post, checkpoint47h_post, checkpoint52a_post, checkpoint57w_post, checkpoint61e, checkpoint44f_pre, checkpoint58i_post, checkpoint51g_post, ecco_c52_e35, checkpoint57x_post, checkpoint46d_post, checkpoint50b_post, checkpoint58c_post, checkpoint58u_post, checkpoint51m_post, checkpoint53d_pre, checkpoint58s_post, checkpoint55e_post, checkpoint61g, checkpoint61d, checkpoint54c_post, checkpoint61b, checkpoint61c, checkpoint61a, checkpoint51a_post, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint51p_post, checkpoint61z, checkpoint61x, checkpoint61y, checkpoint51u_post, HEAD
Branch point for: branch-exfmods-curt, release1_final, branch-genmake2, branch-nonh, tg2-branch, netcdf-sm0, checkpoint51n_branch
Changes since 1.13: +402 -74 lines
o merge of relevant stuff from the ecco-branch:
  - genmake: removed $S64 overwrite for case SunOS
  - pkg/exf: update and corrections for field swapping and obcs
  - pkg/ecco: parameter lists for the_model_main, the_main_loop
              harmonized between ECCO and MITgcm
  - pkg/autodiff: added flow directives for obcs, mdsio_gl_slice
                  updated checkpointing_lev... lists for obcs
  - model/src: minor changes in forward_step, plot_field
               added directive for divided adjoint in the_main_loop
  - pkg/mdsio: added mdsio_gl_slice

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

  ViewVC Help
Powered by ViewVC 1.1.22