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