48 USE iso_fortran_env
, ONLY: real32, real64, int8, int16, int32, int64
52 #include "nfconfig.inc"
63 Integer,
Parameter,
PRIVATE :: REAL32 = SELECTED_REAL_KIND(P=6, R=37)
64 Integer,
Parameter,
PRIVATE :: REAL64 = SELECTED_REAL_KIND(P=13, R=307)
65 Integer,
Parameter,
PRIVATE :: INT8 = SELECTED_INT_KIND( 2)
66 Integer,
Parameter,
PRIVATE :: INT16 = SELECTED_INT_KIND( 4)
67 Integer,
Parameter,
PRIVATE :: INT32 = SELECTED_INT_KIND( 9)
68 Integer,
Parameter,
PRIVATE :: INT64 = SELECTED_INT_KIND(18)
73 Integer,
Parameter :: RK4 = REAL32
74 Integer,
Parameter :: RK8 = REAL64
75 Integer,
Parameter :: IK1 = INT8
76 Integer,
Parameter :: IK2 = INT16
77 Integer,
Parameter :: IK4 = INT32
78 Integer,
Parameter :: IK8 = INT64
88 #ifndef HAVE_TS29113_SUPPORT
89 #if (SIZEOF_PTRDIFF_T == 4)
90 Integer,
Parameter :: C_PTRDIFF_T = C_INT32_T
91 #elif (SIZEOF_PTRDIFF_T == 8)
92 Integer,
Parameter :: C_PTRDIFF_T = C_INT64_T
94 Integer,
Parameter :: C_PTRDIFF_T = C_INTPTR_T
108 #ifdef NF_INT1_IS_C_SIGNED_CHAR
109 Integer,
Parameter :: CINT1 = C_SIGNED_CHAR
110 Integer,
Parameter :: NFINT1 = IK1
111 #elif NF_INT1_IS_C_SHORT
112 Integer,
Parameter :: CINT1 = C_SHORT
113 Integer,
Parameter :: NFINT1 = IK2
114 #elif NF_INT1_IS_C_INT
115 Integer,
Parameter :: CINT1 = C_INT
116 Integer,
Parameter :: NFINT1 = IK4
117 #elif NF_INT1_IS_C_LONG
118 Integer,
Parameter :: CINT1 = C_LONG
119 Integer,
Parameter :: NFINT1 = IK8
121 Integer,
Parameter :: CINT1 = C_SIGNED_CHAR
122 Integer,
Parameter :: NFINT1 = IK1
127 #ifdef NF_INT2_IS_C_SHORT
128 Integer,
Parameter :: CINT2 = C_SHORT
129 Integer,
Parameter :: NFINT2 = IK2
130 #elif NF_INT2_IS_C_INT
131 Integer,
Parameter :: CINT2 = C_INT
132 Integer,
Parameter :: NFINT2 = IK4
133 #elif NF_INT2_IS_C_LONG
134 Integer,
Parameter :: CINT2 = C_LONG
135 Integer,
Parameter :: NFINT2 = IK8
137 Integer,
Parameter :: CINT2 = C_SHORT
138 Integer,
Parameter :: NFINT2 = IK2
146 #ifdef NF_INT_IS_C_LONG
147 Integer,
Parameter :: CINT = C_LONG
148 Integer,
Parameter :: NFINT = IK8
150 Integer,
Parameter :: CINT = C_INT
151 Integer,
Parameter :: NFINT = IK4
158 #ifdef NF_REAL_IS_C_DOUBLE
159 Integer,
Parameter :: NFREAL = RK8
161 Integer,
Parameter :: NFREAL = RK4
179 Integer,
Parameter :: C_ENUM = KIND(dummy)
192 Integer(C_INT),
Parameter :: NC_NAT = 0
193 Integer(C_INT),
Parameter :: NC_BYTE = 1
194 Integer(C_INT),
Parameter :: NC_CHAR = 2
195 Integer(C_INT),
Parameter :: NC_SHORT = 3
196 Integer(C_INT),
Parameter :: NC_INT = 4
197 Integer(C_INT),
Parameter :: NC_FLOAT = 5
198 Integer(C_INT),
Parameter :: NC_DOUBLE = 6
202 Character(KIND=C_CHAR),
Parameter :: NC_FILL_CHAR = C_NULL_CHAR
203 Integer(C_SIGNED_CHAR),
Parameter :: NC_FILL_BYTE = -127_C_SIGNED_CHAR
204 Integer(C_SHORT),
Parameter :: NC_FILL_SHORT = -32767_C_SHORT
205 Integer(C_INT),
Parameter :: NC_FILL_INT = -2147483647_C_INT
206 Real(C_FLOAT),
Parameter :: NC_FILL_FLOAT = 9.9692099683868690E+36
207 Real(C_DOUBLE),
Parameter :: NC_FILL_DOUBLE = 9.9692099683868690D+36
211 Integer(C_INT),
Parameter :: NC_NOWRITE = 0
212 Integer(C_INT),
Parameter :: NC_WRITE = 1
213 Integer(C_INT),
Parameter :: NC_CLOBBER = 0
214 Integer(C_INT),
Parameter :: NC_NOCLOBBER = 4
215 Integer(C_INT),
Parameter :: NC_FILL = 0
216 Integer(C_INT),
Parameter :: NC_NOFILL = 256
217 Integer(C_INT),
Parameter :: NC_LOCK = 1024
218 Integer(C_INT),
Parameter :: NC_SHARE = 2048
219 Integer(C_INT),
Parameter :: NC_STRICT_NC3 = 8
220 Integer(C_INT),
Parameter :: NC_64BIT_OFFSET = 512
221 Integer(C_INT),
Parameter :: NC_SIZEHINT_DEFAULT = 0
222 Integer(C_INT),
Parameter :: NC_ALIGN_CHUNK = -1
223 Integer(C_INT),
Parameter :: NC_FORMAT_CLASSIC = 1
224 Integer(C_INT),
Parameter :: NC_FORMAT_64BIT = 2
225 Integer(C_INT),
Parameter :: NC_DISKLESS = 8
226 Integer(C_INT),
Parameter :: NC_MMAP = 16
227 Integer(C_INT),
Parameter :: NC_INMEMORY = 32768
231 Integer(C_INT),
Parameter :: NC_UNLIMITED = 0
232 Integer(C_INT),
Parameter :: NC_GLOBAL = 0
236 Integer(C_INT),
Parameter :: NC_MAX_DIMS = 1024
237 Integer(C_INT),
Parameter :: NC_MAX_ATTRS = 8192
238 Integer(C_INT),
Parameter :: NC_MAX_VARS = 8192
239 Integer(C_INT),
Parameter :: NC_MAX_NAME = 256
240 Integer(C_INT),
Parameter :: NC_MAX_VAR_DIMS = NC_MAX_DIMS
244 Integer(C_INT),
Parameter :: NC_NOERR = 0
245 Integer(C_INT),
Parameter :: NC2_ERR = -1
246 Integer(C_INT),
Parameter :: NC_SYSERR = -31
247 Integer(C_INT),
Parameter :: NC_EXDR = -32
248 Integer(C_INT),
Parameter :: NC_EBADID = -33
249 Integer(C_INT),
Parameter :: NC_EBFILE = -34
250 Integer(C_INT),
Parameter :: NC_EEXIST = -35
251 Integer(C_INT),
Parameter :: NC_EINVAL = -36
252 Integer(C_INT),
Parameter :: NC_EPERM = -37
253 Integer(C_INT),
Parameter :: NC_ENOTINDEFINE = -38
254 Integer(C_INT),
Parameter :: NC_EINDEFINE = -39
255 Integer(C_INT),
Parameter :: NC_EINVALCOORDS = -40
256 Integer(C_INT),
Parameter :: NC_EMAXDIMS = -41
257 Integer(C_INT),
Parameter :: NC_ENAMEINUSE = -42
258 Integer(C_INT),
Parameter :: NC_ENOTATT = -43
259 Integer(C_INT),
Parameter :: NC_EMAXATTS = -44
260 Integer(C_INT),
Parameter :: NC_EBADTYPE = -45
261 Integer(C_INT),
Parameter :: NC_EBADDIM = -46
262 Integer(C_INT),
Parameter :: NC_EUNLIMPOS = -47
263 Integer(C_INT),
Parameter :: NC_EMAXVARS = -48
264 Integer(C_INT),
Parameter :: NC_ENOTVAR = -49
265 Integer(C_INT),
Parameter :: NC_EGLOBAL = -50
266 Integer(C_INT),
Parameter :: NC_ENOTNC = -51
267 Integer(C_INT),
Parameter :: NC_ESTS = -52
268 Integer(C_INT),
Parameter :: NC_EMAXNAME = -53
269 Integer(C_INT),
Parameter :: NC_EUNLIMIT = -54
270 Integer(C_INT),
Parameter :: NC_ENORECVARS = -55
271 Integer(C_INT),
Parameter :: NC_ECHAR = -56
272 Integer(C_INT),
Parameter :: NC_EEDGE = -57
273 Integer(C_INT),
Parameter :: NC_ESTRIDE = -58
274 Integer(C_INT),
Parameter :: NC_EBADNAME = -59
275 Integer(C_INT),
Parameter :: NC_ERANGE = -60
276 Integer(C_INT),
Parameter :: NC_ENOMEM = -61
277 Integer(C_INT),
Parameter :: NC_EVARSIZE = -62
278 Integer(C_INT),
Parameter :: NC_EDIMSIZE = -63
279 Integer(C_INT),
Parameter :: NC_ETRUNC = -64
280 Integer(C_INT),
Parameter :: NC_EAXISTYPE = -65
284 Integer(C_INT),
Parameter :: NC_EDAP = -66
285 Integer(C_INT),
Parameter :: NC_ECURL = -67
286 Integer(C_INT),
Parameter :: NC_EIO = -68
287 Integer(C_INT),
Parameter :: NC_ENODATA = -69
288 Integer(C_INT),
Parameter :: NC_EDAPSVC = -70
289 Integer(C_INT),
Parameter :: NC_EDAS = -71
290 Integer(C_INT),
Parameter :: NC_EDDS = -72
291 Integer(C_INT),
Parameter :: NC_EDATADDS = -73
292 Integer(C_INT),
Parameter :: NC_EDAPURL = -74
293 Integer(C_INT),
Parameter :: NC_EDAPCONSTRAINT = -75
294 Integer(C_INT),
Parameter :: NC_ETRANSLATION = -76
298 Integer(C_INT),
Parameter :: NC_FATAL = 1
299 Integer(C_INT),
Parameter :: NC_VERBOSE = 2
305 Integer(C_INT),
Parameter :: NC_FORMAT_NETCDF4 = 3
306 Integer(C_INT),
Parameter :: NC_FORMAT_NETCDF4_CLASSIC = 4
307 Integer(C_INT),
Parameter :: NC_NETCDF4 = 4096
308 Integer(C_INT),
Parameter :: NC_CLASSIC_MODEL = 256
312 Integer(C_INT),
Parameter :: NC_LONG = NC_INT
313 Integer(C_INT),
Parameter :: NC_UBYTE = 7
314 Integer(C_INT),
Parameter :: NC_USHORT = 8
315 Integer(C_INT),
Parameter :: NC_UINT = 9
316 Integer(C_INT),
Parameter :: NC_INT64 = 10
317 Integer(C_INT),
Parameter :: NC_UINT64 = 11
318 Integer(C_INT),
Parameter :: NC_STRING = 12
319 Integer(C_INT),
Parameter :: NC_VLEN = 13
320 Integer(C_INT),
Parameter :: NC_OPAQUE = 14
321 Integer(C_INT),
Parameter :: NC_ENUM = 15
322 Integer(C_INT),
Parameter :: NC_COMPOUND = 16
326 Integer(C_INT),
Parameter :: NC_FILL_UBYTE = 255
327 Integer(C_INT),
Parameter :: NC_FILL_USHORT = 65535
328 Integer(C_LONG_LONG),
Parameter :: NC_FILL_UINT = 4294967295_C_LONG_LONG
329 Integer(C_LONG_LONG),
Parameter :: NC_FILL_INT64 = -9223372036854775806_C_LONG_LONG
333 Integer(C_INT),
Parameter :: NC_CHUNK_SEQ = 0
334 Integer(C_INT),
Parameter :: NC_CHUNK_SUB = 1
335 Integer(C_INT),
Parameter :: NC_CHUNK_SIZES = 2
336 Integer(C_INT),
Parameter :: NC_ENDIAN_NATIVE = 0
337 Integer(C_INT),
Parameter :: NC_ENDIAN_LITTLE = 1
338 Integer(C_INT),
Parameter :: NC_ENDIAN_BIG = 2
339 Integer(C_INT),
Parameter :: NC_CHUNKED = 0
340 Integer(C_INT),
Parameter :: NC_NOTCONTIGUOUS = 0
341 Integer(C_INT),
Parameter :: NC_CONTIGUOUS = 1
342 Integer(C_INT),
Parameter :: NC_NOCHECKSUM = 0
343 Integer(C_INT),
Parameter :: NC_FLETCHER32 = 1
344 Integer(C_INT),
Parameter :: NC_NOSHUFFLE = 0
345 Integer(C_INT),
Parameter :: NC_SHUFFLE = 1
346 Integer(C_INT),
Parameter :: NC_INDEPENDENT = 0
347 Integer(C_INT),
Parameter :: NC_COLLECTIVE = 1
351 Integer(C_INT),
Parameter :: NC_MPIIO = 8192
352 Integer(C_INT),
Parameter :: NC_MPIPOSIX = 16384
353 Integer(C_INT),
Parameter :: NC_PNETCDF = NC_MPIIO
355 Integer(C_INT),
Parameter :: NC_SZIP_EC_OPTION_MASK = 4
356 Integer(C_INT),
Parameter :: NC_SZIP_NN_OPTION_MASK = 32
360 Integer(C_INT),
Parameter :: NC_EHDFERR = -101
361 Integer(C_INT),
Parameter :: NC_ECANTREAD = -102
362 Integer(C_INT),
Parameter :: NC_ECANTWRITE = -103
363 Integer(C_INT),
Parameter :: NC_ECANTCREATE = -104
364 Integer(C_INT),
Parameter :: NC_EFILEMETA = -105
365 Integer(C_INT),
Parameter :: NC_EDIMMETA = -106
366 Integer(C_INT),
Parameter :: NC_EATTMETA = -107
367 Integer(C_INT),
Parameter :: NC_EVARMETA = -108
368 Integer(C_INT),
Parameter :: NC_ENOCOMPOUND = -109
369 Integer(C_INT),
Parameter :: NC_EATTEXISTS = -110
370 Integer(C_INT),
Parameter :: NC_ENOTNC4 = -111
371 Integer(C_INT),
Parameter :: NC_ESTRICTNC3 = -112
372 Integer(C_INT),
Parameter :: NC_ENOTNC3 = -113
373 Integer(C_INT),
Parameter :: NC_ENOPAR = -114
374 Integer(C_INT),
Parameter :: NC_EPARINIT = -115
375 Integer(C_INT),
Parameter :: NC_EBADGRPID = -116
376 Integer(C_INT),
Parameter :: NC_EBADTYPID = -117
377 Integer(C_INT),
Parameter :: NC_ETYPDEFINED = -118
378 Integer(C_INT),
Parameter :: NC_EBADFIELD = -119
379 Integer(C_INT),
Parameter :: NC_EBADCLASS = -120
380 Integer(C_INT),
Parameter :: NC_EMAPTYPE = -121
381 Integer(C_INT),
Parameter :: NC_ELATEFILL = -122
382 Integer(C_INT),
Parameter :: NC_ELATEDEF = -123
383 Integer(C_INT),
Parameter :: NC_EDIMSCALE = -124
384 Integer(C_INT),
Parameter :: NC_ENOGRP = -125
385 Integer(C_INT),
Parameter :: NC_ESTORAGE = -126
386 Integer(C_INT),
Parameter :: NC_EBADCHUNK = -127
387 Integer(C_INT),
Parameter :: NC_ENOTBUILT = -128
388 Integer(C_INT),
Parameter :: NC_EDISKLESS = -129
389 Integer(C_INT),
Parameter :: NC_ECANTEXTEND = -130
390 Integer(C_INT),
Parameter :: NC_EMPI = -131