/[MITgcm]/MITgcm/pkg/mnc/mnc_file.F
ViewVC logotype

Diff of /MITgcm/pkg/mnc/mnc_file.F

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

revision 1.14 by edhill, Fri Mar 19 03:28:36 2004 UTC revision 1.15 by edhill, Mon Mar 29 03:33:51 2004 UTC
# Line 4  C $Name$ Line 4  C $Name$
4  #include "MNC_OPTIONS.h"  #include "MNC_OPTIONS.h"
5    
6  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7    CBOP
8    C     !ROUTINE: MNC_FILE_CREATE
9    
10    C     !INTERFACE:
11        SUBROUTINE MNC_FILE_CREATE(        SUBROUTINE MNC_FILE_CREATE(
12       I     fname,       I     fname,
13       I     myThid )       I     myThid )
14    
15    C     !DESCRIPTION:
16    C     Create a NetCDF file.
17          
18    C     !USES:
19        implicit none        implicit none
20    
21  C     Arguments  C     !INPUT PARAMETERS:
22        integer myThid        integer myThid
23        character*(*) fname        character*(*) fname
24    
25  C     Local Variables  C     !LOCAL VARIABLES:
26        integer indf        integer indf
27    CEOP
28    
29        CALL MNC_FILE_OPEN(fname, 0, indf, myThid)        CALL MNC_FILE_OPEN(fname, 0, indf, myThid)
30    
# Line 24  C     Local Variables Line 32  C     Local Variables
32        END        END
33    
34  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
35    CBOP
36    C     !ROUTINE: MNC_FILE_OPEN
37    
38    C     !INTERFACE:
39        SUBROUTINE MNC_FILE_OPEN(        SUBROUTINE MNC_FILE_OPEN(
40       I     fname,       I     fname,
41       I     itype,       I     itype,
42       O     indf,       O     indf,
43       I     myThid )       I     myThid )
44    
45    C     !DESCRIPTION:
46    C     Open or create a NetCDF file.
47          
48    C     !USES:
49        implicit none        implicit none
50  #include "netcdf.inc"  #include "netcdf.inc"
51  #include "mnc_common.h"  #include "mnc_common.h"
52  #include "EEPARAMS.h"  #include "EEPARAMS.h"
53    
54  C     Arguments  C     !INPUT PARAMETERS:
55        integer myThid,indf        integer myThid,indf
56        character*(*) fname        character*(*) fname
57        integer itype        integer itype
58  C     itype => [ 0=new | 1=append | 2=read-only ]  C     itype => [ 0=new | 1=append | 2=read-only ]
59    
60  C     Functions  C     !LOCAL VARIABLES:
       integer ILNBLNK  
   
 C     Local Variables  
