/[MITgcm]/MITgcm/pkg/rw/write_rec.F
ViewVC logotype

Annotation of /MITgcm/pkg/rw/write_rec.F

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


Revision 1.2 - (hide annotations) (download)
Tue Nov 13 19:39:26 2007 UTC (16 years, 6 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint60, checkpoint61, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint59m, checkpoint59l, checkpoint59o, checkpoint59n, checkpoint59k, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61b, checkpoint61c, checkpoint61a, checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i
Changes since 1.1: +189 -23 lines
- add new wraper S/R for reading/writing a set of consecutive levels
 (instead of all of them) in/from a 3-D array.
- clean-up other S/R: call directly new MDSIO S/R

1 jmc 1.2 C $Header: /u/gcmpack/MITgcm/pkg/rw/write_rec.F,v 1.1 2006/08/06 18:06:17 jmc Exp $
2 jmc 1.1 C $Name: $
3     #include "RW_OPTIONS.h"
4    
5     C-- File read_write_rec.F: Routines to handle mid-level I/O interface.
6     C-- Contents
7     C-- o SET_WRITE_GLOBAL_REC
8     C-- o WRITE_REC_XY_RS
9     C-- o WRITE_REC_XY_RL
10     C-- o WRITE_REC_XYZ_RS
11     C-- o WRITE_REC_XYZ_RL
12     C-- o WRITE_REC_3D_RS
13     C-- o WRITE_REC_3D_RL
14 jmc 1.2 C-- o WRITE_REC_LEV_RS
15     C-- o WRITE_REC_LEV_RL
16 jmc 1.1
17 jmc 1.2
18     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
19 jmc 1.1 CBOP
20     C !ROUTINE: SET_WRITE_GLOBAL_REC
21     C !INTERFACE:
22     SUBROUTINE SET_WRITE_GLOBAL_REC ( flag )
23     IMPLICIT NONE
24    
25     C !DESCRIPTION: \bv
26     C SET_WRITE_GLOBAL_FLD( flag ) sets an internal logical state to
27     C indicate whether files written by subsequent call to the
28     C READ_WRITE_FLD package should create "global" or "tiled" files.
29     C flag = .TRUE. indicates "global" files
30     C flag = .FALSE. indicates "tiled" files
31     C \ev
32    
33     C !INPUT/OUTPUT PARAMETERS:
34     C Arguments
35     LOGICAL flag
36     C !USES:
37     C Common
38     COMMON /RD_WR_REC/ globalFile
39     LOGICAL globalFile
40     CEOP
41    
42     globalFile=flag
43    
44     RETURN
45     END
46    
47 jmc 1.2 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
48 jmc 1.1 CBOP
49     C !ROUTINE: WRITE_REC_XY_RS
50     C !INTERFACE:
51 jmc 1.2 SUBROUTINE WRITE_REC_XY_RS( fName,field,iRec,myIter,myThid )
52 jmc 1.1
53     C !DESCRIPTION: \bv
54     C WRITE_REC_XY_RS is a "front-end" interface to the low-level I/O
55     C routines.
56     C \ev
57    
58     C !USES:
59     IMPLICIT NONE
60     C Global
61     #include "SIZE.h"
62     #include "EEPARAMS.h"
63     #include "PARAMS.h"
64    
65     C !INPUT/OUTPUT PARAMETERS:
66     C Arguments
67     CHARACTER*(*) fName
68     _RS field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy)
69     INTEGER iRec
70     INTEGER myIter
71     INTEGER myThid
72    
73     C Functions
74     c INTEGER ILNBLNK
75    
76     C Common
77     COMMON /RD_WR_REC/ globalFile
78     LOGICAL globalFile
79    
80     C !LOCAL VARIABLES:
81     C Local
82 jmc 1.2 LOGICAL useCurrentDir
83 jmc 1.1 CHARACTER*(2) fType
84     INTEGER nNz
85     c INTEGER IL
86     c CHARACTER*(MAX_LEN_FNAM) fullName
87     CEOP
88    
89    
90     c IF (myIter.GE.0) THEN
91     c IL=ILNBLNK( fName )
92     c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter
93     c ELSE
94     c fullName=fName
95     c ENDIF
96    
97 jmc 1.2 useCurrentDir = .FALSE.
98 jmc 1.1 fType='RS'
99     nNz=1
100     #ifdef ALLOW_MDSIO
101 jmc 1.2 CALL MDS_WRITE_FIELD(
102     I fName, writeBinaryPrec,
103     I globalFile, useCurrentDir,
104     I fType, nNz, 1, nNz, field,
105     I iRec, myIter, myThid )
106 jmc 1.1 #endif
107     RETURN
108     END
109    
110 jmc 1.2 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
111 jmc 1.1 CBOP
112     C !ROUTINE: WRITE_REC_XY_RL
113     C !INTERFACE:
114 jmc 1.2 SUBROUTINE WRITE_REC_XY_RL( fName,field,iRec,myIter,myThid )
115 jmc 1.1
116     C !DESCRIPTION: \bv
117     C WRITE_REC_XY_RL is a "front-end" interface to the low-level I/O
118     C routines.
119     C \ev
120    
121     C !USES:
122     IMPLICIT NONE
123     C Global
124     #include "SIZE.h"
125     #include "EEPARAMS.h"
126     #include "PARAMS.h"
127    
128     C !INPUT/OUTPUT PARAMETERS:
129     C Arguments
130     CHARACTER*(*) fName
131     _RL field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy)
132     INTEGER iRec
133     INTEGER myIter
134     INTEGER myThid
135    
136     C Functions
137     c INTEGER ILNBLNK
138    
139     C Common
140     COMMON /RD_WR_REC/ globalFile
141     LOGICAL globalFile
142    
143     C !LOCAL VARIABLES:
144     C Local
145 jmc 1.2 LOGICAL useCurrentDir
146 jmc 1.1 CHARACTER*(2) fType
147     INTEGER nNz
148     c INTEGER IL
149     c CHARACTER*(MAX_LEN_FNAM) fullName
150     CEOP
151    
152    
153     c IF (myIter.GE.0) THEN
154     c IL=ILNBLNK( fName )
155     c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter
156     c ELSE
157     c fullName=fName
158     c ENDIF
159    
160 jmc 1.2 useCurrentDir = .FALSE.
161 jmc 1.1 fType='RL'
162     nNz=1
163     #ifdef ALLOW_MDSIO
164 jmc 1.2 CALL MDS_WRITE_FIELD(
165     I fName, writeBinaryPrec,
166     I globalFile, useCurrentDir,
167     I fType, nNz, 1, nNz, field,
168     I iRec, myIter, myThid )
169 jmc 1.1 #endif
170     RETURN
171     END
172    
173 jmc 1.2 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
174 jmc 1.1 CBOP
175     C !ROUTINE: WRITE_REC_XYZ_RS
176     C !INTERFACE:
177 jmc 1.2 SUBROUTINE WRITE_REC_XYZ_RS( fName,field,iRec,myIter,myThid )
178 jmc 1.1
179     C !DESCRIPTION: \bv
180     C WRITE_REC_XYZ_RS is a "front-end" interface to the low-level I/O
181     C routines.
182     C \ev
183    
184     C !USES:
185     IMPLICIT NONE
186     C Global
187     #include "SIZE.h"
188     #include "EEPARAMS.h"
189     #include "PARAMS.h"
190    
191     C !INPUT/OUTPUT PARAMETERS:
192     C Arguments
193     CHARACTER*(*) fName
194     _RS field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy)
195     INTEGER iRec
196     INTEGER myIter
197     INTEGER myThid
198    
199     C Functions
200     c INTEGER ILNBLNK
201    
202     C Common
203     COMMON /RD_WR_REC/ globalFile
204     LOGICAL globalFile
205    
206     C !LOCAL VARIABLES:
207     C Local
208 jmc 1.2 LOGICAL useCurrentDir
209 jmc 1.1 CHARACTER*(2) fType
210     INTEGER nNz
211     c INTEGER IL
212     c CHARACTER*(MAX_LEN_FNAM) fullName
213     CEOP
214    
215    
216     c IF (myIter.GE.0) THEN
217     c IL=ILNBLNK( fName )
218     c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter
219     c ELSE
220     c fullName=fName
221     c ENDIF
222    
223 jmc 1.2 useCurrentDir = .FALSE.
224 jmc 1.1 fType='RS'
225     nNz=Nr
226     #ifdef ALLOW_MDSIO
227 jmc 1.2 CALL MDS_WRITE_FIELD(
228     I fName, writeBinaryPrec,
229     I globalFile, useCurrentDir,
230     I fType, nNz, 1, nNz, field,
231     I iRec, myIter, myThid )
232 jmc 1.1 #endif
233     RETURN
234     END
235    
236 jmc 1.2 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
237 jmc 1.1 CBOP
238     C !ROUTINE: WRITE_REC_XYZ_RL
239     C !INTERFACE:
240 jmc 1.2 SUBROUTINE WRITE_REC_XYZ_RL( fName,field,iRec,myIter,myThid )
241 jmc 1.1
242     C !DESCRIPTION: \bv
243     C WRITE_REC_XYZ_RL is a "front-end" interface to the low-level I/O
244     C routines.
245     C \ev
246    
247     C !USES:
248     IMPLICIT NONE
249     C Global
250     #include "SIZE.h"
251     #include "EEPARAMS.h"
252     #include "PARAMS.h"
253    
254     C !INPUT/OUTPUT PARAMETERS:
255     C Arguments
256     CHARACTER*(*) fName
257     _RL field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy)
258     INTEGER iRec
259     INTEGER myIter
260     INTEGER myThid
261    
262     C Functions
263     c INTEGER ILNBLNK
264    
265     C Common
266     COMMON /RD_WR_REC/ globalFile
267     LOGICAL globalFile
268    
269     C !LOCAL VARIABLES:
270     C Local
271 jmc 1.2 LOGICAL useCurrentDir
272 jmc 1.1 CHARACTER*(2) fType
273     INTEGER nNz
274     c INTEGER IL
275     c CHARACTER*(MAX_LEN_FNAM) fullName
276     CEOP
277    
278    
279     c IF (myIter.GE.0) THEN
280     c IL=ILNBLNK( fName )
281     c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter
282     c ELSE
283     c fullName=fName
284     c ENDIF
285    
286 jmc 1.2 useCurrentDir = .FALSE.
287 jmc 1.1 fType='RL'
288     nNz=Nr
289     #ifdef ALLOW_MDSIO
290 jmc 1.2 CALL MDS_WRITE_FIELD(
291     I fName, writeBinaryPrec,
292     I globalFile, useCurrentDir,
293     I fType, nNz, 1, nNz, field,
294     I iRec, myIter, myThid )
295 jmc 1.1 #endif
296     RETURN
297     END
298    
299 jmc 1.2 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
300 jmc 1.1 CBOP
301     C !ROUTINE: WRITE_REC_3D_RS
302     C !INTERFACE:
303     SUBROUTINE WRITE_REC_3D_RS(
304     I fName, fPrec, nNz, field,
305     I iRec, myIter, myThid )
306    
307     C !DESCRIPTION: \bv
308     C WRITE_REC_3D_RS is a "front-end" interface to the low-level I/O routines.
309     C write a full 3D field (nNz levels) to record number "iRec"
310     C in binary file "fName" (precision "fPrec", generally =32 or 64).
311     C \ev
312    
313     C !USES:
314     IMPLICIT NONE
315     C Global
316     #include "SIZE.h"
317     #include "EEPARAMS.h"
318     #include "PARAMS.h"
319    
320     C !INPUT/OUTPUT PARAMETERS:
321     C Arguments
322     CHARACTER*(*) fName
323     INTEGER fPrec
324     INTEGER nNz
325     _RS field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nNz,nSx,nSy)
326     INTEGER iRec
327     INTEGER myIter
328     INTEGER myThid
329    
330     C Functions
331     c INTEGER ILNBLNK
332    
333     C Common
334     COMMON /RD_WR_REC/ globalFile
335     LOGICAL globalFile
336    
337     C !LOCAL VARIABLES:
338     C Local
339 jmc 1.2 LOGICAL useCurrentDir
340 jmc 1.1 CHARACTER*(2) fType
341     c INTEGER IL
342     c CHARACTER*(MAX_LEN_FNAM) fullName
343     CEOP
344    
345    
346     c IF (myIter.GE.0) THEN
347     c IL=ILNBLNK( fName )
348     c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter
349     c ELSE
350     c fullName=fName
351     c ENDIF
352    
353 jmc 1.2 useCurrentDir = .FALSE.
354 jmc 1.1 fType='RS'
355     #ifdef ALLOW_MDSIO
356 jmc 1.2 CALL MDS_WRITE_FIELD(
357     I fName, fPrec, globalFile, useCurrentDir,
358     I fType, nNz, 1, nNz, field,
359     I iRec, myIter, myThid )
360 jmc 1.1 #endif
361     RETURN
362     END
363    
364 jmc 1.2 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
365 jmc 1.1 CBOP
366     C !ROUTINE: WRITE_REC_3D_RL
367     C !INTERFACE:
368     SUBROUTINE WRITE_REC_3D_RL(
369     I fName, fPrec, nNz, field,
370     I iRec, myIter, myThid )
371    
372     C !DESCRIPTION: \bv
373     C WRITE_REC_3D_RL is a "front-end" interface to the low-level I/O routines.
374     C write a full 3D field (nNz levels) to record number "iRec"
375     C in binary file "fName" (precision "fPrec", generally =32 or 64).
376     C \ev
377    
378     C !USES:
379     IMPLICIT NONE
380     C Global
381     #include "SIZE.h"
382     #include "EEPARAMS.h"
383     #include "PARAMS.h"
384    
385     C !INPUT/OUTPUT PARAMETERS:
386     C Arguments
387     CHARACTER*(*) fName
388     INTEGER fPrec
389     INTEGER nNz
390     _RL field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nNz,nSx,nSy)
391     INTEGER iRec
392     INTEGER myIter
393     INTEGER myThid
394    
395     C Functions
396     c INTEGER ILNBLNK
397    
398     C Common
399     COMMON /RD_WR_REC/ globalFile
400     LOGICAL globalFile
401    
402     C !LOCAL VARIABLES:
403     C Local
404 jmc 1.2 LOGICAL useCurrentDir
405     CHARACTER*(2) fType
406     c INTEGER IL
407     c CHARACTER*(MAX_LEN_FNAM) fullName
408     CEOP
409    
410    
411     c IF (myIter.GE.0) THEN
412     c IL=ILNBLNK( fName )
413     c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter
414     c ELSE
415     c fullName=fName
416     c ENDIF
417    
418     useCurrentDir = .FALSE.
419     fType='RL'
420     #ifdef ALLOW_MDSIO
421     CALL MDS_WRITE_FIELD(
422     I fName, fPrec, globalFile, useCurrentDir,
423     I fType, nNz, 1, nNz, field,
424     I iRec, myIter, myThid )
425     #endif
426     RETURN
427     END
428    
429     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
430     CBOP
431     C !ROUTINE: WRITE_REC_LEV_RS
432     C !INTERFACE:
433     SUBROUTINE WRITE_REC_LEV_RS(
434     I fName, fPrec, kSiz, kLo, kHi, field,
435     I iRec, myIter, myThid )
436    
437     C !DESCRIPTION: \bv
438     C WRITE_REC_LEV_RS is a "front-end" interface to the low-level I/O routines.
439     C Write a set a consecutive levels (from kLo to kHi) from 3D array (size: kSiz)
440     C to record number "iRec" in binary file "fName" (precision "fPrec",
441     C generally =32 or 64).
442     C \ev
443    
444     C !USES:
445     IMPLICIT NONE
446     C Global
447     #include "SIZE.h"
448     #include "EEPARAMS.h"
449     #include "PARAMS.h"
450    
451     C !INPUT/OUTPUT PARAMETERS:
452     C Arguments
453     CHARACTER*(*) fName
454     INTEGER fPrec
455     INTEGER kSiz, kLo, kHi
456     _RS field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,kSiz,nSx,nSy)
457     INTEGER iRec
458     INTEGER myIter
459     INTEGER myThid
460    
461     C Functions
462     c INTEGER ILNBLNK
463    
464     C Common
465     COMMON /RD_WR_REC/ globalFile
466     LOGICAL globalFile
467    
468     C !LOCAL VARIABLES:
469     C Local
470     LOGICAL useCurrentDir
471 jmc 1.1 CHARACTER*(2) fType
472     c INTEGER IL
473     c CHARACTER*(MAX_LEN_FNAM) fullName
474     CEOP
475    
476    
477     c IF (myIter.GE.0) THEN
478     c IL=ILNBLNK( fName )
479     c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter
480     c ELSE
481     c fullName=fName
482     c ENDIF
483    
484 jmc 1.2 useCurrentDir = .FALSE.
485     fType='RS'
486     #ifdef ALLOW_MDSIO
487     CALL MDS_WRITE_FIELD(
488     I fName, fPrec, globalFile, useCurrentDir,
489     I fType, kSiz, kLo, kHi, field,
490     I iRec, myIter, myThid )
491     #endif
492     RETURN
493     END
494    
495     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
496     CBOP
497     C !ROUTINE: WRITE_REC_LEV_RL
498     C !INTERFACE:
499     SUBROUTINE WRITE_REC_LEV_RL(
500     I fName, fPrec, kSiz, kLo, kHi, field,
501     I iRec, myIter, myThid )
502    
503     C !DESCRIPTION: \bv
504     C WRITE_REC_LEV_RL is a "front-end" interface to the low-level I/O routines.
505     C Write a set a consecutive levels (from kLo to kHi) from 3D array (size: kSiz)
506     C to record number "iRec" in binary file "fName" (precision "fPrec",
507     C generally =32 or 64).
508     C \ev
509    
510     C !USES:
511     IMPLICIT NONE
512     C Global
513     #include "SIZE.h"
514     #include "EEPARAMS.h"
515     #include "PARAMS.h"
516    
517     C !INPUT/OUTPUT PARAMETERS:
518     C Arguments
519     CHARACTER*(*) fName
520     INTEGER fPrec
521     INTEGER kSiz, kLo, kHi
522     _RS field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,kSiz,nSx,nSy)
523     INTEGER iRec
524     INTEGER myIter
525     INTEGER myThid
526    
527     C Functions
528     c INTEGER ILNBLNK
529    
530     C Common
531     COMMON /RD_WR_REC/ globalFile
532     LOGICAL globalFile
533    
534     C !LOCAL VARIABLES:
535     C Local
536     LOGICAL useCurrentDir
537     CHARACTER*(2) fType
538     c INTEGER IL
539     c CHARACTER*(MAX_LEN_FNAM) fullName
540     CEOP
541    
542    
543     c IF (myIter.GE.0) THEN
544     c IL=ILNBLNK( fName )
545     c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter
546     c ELSE
547     c fullName=fName
548     c ENDIF
549    
550     useCurrentDir = .FALSE.
551 jmc 1.1 fType='RL'
552     #ifdef ALLOW_MDSIO
553 jmc 1.2 CALL MDS_WRITE_FIELD(
554     I fName, fPrec, globalFile, useCurrentDir,
555     I fType, kSiz, kLo, kHi, field,
556     I iRec, myIter, myThid )
557 jmc 1.1 #endif
558     RETURN
559     END
560 jmc 1.2
561     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|

  ViewVC Help
Powered by ViewVC 1.1.22