43 USE iso_fortran_env
, ONLY: real32, real64, int8, int16, int32, int64
47 #include "nfconfig.inc" 54 Integer,
Parameter,
PRIVATE :: real32 = selected_real_kind(p=6, r=37)
55 Integer,
Parameter,
PRIVATE :: real64 = selected_real_kind(p=13, r=307)
56 Integer,
Parameter,
PRIVATE :: int8 = selected_int_kind( 2)
57 Integer,
Parameter,
PRIVATE :: int16 = selected_int_kind( 4)
58 Integer,
Parameter,
PRIVATE :: int32 = selected_int_kind( 9)
59 Integer,
Parameter,
PRIVATE :: int64 = selected_int_kind(18)
64 Integer,
Parameter :: rk4 = real32
65 Integer,
Parameter :: rk8 = real64
66 Integer,
Parameter :: ik1 = int8
67 Integer,
Parameter :: ik2 = int16
68 Integer,
Parameter :: ik4 = int32
69 Integer,
Parameter :: ik8 = int64
79 #ifndef HAVE_TS29113_SUPPORT 80 #if (SIZEOF_PTRDIFF_T == 4) 81 Integer,
Parameter :: c_ptrdiff_t = c_int32_t
82 #elif (SIZEOF_PTRDIFF_T == 8) 83 Integer,
Parameter :: c_ptrdiff_t = c_int64_t
85 Integer,
Parameter :: c_ptrdiff_t = c_intptr_t
99 #ifdef NF_INT1_IS_C_SIGNED_CHAR 100 Integer,
Parameter :: cint1 = c_signed_char
101 Integer,
Parameter :: nfint1 = ik1
102 #elif NF_INT1_IS_C_SHORT 103 Integer,
Parameter :: cint1 = c_short
104 Integer,
Parameter :: nfint1 = ik2
105 #elif NF_INT1_IS_C_INT 106 Integer,
Parameter :: cint1 = c_int
107 Integer,
Parameter :: nfint1 = ik4
108 #elif NF_INT1_IS_C_LONG 109 Integer,
Parameter :: cint1 = c_long
110 Integer,
Parameter :: nfint1 = ik8
112 Integer,
Parameter :: cint1 = c_signed_char
113 Integer,
Parameter :: nfint1 = ik1
118 #ifdef NF_INT2_IS_C_SHORT 119 Integer,
Parameter :: cint2 = c_short
120 Integer,
Parameter :: nfint2 = ik2
121 #elif NF_INT2_IS_C_INT 122 Integer,
Parameter :: cint2 = c_int
123 Integer,
Parameter :: nfint2 = ik4
124 #elif NF_INT2_IS_C_LONG 125 Integer,
Parameter :: cint2 = c_long
126 Integer,
Parameter :: nfint2 = ik8
128 Integer,
Parameter :: cint2 = c_short
129 Integer,
Parameter :: nfint2 = ik2
137 #ifdef NF_INT_IS_C_LONG 138 Integer,
Parameter :: cint = c_long
139 Integer,
Parameter :: nfint = ik8
141 Integer,
Parameter :: cint = c_int
142 Integer,
Parameter :: nfint = ik4
149 #ifdef NF_REAL_IS_C_DOUBLE 150 Integer,
Parameter :: nfreal = rk8
152 Integer,
Parameter :: nfreal = rk4
164 Integer(KIND=C_INT),
Parameter :: nc_nat = 0
165 Integer(KIND=C_INT),
Parameter :: nc_byte = 1
166 Integer(KIND=C_INT),
Parameter :: nc_char = 2
167 Integer(KIND=C_INT),
Parameter :: nc_short = 3
168 Integer(KIND=C_INT),
Parameter :: nc_int = 4
169 Integer(KIND=C_INT),
Parameter :: nc_float = 5
170 Integer(KIND=C_INT),
Parameter :: nc_double = 6
174 Character(KIND=C_CHAR),
Parameter :: nc_fill_char = c_null_char
175 Integer(KIND=C_SIGNED_CHAR),
Parameter :: nc_fill_byte = -127_c_signed_char
176 Integer(KIND=C_SHORT),
Parameter :: nc_fill_short = -32767_c_short
177 Integer(KIND=C_INT),
Parameter :: nc_fill_int = -2147483647_c_int
178 Real(KIND=C_FLOAT),
Parameter :: nc_fill_float = 9.9692099683868690e+36
179 Real(KIND=C_DOUBLE),
Parameter :: nc_fill_double = 9.9692099683868690d+36
183 Integer(KIND=C_INT),
Parameter :: nc_nowrite = 0
184 Integer(KIND=C_INT),
Parameter :: nc_write = 1
185 Integer(KIND=C_INT),
Parameter :: nc_clobber = 0
186 Integer(KIND=C_INT),
Parameter :: nc_noclobber = 4
187 Integer(KIND=C_INT),
Parameter :: nc_fill = 0
188 Integer(KIND=C_INT),
Parameter :: nc_nofill = 256
189 Integer(KIND=C_INT),
Parameter :: nc_lock = 1024
190 Integer(KIND=C_INT),
Parameter :: nc_share = 2048
191 Integer(KIND=C_INT),
Parameter :: nc_strict_nc3 = 8
192 Integer(KIND=C_INT),
Parameter :: nc_64bit_offset = 512
193 Integer(KIND=C_INT),
Parameter :: nc_sizehint_default = 0
194 Integer(KIND=C_INT),
Parameter :: nc_align_chunk = -1
195 Integer(KIND=C_INT),
Parameter :: nc_format_classic = 1
196 Integer(KIND=C_INT),
Parameter :: nc_format_64bit = 2
197 Integer(KIND=C_INT),
Parameter :: nc_diskless = 8
198 Integer(KIND=C_INT),
Parameter :: nc_mmap = 16
203 Integer(KIND=C_INT),
Parameter :: nc_unlimited = 0
204 Integer(KIND=C_INT),
Parameter :: nc_global = 0
208 Integer(KIND=C_INT),
Parameter :: nc_max_dims = 1024
209 Integer(KIND=C_INT),
Parameter :: nc_max_attrs = 8192
210 Integer(KIND=C_INT),
Parameter :: nc_max_vars = 8192
211 Integer(KIND=C_INT),
Parameter :: nc_max_name = 256
212 Integer(KIND=C_INT),
Parameter :: nc_max_var_dims = nc_max_dims
216 Integer(KIND=C_INT),
Parameter :: nc_noerr = 0
217 Integer(KIND=C_INT),
Parameter :: nc2_err = -1
218 Integer(KIND=C_INT),
Parameter :: nc_syserr = -31
219 Integer(KIND=C_INT),
Parameter :: nc_exdr = -32
220 Integer(KIND=C_INT),
Parameter :: nc_ebadid = -33
221 Integer(KIND=C_INT),
Parameter :: nc_ebfile = -34
222 Integer(KIND=C_INT),
Parameter :: nc_eexist = -35
223 Integer(KIND=C_INT),
Parameter :: nc_einval = -36
224 Integer(KIND=C_INT),
Parameter :: nc_eperm = -37
225 Integer(KIND=C_INT),
Parameter :: nc_enotindefine = -38
226 Integer(KIND=C_INT),
Parameter :: nc_eindefine = -39
227 Integer(KIND=C_INT),
Parameter :: nc_einvalcoords = -40
228 Integer(KIND=C_INT),
Parameter :: nc_emaxdims = -41
229 Integer(KIND=C_INT),
Parameter :: nc_enameinuse = -42
230 Integer(KIND=C_INT),
Parameter :: nc_enotatt = -43
231 Integer(KIND=C_INT),
Parameter :: nc_emaxatts = -44
232 Integer(KIND=C_INT),
Parameter :: nc_ebadtype = -45
233 Integer(KIND=C_INT),
Parameter :: nc_ebaddim = -46
234 Integer(KIND=C_INT),
Parameter :: nc_eunlimpos = -47
235 Integer(KIND=C_INT),
Parameter :: nc_emaxvars = -48
236 Integer(KIND=C_INT),
Parameter :: nc_enotvar = -49
237 Integer(KIND=C_INT),
Parameter :: nc_eglobal = -50
238 Integer(KIND=C_INT),
Parameter :: nc_enotnc = -51
239 Integer(KIND=C_INT),
Parameter :: nc_ests = -52
240 Integer(KIND=C_INT),
Parameter :: nc_emaxname = -53
241 Integer(KIND=C_INT),
Parameter :: nc_eunlimit = -54
242 Integer(KIND=C_INT),
Parameter :: nc_enorecvars = -55
243 Integer(KIND=C_INT),
Parameter :: nc_echar = -56
244 Integer(KIND=C_INT),
Parameter :: nc_eedge = -57
245 Integer(KIND=C_INT),
Parameter :: nc_estride = -58
246 Integer(KIND=C_INT),
Parameter :: nc_ebadname = -59
247 Integer(KIND=C_INT),
Parameter :: nc_erange = -60
248 Integer(KIND=C_INT),
Parameter :: nc_enomem = -61
249 Integer(KIND=C_INT),
Parameter :: nc_evarsize = -62
250 Integer(KIND=C_INT),
Parameter :: nc_edimsize = -63
251 Integer(KIND=C_INT),
Parameter :: nc_etrunc = -64
255 Integer(KIND=C_INT),
Parameter :: nc_fatal = 1
256 Integer(KIND=C_INT),
Parameter :: nc_verbose = 2
260 Integer(KIND=C_INT),
Parameter :: nc_format_netcdf4 = 3
261 Integer(KIND=C_INT),
Parameter :: nc_format_netcdf4_classic = 4
262 Integer(KIND=C_INT),
Parameter :: nc_netcdf4 = 4096
263 Integer(KIND=C_INT),
Parameter :: nc_classic_model = 256
266 Integer(KIND=C_INT),
Parameter :: nc_long = nc_int
267 Integer(KIND=C_INT),
Parameter :: nc_ubyte = 7
268 Integer(KIND=C_INT),
Parameter :: nc_ushort = 8
269 Integer(KIND=C_INT),
Parameter :: nc_uint = 9
270 Integer(KIND=C_INT),
Parameter :: nc_int64 = 10
271 Integer(KIND=C_INT),
Parameter :: nc_uint64 = 11
272 Integer(KIND=C_INT),
Parameter :: nc_string = 12
273 Integer(KIND=C_INT),
Parameter :: nc_vlen = 13
274 Integer(KIND=C_INT),
Parameter :: nc_opaque = 14
275 Integer(KIND=C_INT),
Parameter :: nc_enum = 15
276 Integer(KIND=C_INT),
Parameter :: nc_compound = 16
279 Integer(KIND=C_INT),
Parameter :: nc_fill_ubyte = 255
280 Integer(KIND=C_INT),
Parameter :: nc_fill_ushort = 65535
281 Integer(KIND=C_LONG_LONG),
Parameter :: nc_fill_uint = 4294967295_c_long_long
282 Integer(KIND=C_LONG_LONG),
Parameter :: nc_fill_int64 = -9223372036854775806_c_long_long
285 Integer(KIND=C_INT),
Parameter :: nc_chunk_seq = 0
286 Integer(KIND=C_INT),
Parameter :: nc_chunk_sub = 1
287 Integer(KIND=C_INT),
Parameter :: nc_chunk_sizes = 2
288 Integer(KIND=C_INT),
Parameter :: nc_endian_native = 0
289 Integer(KIND=C_INT),
Parameter :: nc_endian_little = 1
290 Integer(KIND=C_INT),
Parameter :: nc_endian_big = 2
291 Integer(KIND=C_INT),
Parameter :: nc_chunked = 0
292 Integer(KIND=C_INT),
Parameter :: nc_notcontiguous = 0
293 Integer(KIND=C_INT),
Parameter :: nc_contiguous = 1
294 Integer(KIND=C_INT),
Parameter :: nc_nochecksum = 0
295 Integer(KIND=C_INT),
Parameter :: nc_fletcher32 = 1
296 Integer(KIND=C_INT),
Parameter :: nc_noshuffle = 0
297 Integer(KIND=C_INT),
Parameter :: nc_shuffle = 1
298 Integer(KIND=C_INT),
Parameter :: nc_independent = 0
299 Integer(KIND=C_INT),
Parameter :: nc_collective = 1
303 Integer(KIND=C_INT),
Parameter :: nc_mpiio = 8192
304 Integer(KIND=C_INT),
Parameter :: nc_mpiposix = 16384
305 Integer(KIND=C_INT),
Parameter :: nc_pnetcdf = 32768
307 Integer(KIND=C_INT),
Parameter :: nc_szip_ec_option_mask = 4
308 Integer(KIND=C_INT),
Parameter :: nc_szip_nn_option_mask = 32
311 Integer(KIND=C_INT),
Parameter :: nc_ehdferr = -101
312 Integer(KIND=C_INT),
Parameter :: nc_ecantread = -102
313 Integer(KIND=C_INT),
Parameter :: nc_ecantwrite = -103
314 Integer(KIND=C_INT),
Parameter :: nc_ecantcreate = -104
315 Integer(KIND=C_INT),
Parameter :: nc_efilemeta = -105
316 Integer(KIND=C_INT),
Parameter :: nc_edimmeta = -106
317 Integer(KIND=C_INT),
Parameter :: nc_eattmeta = -107
318 Integer(KIND=C_INT),
Parameter :: nc_evarmeta = -108
319 Integer(KIND=C_INT),
Parameter :: nc_enocompound = -109
320 Integer(KIND=C_INT),
Parameter :: nc_eattexists = -110
321 Integer(KIND=C_INT),
Parameter :: nc_enotnc4 = -111
322 Integer(KIND=C_INT),
Parameter :: nc_estrictnc3 = -112
323 Integer(KIND=C_INT),
Parameter :: nc_enotnc3 = -113
324 Integer(KIND=C_INT),
Parameter :: nc_enopar = -114
325 Integer(KIND=C_INT),
Parameter :: nc_eparinit = -115
326 Integer(KIND=C_INT),
Parameter :: nc_ebadgrpid = -116
327 Integer(KIND=C_INT),
Parameter :: nc_ebadtypid = -117
328 Integer(KIND=C_INT),
Parameter :: nc_etypdefined = -118
329 Integer(KIND=C_INT),
Parameter :: nc_ebadfield = -119
330 Integer(KIND=C_INT),
Parameter :: nc_ebadclass = -120
331 Integer(KIND=C_INT),
Parameter :: nc_emaptype = -121
332 Integer(KIND=C_INT),
Parameter :: nc_elatefill = -122
333 Integer(KIND=C_INT),
Parameter :: nc_elatedef = -123
334 Integer(KIND=C_INT),
Parameter :: nc_edimscale = -124
335 Integer(KIND=C_INT),
Parameter :: nc_enogrp = -125
338 End Module netcdf_nc_data