61        integer n, err, fid, nf        integer n, err, fid, nf
62        character*(MAX_LEN_MBUF) msgbuf        character*(MAX_LEN_MBUF) msgbuf
63    CEOP
64    C     Functions
65          integer ILNBLNK
66    
67  C     Is the file already open?  C     Is the file already open?
68        nf = ILNBLNK(fname)        nf = ILNBLNK(fname)
# Line 92  C       Error Line 107  C       Error
107        END        END
108    
109  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
110    CBOP
111    C     !ROUTINE: MNC_FILE_ADD_ATTR_STR
112    
113    C     !INTERFACE:
114        SUBROUTINE MNC_FILE_ADD_ATTR_STR(        SUBROUTINE MNC_FILE_ADD_ATTR_STR(
115       I     fname,       I     fname,
116       I     atname,       I     atname,
117       I     sval,       I     sval,
118       I     myThid )       I     myThid )
119    
120    C     !DESCRIPTION:
121    C     Add a character string attribute to a NetCDF file.
122    
123    C     !USES:
124        implicit none        implicit none
125  C     Arguments  
126    C     !INPUT PARAMETERS:
127        integer myThid        integer myThid
128        character*(*) fname, atname, sval        character*(*) fname, atname, sval
129    CEOP
130    
131        CALL MNC_FILE_ADD_ATTR_ANY(fname,atname, 1,        CALL MNC_FILE_ADD_ATTR_ANY(fname,atname, 1,
132       &     sval, 0, 0.0D0, 0.0, 0, myThid )       &     sval, 0, 0.0D0, 0.0, 0, myThid )
# Line 110  C     Arguments Line 134  C     Arguments
134        END        END
135    
136  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
137    CBOP
138    C     !ROUTINE: MNC_FILE_ADD_ATTR_DBL
139    
140    C     !INTERFACE:
141        SUBROUTINE MNC_FILE_ADD_ATTR_DBL(        SUBROUTINE MNC_FILE_ADD_ATTR_DBL(
142       I     fname,       I     fname,
143       I     atname,       I     atname,
# Line 118  C---+----1----+----2----+----3----+----4 Line 145  C---+----1----+----2----+----3----+----4
145       I     dval,       I     dval,
146       I     myThid )       I     myThid )
147    
148    C     !DESCRIPTION:
149    C     Add a double-precision real attribute to a NetCDF file.
150    
151    C     !USES:
152        implicit none        implicit none
153  C     Arguments  
154    C     !INPUT PARAMETERS:
155        integer myThid, len        integer myThid, len
156        character*(*) fname, atname        character*(*) fname, atname
157        REAL*8 dval        REAL*8 dval
158    CEOP
159    
160        CALL MNC_FILE_ADD_ATTR_ANY(fname,atname, 2,        CALL MNC_FILE_ADD_ATTR_ANY(fname,atname, 2,
161       &     ' ', len, dval, 0.0, 0, myThid )       &     ' ', len, dval, 0.0, 0, myThid )
# Line 130  C     Arguments Line 163  C     Arguments
163        END        END
164    
165  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
166    CBOP
167    C     !ROUTINE: MNC_FILE_ADD_ATTR_REAL
168    
169    C     !INTERFACE:
170        SUBROUTINE MNC_FILE_ADD_ATTR_REAL(        SUBROUTINE MNC_FILE_ADD_ATTR_REAL(
171       I     fname,       I     fname,
172       I     atname,       I     atname,
# Line 138  C---+----1----+----2----+----3----+----4 Line 174  C---+----1----+----2----+----3----+----4
174       I     rval,       I     rval,
175       I     myThid )       I     myThid )
176    
177    C     !DESCRIPTION:
178    C     Add a single-precision real attribute to a NetCDF file.
179    
180    C     !USES:
181        implicit none        implicit none
182  C     Arguments  
183    C     !INPUT PARAMETERS:
184        integer myThid, len        integer myThid, len
185        character*(*) fname, atname        character*(*) fname, atname
186        REAL*4 rval        REAL*4 rval
187    CEOP
188    
189        CALL MNC_FILE_ADD_ATTR_ANY(fname,atname, 3,        CALL MNC_FILE_ADD_ATTR_ANY(fname,atname, 3,
190       &     ' ', len, 0.0D0, rval, 0, myThid )       &     ' ', len, 0.0D0, rval, 0, myThid )
# Line 150  C     Arguments Line 192  C     Arguments
192        END        END
193    
194  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
195    CBOP
196    C     !ROUTINE: MNC_FILE_ADD_ATTR_INT
197    
198    C     !INTERFACE:
199        SUBROUTINE MNC_FILE_ADD_ATTR_INT(        SUBROUTINE MNC_FILE_ADD_ATTR_INT(
200       I     fname,       I     fname,
201       I     atname,       I     atname,
# Line 158  C---+----1----+----2----+----3----+----4 Line 203  C---+----1----+----2----+----3----+----4
203       I     ival,       I     ival,
204       I     myThid )       I     myThid )
205    
206    C     !DESCRIPTION:
207    C     Add an integer attribute to a NetCDF file.
208    
209    C     !USES:
210        implicit none        implicit none
211  C     Arguments  
212    C     !INPUT PARAMETERS:
213        integer myThid, len, ival        integer myThid, len, ival
214        character*(*) fname, atname        character*(*) fname, atname
215    CEOP
216    
217        CALL MNC_FILE_ADD_ATTR_ANY(fname,atname, 4,        CALL MNC_FILE_ADD_ATTR_ANY(fname,atname, 4,
218       &     ' ', len, 0.0D0, 0.0, ival, myThid )       &     ' ', len, 0.0D0, 0.0, ival, myThid )
# Line 169  C     Arguments Line 220  C     Arguments
220        END        END
221    
222  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
223    CBOP
224    C     !ROUTINE: MNC_FILE_ADD_ATTR_ANY
225    
226    C     !INTERFACE:
227        SUBROUTINE MNC_FILE_ADD_ATTR_ANY(        SUBROUTINE MNC_FILE_ADD_ATTR_ANY(
228       I     fname,       I     fname,
229       I     atname,       I     atname,
230       I     atype, sv, len,dv,rv,iv,       I     atype, sv, len,dv,rv,iv,
231       I     myThid )       I     myThid )
232    
233    C     !DESCRIPTION:
234    C     Add all attributes to a NetCDF file.
235    
236    C     !USES:
237        implicit none        implicit none
238  #include "netcdf.inc"  #include "netcdf.inc"
239  #include "mnc_common.h"  #include "mnc_common.h"
240  #include "EEPARAMS.h"  #include "EEPARAMS.h"
241    
242  C     Arguments  C     !INPUT PARAMETERS:
243        integer myThid, atype, len, iv        integer myThid, atype, len, iv
244        character*(*) fname, atname, sv        character*(*) fname, atname, sv
245        REAL*8 dv        REAL*8 dv
246        REAL*4 rv        REAL*4 rv
247                
248  C     Functions  C     !LOCAL VARIABLES:
       integer ILNBLNK  
   
 C     Local Variables  
