NetCDF-Fortran  4.4.4
 All Classes Files Functions Variables Typedefs Macros Pages
module_netcdf_nf_data.F90
Go to the documentation of this file.
2 
3 ! Module for Netcdf FORTRAN 2003 nf parameters. This includes all the
4 ! error condition parameters, external data types, fill values etc.
5 ! for netCDF2,3,4
6 
7 ! Written by: Richard Weed, Ph.D.
8 ! Center for Advanced Vehicular Systems
9 ! Mississippi State University
10 ! rweed@cavs.msstate.edu
11 
12 
13 ! License (and other Lawyer Language)
14 
15 ! This software is released under the Apache 2.0 Open Source License. The
16 ! full text of the License can be viewed at :
17 !
18 ! http:www.apache.org/licenses/LICENSE-2.0.html
19 !
20 ! The author grants to the University Corporation for Atmospheric Research
21 ! (UCAR), Boulder, CO, USA the right to revise and extend the software
22 ! without restriction. However, the author retains all copyrights and
23 ! intellectual property rights explicitly stated in or implied by the
24 ! Apache license
25 
26 ! Version 1. Sept. 2005 - initial Cray X1 version for netcdf 3.6,0
27 ! Version 2. Apr. 2005 - updated to be consistent with netcdf 3.6.1
28 ! Version 3. Apr. 2009 - updated for netCDF 4.0.1
29 ! Version 4. Apr. 2010 - updated for netCDF 4.1.1
30 ! Version 5. Feb. 2013 - Updated for netCDF 4.4
31 ! Version 6. Jan. 2016 - General code cleanup and added several new
32 ! parameters to mirror whats in netcdf_constants.f90
33 
34 ! This module is provided as a replacement for parts of the netcdf2.inc,
35 ! netcdf3.inc and netcdf4.inc include files. It does not include the
36 ! external statements for the nf_ functions. The latter are not needed
37 ! if you use the interfaces in module_netcdf_nf_interfaces. If you
38 ! want the externals, just use the include files.
39 
40  USE netcdf_nc_data
41 
42  Implicit NONE
43 
44 #include "nfconfig.inc"
45 
46 ! Define values found in netcdf2.inc, netcdf3.inc, and netcdf4.inc
47 ! Also some additional values from the NC_DATA interfaces
48 !
49 ! Define enumerator nc_type data as integers
50 
51  Integer, Parameter :: NF_NAT = NC_NAT
52  Integer, Parameter :: NF_BYTE = NC_BYTE
53  Integer, Parameter :: NF_INT1 = NF_BYTE
54  Integer, Parameter :: NF_CHAR = NC_CHAR
55  Integer, Parameter :: NF_SHORT = NC_SHORT
56  Integer, Parameter :: NF_INT2 = NF_SHORT
57  Integer, Parameter :: NF_INT = NC_INT
58  Integer, Parameter :: NF_FLOAT = NC_FLOAT
59  Integer, Parameter :: NF_REAL = NF_FLOAT
60  Integer, Parameter :: NF_DOUBLE = NC_DOUBLE
61 
62 ! Default fill values
63 
64  Integer, Parameter :: NF_FILL_CHAR = IACHAR(NC_FILL_CHAR)
65  Integer(IK1), Parameter :: NF_FILL_BYTE = NC_FILL_BYTE
66  Integer(IK2), Parameter :: NF_FILL_SHORT = NC_FILL_SHORT
67  Integer, Parameter :: NF_FILL_INT = NC_FILL_INT
68 
69  Real(RK4), Parameter :: NF_FILL_FLOAT = NC_FILL_FLOAT
70  Real(RK4), Parameter :: NF_FILL_REAL = NF_FILL_FLOAT
71  Real(RK4), Parameter :: NF_FILL_REAL4 = NF_FILL_FLOAT
72  Real(RK8), Parameter :: NF_FILL_DOUBLE = NC_FILL_DOUBLE
73  Real(RK8), Parameter :: NF_FILL_REAL8 = NF_FILL_DOUBLE
74 
75 ! Mode flags for opening and creating datasets
76 
77  Integer, Parameter :: NF_NOWRITE = NC_NOWRITE
78  Integer, Parameter :: NF_WRITE = NC_WRITE
79  Integer, Parameter :: NF_CLOBBER = NC_CLOBBER
80  Integer, Parameter :: NF_NOCLOBBER = NC_NOCLOBBER
81  Integer, Parameter :: NF_FILL = NC_FILL
82  Integer, Parameter :: NF_NOFILL = NC_NOFILL
83  Integer, Parameter :: NF_LOCK = NC_LOCK
84  Integer, Parameter :: NF_SHARE = NC_SHARE
85  Integer, Parameter :: NF_STRICT_NC3 = NC_STRICT_NC3
86  Integer, Parameter :: NF_64BIT_OFFSET = NC_64BIT_OFFSET
87  Integer, Parameter :: NF_SIZEHINT_DEFAULT = NC_SIZEHINT_DEFAULT
88  Integer, Parameter :: NF_ALIGN_CHUNK = NC_ALIGN_CHUNK
89  Integer, Parameter :: NF_FORMAT_CLASSIC = NC_FORMAT_CLASSIC
90  Integer, Parameter :: NF_FORMAT_64BIT = NC_FORMAT_64BIT
91  Integer, Parameter :: NF_DISKLESS = NC_DISKLESS
92  Integer, Parameter :: NF_MMAP = NC_MMAP
93  Integer, Parameter :: NF_INMEMORY = NC_INMEMORY
94 
95 ! Unlimited dimension size argument and global attibute ID
96 
97  Integer, Parameter :: NF_UNLIMITED = NC_UNLIMITED
98  Integer, Parameter :: NF_GLOBAL = NC_GLOBAL
99 
100 ! Implementation limits (WARNING! SHOULD BE THE SAME AS C INTERFACE)
101 
102  Integer, Parameter :: NF_MAX_DIMS = NC_MAX_DIMS
103  Integer, Parameter :: NF_MAX_ATTRS = NC_MAX_ATTRS
104  Integer, Parameter :: NF_MAX_VARS = NC_MAX_VARS
105  Integer, Parameter :: NF_MAX_NAME = NC_MAX_NAME
106  Integer, Parameter :: NF_MAX_VAR_DIMS = NC_MAX_DIMS
107 
108 ! Error codes
109 
110  Integer, Parameter :: NF_NOERR = NC_NOERR
111  Integer, Parameter :: NF2_ERR = NC2_ERR
112  Integer, Parameter :: NF_SYSERR = NC_SYSERR
113  Integer, Parameter :: NF_EXDR = NC_EXDR
114  Integer, Parameter :: NF_EBADID = NC_EBADID
115  Integer, Parameter :: NF_EBFILE = NC_EBFILE
116  Integer, Parameter :: NF_EEXIST = NC_EEXIST
117  Integer, Parameter :: NF_EINVAL = NC_EINVAL
118  Integer, Parameter :: NF_EPERM = NC_EPERM
119  Integer, Parameter :: NF_ENOTINDEFINE = NC_ENOTINDEFINE
120  Integer, Parameter :: NF_EINDEFINE = NC_EINDEFINE
121  Integer, Parameter :: NF_EINVALCOORDS = NC_EINVALCOORDS
122  Integer, Parameter :: NF_EMAXDIMS = NC_EMAXDIMS
123  Integer, Parameter :: NF_ENAMEINUSE = NC_ENAMEINUSE
124  Integer, Parameter :: NF_ENOTATT = NC_ENOTATT
125  Integer, Parameter :: NF_EMAXATTS = NC_EMAXATTS
126  Integer, Parameter :: NF_EBADTYPE = NC_EBADTYPE
127  Integer, Parameter :: NF_EBADDIM = NC_EBADDIM
128  Integer, Parameter :: NF_EUNLIMPOS = NC_EUNLIMPOS
129  Integer, Parameter :: NF_EMAXVARS = NC_EMAXVARS
130  Integer, Parameter :: NF_ENOTVAR = NC_ENOTVAR
131  Integer, Parameter :: NF_EGLOBAL = NC_EGLOBAL
132  Integer, Parameter :: NF_ENOTNC = NC_ENOTNC
133  Integer, Parameter :: NF_ESTS = NC_ESTS
134  Integer, Parameter :: NF_EMAXNAME = NC_EMAXNAME
135  Integer, Parameter :: NF_EUNLIMIT = NC_EUNLIMIT
136  Integer, Parameter :: NF_ENORECVARS = NC_ENORECVARS
137 
138  Integer, Parameter :: NF_ECHAR = NC_ECHAR
139  Integer, Parameter :: NF_EEDGE = NC_EEDGE
140  Integer, Parameter :: NF_ESTRIDE = NC_ESTRIDE
141  Integer, Parameter :: NF_EBADNAME = NC_EBADNAME
142  Integer, Parameter :: NF_ERANGE = NC_ERANGE
143  Integer, Parameter :: NF_ENOMEM = NC_ENOMEM
144  Integer, Parameter :: NF_EVARSIZE = NC_EVARSIZE
145  Integer, Parameter :: NF_EDIMSIZE = NC_EDIMSIZE
146  Integer, Parameter :: NF_ETRUNC = NC_ETRUNC
147  Integer, Parameter :: NF_EAXISTYPE = NC_EAXISTYPE
148 
149 ! DAP error codes
150 
151  Integer, Parameter :: NF_EDAP = NC_EDAP
152  Integer, Parameter :: NF_ECURL = NC_ECURL
153  Integer, Parameter :: NF_EIO = NC_EIO
154  Integer, Parameter :: NF_ENODATA = NC_ENODATA
155  Integer, Parameter :: NF_EDAPSVC = NC_EDAPSVC
156  Integer, Parameter :: NF_EDAS = NC_EDAS
157  Integer, Parameter :: NF_EDDS = NC_EDDS
158  Integer, Parameter :: NF_EDATADDS = NC_EDATADDS
159  Integer, Parameter :: NF_EDAPURL = NC_EDAPURL
160  Integer, Parameter :: NF_EDAPCONSTRAINT = NC_EDAPCONSTRAINT
161  Integer, Parameter :: NF_ETRANSLATION = NC_ETRANSLATION
162 
163 ! Error handling codes
164 
165  Integer, Parameter :: NF_FATAL = NC_FATAL
166  Integer, Parameter :: NF_VERBOSE = NC_VERBOSE
167 
168 #ifdef USE_NETCDF4
169 
170 ! NETCDF4 parameters
171 
172 ! data types
173 
174  Integer, Parameter :: NF_LONG = NC_LONG
175  Integer, Parameter :: NF_UBYTE = NC_UBYTE
176  Integer, Parameter :: NF_USHORT = NC_USHORT
177  Integer, Parameter :: NF_UINT = NC_UINT
178  Integer, Parameter :: NF_INT64 = NC_INT64
179  Integer, Parameter :: NF_UINT64 = NC_UINT64
180  Integer, Parameter :: NF_STRING = NC_STRING
181  Integer, Parameter :: NF_VLEN = NC_VLEN
182  Integer, Parameter :: NF_OPAQUE = NC_OPAQUE
183  Integer, Parameter :: NF_ENUM = NC_ENUM
184  Integer, Parameter :: NF_COMPOUND = NC_COMPOUND
185 
186 ! Netcdf4 fill flags - for some reason the F90 values are different
187 
188  Integer, Parameter :: NF_FILL_UBYTE = NC_FILL_UBYTE
189  Integer, Parameter :: NF_FILL_UINT1 = NF_FILL_UBYTE
190  Integer, Parameter :: NF_FILL_USHORT = NC_FILL_USHORT
191  Integer, Parameter :: NF_FILL_UINT2 = NF_FILL_USHORT
192  Integer(IK8), Parameter :: NF_FILL_UINT = NC_FILL_UINT
193  Integer(IK8), Parameter :: NF_FILL_INT64 = NC_FILL_INT64
194 
195 ! new format types
196 
197  Integer, Parameter :: NF_FORMAT_NETCDF4 = NC_FORMAT_NETCDF4
198  Integer, Parameter :: NF_FORMAT_NETCDF4_CLASSIC = NC_FORMAT_NETCDF4_CLASSIC
199 
200 ! Netcdf4 create mode flags
201  Integer, Parameter :: NF_NETCDF4 = NC_NETCDF4
202  Integer, Parameter :: NF_HDF5 = NF_NETCDF4 ! deprecated
203  Integer, Parameter :: NF_CLASSIC_MODEL = NC_CLASSIC_MODEL
204 
205 ! Netcdf4 variable flags
206 
207  Integer, Parameter :: NF_CHUNK_SEQ = NC_CHUNK_SEQ
208  Integer, Parameter :: NF_CHUNK_SUB = NC_CHUNK_SUB
209  Integer, Parameter :: NF_CHUNK_SIZES = NC_CHUNK_SIZES
210  Integer, Parameter :: NF_ENDIAN_NATIVE = NC_ENDIAN_NATIVE
211  Integer, Parameter :: NF_ENDIAN_LITTLE = NC_ENDIAN_LITTLE
212  Integer, Parameter :: NF_ENDIAN_BIG = NC_ENDIAN_BIG
213  Integer, Parameter :: NF_CHUNKED = NC_CHUNKED
214  Integer, Parameter :: NF_NOTCONTIGUOUS = NC_NOTCONTIGUOUS
215  Integer, Parameter :: NF_CONTIGUOUS = NC_CONTIGUOUS
216  Integer, Parameter :: NF_NOCHECKSUM = NC_NOCHECKSUM
217  Integer, Parameter :: NF_FLETCHER32 = NC_FLETCHER32
218  Integer, Parameter :: NF_NOSHUFFLE = NC_NOSHUFFLE
219  Integer, Parameter :: NF_SHUFFLE = NC_SHUFFLE
220  Integer, Parameter :: NF_INDEPENDENT = NC_INDEPENDENT
221  Integer, Parameter :: NF_COLLECTIVE = NC_COLLECTIVE
222 
223 ! Flags for parallel I/O
224 
225  Integer, Parameter :: NF_MPIIO = NC_MPIIO
226  Integer, Parameter :: NF_MPIPOSIX = NC_MPIPOSIX
227  Integer, Parameter :: NF_PNETCDF = NC_PNETCDF ! which is actually NC_MPIIO
228 
229 ! SZIP flags
230 
231  Integer, Parameter :: NF_SZIP_EC_OPTION_MASK = NC_SZIP_EC_OPTION_MASK
232  Integer, Parameter :: NF_SZIP_NN_OPTION_MASK = NC_SZIP_NN_OPTION_MASK
233 
234 ! Netcdf4 error flags
235 
236  Integer, Parameter :: NF_EHDFERR = NC_EHDFERR
237  Integer, Parameter :: NF_ECANTREAD = NC_ECANTREAD
238  Integer, Parameter :: NF_ECANTWRITE = NC_ECANTWRITE
239  Integer, Parameter :: NF_ECANTCREATE = NC_ECANTCREATE
240  Integer, Parameter :: NF_EFILEMETA = NC_EFILEMETA
241  Integer, Parameter :: NF_EDIMMETA = NC_EDIMMETA
242  Integer, Parameter :: NF_EATTMETA = NC_EATTMETA
243  Integer, Parameter :: NF_EVARMETA = NC_EVARMETA
244  Integer, Parameter :: NF_ENOCOMPOUND = NC_ENOCOMPOUND
245  Integer, Parameter :: NF_EATTEXISTS = NC_EATTEXISTS
246  Integer, Parameter :: NF_ENOTNC4 = NC_ENOTNC4
247  Integer, Parameter :: NF_ESTRICTNC3 = NC_ESTRICTNC3
248  Integer, Parameter :: NF_ENOTNC3 = NC_ENOTNC3
249  Integer, Parameter :: NF_ENOPAR = NC_ENOPAR
250  Integer, Parameter :: NF_EPARINIT = NC_EPARINIT
251  Integer, Parameter :: NF_EBADGRPID = NC_EBADGRPID
252  Integer, Parameter :: NF_EBADTYPID = NC_EBADTYPID
253  Integer, Parameter :: NF_ETYPDEFINED = NC_ETYPDEFINED
254  Integer, Parameter :: NF_EBADFIELD = NC_EBADFIELD
255  Integer, Parameter :: NF_EBADCLASS = NC_EBADCLASS
256  Integer, Parameter :: NF_EMAPTYPE = NC_EMAPTYPE
257  Integer, Parameter :: NF_ELATEFILL = NC_ELATEFILL
258  Integer, Parameter :: NF_ELATEDEF = NC_ELATEDEF
259  Integer, Parameter :: NF_EDIMSCALE = NC_EDIMSCALE
260  Integer, Parameter :: NF_ENOGRP = NC_ENOGRP
261  Integer, Parameter :: NF_ESTORAGE = NC_ESTORAGE
262  Integer, Parameter :: NF_EBADCHUNK = NC_EBADCHUNK
263  Integer, Parameter :: NF_ENOTBUILT = NC_ENOTBUILT
264  Integer, Parameter :: NF_EDISKLESS = NC_EDISKLESS
265  Integer, Parameter :: NF_ECANTEXTEND = NC_ECANTEXTEND
266  Integer, Parameter :: NF_EMPI = NC_EMPI
267 
268 #endif
269 
270 #ifndef NO_NETCDF_2
271 
272 ! V2 interface values
273 
274  Integer, Parameter :: NCBYTE = NF_BYTE
275  Integer, Parameter :: NCCHAR = NF_CHAR
276  Integer, Parameter :: NCSHORT = NF_SHORT
277  Integer, Parameter :: NCLONG = NF_INT
278  Integer, Parameter :: NCFLOAT = NF_FLOAT
279  Integer, Parameter :: NCDOUBLE = NF_DOUBLE
280 
281  Integer, Parameter :: NCRDWR = NF_WRITE
282  Integer, Parameter :: NCCREATE = 2
283  Integer, Parameter :: NCEXCL = 4
284  Integer, Parameter :: NCINDEF = 8
285  Integer, Parameter :: NCNSYNC = 16
286  Integer, Parameter :: NCHSYNC = 32
287  Integer, Parameter :: NCNDIRTY = 64
288  Integer, Parameter :: NCHDIRTY = 128
289  Integer, Parameter :: NCFILL = NF_FILL
290  Integer, Parameter :: NCNOFILL = NF_NOFILL
291  Integer, Parameter :: NCLINK = 32768
292 
293  Integer, Parameter :: NCNOWRIT = NF_NOWRITE
294  Integer, Parameter :: NCWRITE = NF_WRITE
295  Integer, Parameter :: NCCLOB = NF_CLOBBER
296  Integer, Parameter :: NCNOCLOB = NF_NOCLOBBER
297 
298  Integer, Parameter :: NCUNLIM = NF_UNLIMITED
299  Integer, Parameter :: NCGLOBAL = NF_GLOBAL
300 
301  Integer, Parameter :: MAXNCOP = 64
302  Integer, Parameter :: MAXNCDIM = NF_MAX_DIMS
303  Integer, Parameter :: MAXNCATT = NF_MAX_ATTRS
304  Integer, Parameter :: MAXNCVAR = NF_MAX_VARS
305  Integer, Parameter :: MAXNCNAM = NF_MAX_NAME
306  Integer, Parameter :: MAXVDIMS = MAXNCDIM
307 
308  Integer, Parameter :: NCNOERR = NF_NOERR
309  Integer, Parameter :: NCEBADID = NF_EBADID
310  Integer, Parameter :: NCENFILE = -31
311  Integer, Parameter :: NCEEXIST = NF_EEXIST
312  Integer, Parameter :: NCEINVAL = NF_EINVAL
313  Integer, Parameter :: NCEPERM = NF_EPERM
314  Integer, Parameter :: NCENOTIN = NF_ENOTINDEFINE
315  Integer, Parameter :: NCEINDEF = NF_EINDEFINE
316  Integer, Parameter :: NCECOORD = NF_EINVALCOORDS
317  Integer, Parameter :: NCEMAXDS = NF_EMAXDIMS
318  Integer, Parameter :: NCENAME = NF_ENAMEINUSE
319  Integer, Parameter :: NCEMAXAT = NF_EMAXATTS
320  Integer, Parameter :: NCEBADTY = NF_EBADTYPE
321  Integer, Parameter :: NCEBADD = NF_EBADDIM
322  Integer, Parameter :: NCEUNLIM = NF_EUNLIMPOS
323  Integer, Parameter :: NCEMAXVS = NF_EMAXVARS
324  Integer, Parameter :: NCENOTVR = NF_ENOTVAR
325  Integer, Parameter :: NCEGLOB = NF_EGLOBAL
326  Integer, Parameter :: NCNOTNC = NF_ENOTNC
327  Integer, Parameter :: NCESTC = NF_ESTS
328  Integer, Parameter :: NCENTOOL = NF_EMAXNAME
329  Integer, Parameter :: NCFOOBAR = 32
330  Integer, Parameter :: NCSYSERR = NF_SYSERR
331 
332  Integer, Parameter :: NCFATAL = NF_FATAL
333  Integer, Parameter :: NCVERBOS = NF_VERBOSE
334 
335  Integer, Parameter :: FILCHAR = NF_FILL_CHAR
336  Integer(IK1), Parameter :: FILBYTE = NF_FILL_BYTE
337  Integer(IK2), Parameter :: FILSHORT = NF_FILL_SHORT
338  Integer, Parameter :: FILLONG = NF_FILL_INT
339  Real(RK4), Parameter :: FILFLOAT = NF_FILL_FLOAT
340  Real(RK8), Parameter :: FILDOUB = NF_FILL_DOUBLE
341 
342 #endif
343 
344 !------------------------------------------------------------------------------
345 End Module netcdf_nf_data

Return to the Main Unidata NetCDF page.
Generated on Mon Dec 19 2016 16:43:42 for NetCDF-Fortran. NetCDF is a Unidata library.