249        integer n, err, fid, ind, n1, lens        integer n, err, fid, ind, n1, lens
250        character*(MNC_MAX_CHAR) s1        character*(MNC_MAX_CHAR) s1
251        character*(MAX_LEN_MBUF) msgbuf        character*(MAX_LEN_MBUF) msgbuf
252          CEOP
253    C     Functions
254          integer ILNBLNK
255    
256  C     Verify that the file is open  C     Verify that the file is open
257        CALL MNC_GET_IND(MNC_MAX_ID, fname, mnc_f_names, ind, myThid)        CALL MNC_GET_IND(MNC_MAX_ID, fname, mnc_f_names, ind, myThid)
258        IF (ind .LT. 0) THEN        IF (ind .LT. 0) THEN
# Line 245  C     Enter define mode Line 303  C     Enter define mode
303        END        END
304    
305  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
306    CBOP
307    C     !ROUTINE: MNC_FILE_CLOSE
308    
309    C     !INTERFACE:
310        SUBROUTINE MNC_FILE_CLOSE(        SUBROUTINE MNC_FILE_CLOSE(
311       I     fname,       I     fname,
312       I     myThid )       I     myThid )
313    
314    C     !DESCRIPTION:
315    C     Close a NetCDF file.
316          
317    C     !USES:
318        implicit none        implicit none
319  #include "netcdf.inc"  #include "netcdf.inc"
320  #include "mnc_common.h"  #include "mnc_common.h"
321  #include "EEPARAMS.h"  #include "EEPARAMS.h"
322    
323  C     Arguments  C     !INPUT PARAMETERS:
324        integer myThid        integer myThid
325        character*(*) fname        character*(*) fname
326    
327  C     Functions  C     !LOCAL VARIABLES:
       integer ILNBLNK  
   
 C     Local Variables  
328        integer i,j,k,n, err, fid, indf, nf        integer i,j,k,n, err, fid, indf, nf
329        character*(MAX_LEN_MBUF) msgbuf        character*(MAX_LEN_MBUF) msgbuf
330    CEOP
331    C     Functions
332          integer ILNBLNK
333    
334        nf = ILNBLNK(fname)        nf = ILNBLNK(fname)
335    
# Line 324  C     file name Line 389  C     file name
389        END        END
390    
391  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
392    CBOP
393    C     !ROUTINE: MNC_FILE_CLOSE_ALL_MATCHING
394    
395    C     !INTERFACE:
396        SUBROUTINE MNC_FILE_CLOSE_ALL_MATCHING(        SUBROUTINE MNC_FILE_CLOSE_ALL_MATCHING(
397       I     fname,       I     fname,
398       I     myThid )       I     myThid )
399    
400    C     !DESCRIPTION:
401    C     Close all files matching a character string.
402          
403    C     !USES:
404        implicit none        implicit none
405  #include "netcdf.inc"  #include "netcdf.inc"
406  #include "mnc_common.h"  #include "mnc_common.h"
407  #include "EEPARAMS.h"  #include "EEPARAMS.h"
408    
409  C     Arguments  C     !INPUT PARAMETERS:
410        integer myThid        integer myThid
411        character*(*) fname        character*(*) fname
412    
413    C     !LOCAL VARIABLES:
414          integer i,n
415    CEOP
416  C     Functions  C     Functions
417        integer ILNBLNK        integer ILNBLNK
418    
 C     Local Variables  
       integer i,n  
   
419        n = ILNBLNK(fname)        n = ILNBLNK(fname)
420        DO i = 1,MNC_MAX_ID        DO i = 1,MNC_MAX_ID
421    
# Line 358  C       Check that the file is open Line 430  C       Check that the file is open
430        END        END
431    
432  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
433    CBOP
434    C     !ROUTINE: MNC_FILE_CLOSE_ALL
435    
436    C     !INTERFACE:
437        SUBROUTINE MNC_FILE_CLOSE_ALL(        SUBROUTINE MNC_FILE_CLOSE_ALL(
438       I     myThid )       I     myThid )
439    
440    C     !DESCRIPTION:
441    C     Close all NetCDF files matching a string.
442          
443    C     !USES:
444        implicit none        implicit none
445  #include "netcdf.inc"  #include "netcdf.inc"
446  #include "mnc_common.h"  #include "mnc_common.h"
447  #include "EEPARAMS.h"  #include "EEPARAMS.h"
448    
449  C     Arguments  C     !INPUT PARAMETERS:
450        integer myThid        integer myThid
451    
452  C     Local Variables  C     !LOCAL VARIABLES:
453        integer i        integer i
454    CEOP
455    
456        DO i = 1,MNC_MAX_ID        DO i = 1,MNC_MAX_ID
457    
# Line 387  C       Check that the file is open Line 467  C       Check that the file is open
467        END        END
468    
469  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
470    CBOP
471    C     !ROUTINE: MNC_FILE_REDEF
472    
473    C     !INTERFACE:
474        SUBROUTINE MNC_FILE_REDEF(        SUBROUTINE MNC_FILE_REDEF(
475       I     fname,       I     fname,
476       I     myThid )       I     myThid )
477    
478    C     !DESCRIPTION:
479    C     Set the NetCDF file to DEFINE mode.
480          
481    C     !USES:
482        implicit none        implicit none
483  #include "netcdf.inc"  #include "netcdf.inc"
484  #include "mnc_common.h"  #include "mnc_common.h"
485  #include "EEPARAMS.h"  #include "EEPARAMS.h"
486    
487  C     Arguments  C     !INPUT PARAMETERS:
488        integer myThid        integer myThid
489        character*(*) fname        character*(*) fname
490    
491  C     Functions  C     !LOCAL VARIABLES:
       integer ILNBLNK  
   
 C     Local Variables  
492        integer ind, fid, def, err, n        integer ind, fid, def, err, n
493        character*(MAX_LEN_MBUF) msgbuf        character*(MAX_LEN_MBUF) msgbuf
494    CEOP
495    C     Functions
496          integer ILNBLNK
497    
498  C     Verify that the file is open  C     Verify that the file is open
499        CALL MNC_GET_IND(MNC_MAX_ID, fname, mnc_f_names, ind, myThid)        CALL MNC_GET_IND(MNC_MAX_ID, fname, mnc_f_names, ind, myThid)
# Line 432  C       Enter define mode Line 519  C       Enter define mode
519        END        END
520    
521  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
522    CBOP
523    C     !ROUTINE: MNC_FILE_ENDDEF
524    
525    C     !INTERFACE:
526        SUBROUTINE MNC_FILE_ENDDEF(        SUBROUTINE MNC_FILE_ENDDEF(
527       I     fname,       I     fname,
528       I     myThid )       I     myThid )
529    
530    C     !DESCRIPTION:
531    C     End DEFINE mode for a NetCDF file.
532          
533    C     !USES:
534        implicit none        implicit none
535  #include "netcdf.inc"  #include "netcdf.inc"
536  #include "mnc_common.h"  #include "mnc_common.h"
537  #include "EEPARAMS.h"  #include "EEPARAMS.h"
538    
539  C     Arguments  C     !INPUT PARAMETERS:
540        integer myThid        integer myThid
541        character*(*) fname        character*(*) fname
542    
543  C     Functions  C     !LOCAL VARIABLES:
       integer ILNBLNK  
   
 C     Local Variables  
544        integer ind, fid, def, err, n        integer ind, fid, def, err, n
545        character*(MAX_LEN_MBUF) msgbuf        character*(MAX_LEN_MBUF) msgbuf
546    CEOP
547    C     Functions
548          integer ILNBLNK
549    
550  C     Verify that the file is open  C     Verify that the file is open
551        CALL MNC_GET_IND(MNC_MAX_ID, fname, mnc_f_names, ind, myThid)        CALL MNC_GET_IND(MNC_MAX_ID, fname, mnc_f_names, ind, myThid)
# Line 486  C---+----1----+----2----+----3----+----4 Line 580  C---+----1----+----2----+----3----+----4
580  #include "netcdf.inc"  #include "netcdf.inc"
581  #include "EEPARAMS.h"  #include "EEPARAMS.h"
582    
583  C     Arguments  C     !INPUT PARAMETERS:
584        integer myThid        integer myThid
585        character*(*) fname        character*(*) fname
586    
# Line 508  C     Local Variables Line 602  C     Local Variables
602        END        END
603    
604  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
605    CBOP
606    C     !ROUTINE: MNC_FILE_TRY_READ
607    
608    C     !INTERFACE:
609        SUBROUTINE MNC_FILE_TRY_READ(        SUBROUTINE MNC_FILE_TRY_READ(
610       I     fname,       I     fname,
611       O     ierr,       O     ierr,
612       O     indf,       O     indf,
613       I     myThid )       I     myThid )
614    
615    C     !DESCRIPTION:
616    C     Try to open and read a NetCDF file.
617          
618    C     !USES:
619        implicit none        implicit none
620  #include "netcdf.inc"  #include "netcdf.inc"
621  #include "mnc_common.h"  #include "mnc_common.h"
622  #include "EEPARAMS.h"  #include "EEPARAMS.h"
623    
624  C     Arguments  C     !INPUT PARAMETERS:
625        integer myThid, ierr, indf        integer myThid, ierr, indf
626        character*(*) fname        character*(*) fname
627    
628  C     Functions  C     !LOCAL VARIABLES:
       integer IFNBLNK, ILNBLNK  
   
 C     Local Variables  
629        integer i,j,k, fid, err, ndim,nvar,ngat,unlimid        integer i,j,k, fid, err, ndim,nvar,ngat,unlimid
630        integer dlen, id, xtype, nat, nff,nlf, iv        integer dlen, id, xtype, nat, nff,nlf, iv
631        integer ndv, did, ns,ne, n1,n2, indg, indv        integer ndv, did, ns,ne, n1,n2, indg, indv
# Line 535  C     Local Variables Line 633  C     Local Variables
633        character*(NF_MAX_NAME) name        character*(NF_MAX_NAME) name
634        integer idlist(NF_MAX_VAR_DIMS)        integer idlist(NF_MAX_VAR_DIMS)
635        character*(MNC_MAX_CHAR) dnames(20)        character*(MNC_MAX_CHAR) dnames(20)
636    CEOP
637    C     Functions
638          integer IFNBLNK, ILNBLNK
639    
640  C     Open and save the filename and fID  C     Open and save the filename and fID
641        nff = IFNBLNK(fname)        nff = IFNBLNK(fname)

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.15

  ViewVC Help
Powered by ViewVC 1.1.22