1/*
2 *  Copyright (C) 2003, Northwestern University and Argonne National Laboratory
3 *  See COPYRIGHT notice in top-level directory.
4 *
5 * $Id: pnetcdf.h.in 2658 2016-11-27 22:13:48Z wkliao $
6 *
7 * @configure_input@
8 */
9
10#ifndef _PNETCDF_
11#define _PNETCDF_
12
13#include <mpi.h>
14
15#define PNETCDF_VERSION       "@PNETCDF_VERSION@"
16#define PNETCDF_VERSION_MAJOR @PNETCDF_VERSION_MAJOR@
17#define PNETCDF_VERSION_MINOR @PNETCDF_VERSION_MINOR@
18#define PNETCDF_VERSION_SUB   @PNETCDF_VERSION_SUB@
19#define PNETCDF_RELEASE_DATE  "@PNETCDF_RELEASE_DATE@"
20
21/* list of PnetCDF options enabled/disabled at configure time */
22#define PNETCDF_ERANGE_FILL       @ENABLE_ERANGE_FILL@
23#define PNETCDF_SUBFILING         @ENABLE_SUBFILING@
24#define PNETCDF_RELAX_COORD_BOUND @RELAX_COORD_BOUND@
25#define PNETCDF_DEBUG_MODE        @PNETCDF_DEBUG@
26
27
28#if defined(__cplusplus)
29extern "C" {
30#endif
31
32/* NetCDF data types and their corresponding external types in C convention
33 * and type names used in PnetCDF APIs:
34    NC_BYTE   :   signed char       (for _schar     APIs)
35    NC_CHAR   : unsigned char       (for _text      APIs)
36    NC_SHORT  :   signed short int  (for _short     APIs)
37    NC_INT    :   signed int        (for _int       APIs)
38    NC_FLOAT  :          float      (for _float     APIs)
39    NC_DOUBLE :          double     (for _double    APIs)
40    NC_UBYTE  : unsigned char       (for _ubyte and
41                                         _uchar     APIs)
42    NC_USHORT : unsigned short int  (for _ushort    APIs)
43    NC_UINT   : unsigned int        (for _uint      APIs)
44    NC_INT64  :   signed long long  (for _longlong  APIs)
45    NC_UINT64 : unsigned long long  (for _ulonglong APIs)
46 */
47
48/* to make PnetCDF error codes compatible to netCDF, below we keep an exact
49 * same copy of netcdf.h and re-use their defined values
50 * Sync-ed with netcdf.h of version 4.4.0-rc5
51 */
52#ifndef _NETCDF_
53
54/*! The nc_type type is just an int. */
55typedef int nc_type;
56
57/*
58 *  The netcdf external data types
59 */
60#define	NC_NAT 	        0	/**< Not A Type */
61#define	NC_BYTE         1	/**< signed 1 byte integer */
62#define	NC_CHAR 	2	/**< ISO/ASCII character */
63#define	NC_SHORT 	3	/**< signed 2 byte integer */
64#define	NC_INT 	        4	/**< signed 4 byte integer */
65#define NC_LONG         NC_INT  /**< deprecated, but required for backward compatibility. */
66#define	NC_FLOAT 	5	/**< single precision floating point number */
67#define	NC_DOUBLE 	6	/**< double precision floating point number */
68#define	NC_UBYTE 	7	/**< unsigned 1 byte int */
69#define	NC_USHORT 	8	/**< unsigned 2-byte int */
70#define	NC_UINT 	9	/**< unsigned 4-byte int */
71#define	NC_INT64 	10	/**< signed 8-byte int */
72#define	NC_UINT64 	11	/**< unsigned 8-byte int */
73#define	NC_STRING 	12	/**< string */
74
75#define NC_MAX_ATOMIC_TYPE NC_STRING
76
77/* The following are use internally in support of user-defines
78 * types. They are also the class returned by nc_inq_user_type. */
79#define	NC_VLEN 	13	/**< vlen (variable-length) types */
80#define	NC_OPAQUE 	14	/**< opaque types */
81#define	NC_ENUM 	15	/**< enum types */
82#define	NC_COMPOUND 	16	/**< compound types */
83
84/* Define the first user defined type id (leave some room) */
85#define NC_FIRSTUSERTYPEID 32
86
87/** Default fill value. This is used unless _FillValue attribute
88 * is set.  These values are stuffed into newly allocated space as
89 * appropriate.  The hope is that one might use these to notice that a
90 * particular datum has not been set. */
91/**@{*/
92#define NC_FILL_BYTE	((signed char)-127)
93#define NC_FILL_CHAR	((char)0)
94#define NC_FILL_SHORT	((short)-32767)
95#define NC_FILL_INT	(-2147483647L)
96#define NC_FILL_FLOAT	(9.9692099683868690e+36f) /* near 15 * 2^119 */
97#define NC_FILL_DOUBLE	(9.9692099683868690e+36)
98#define NC_FILL_UBYTE   (255)
99#define NC_FILL_USHORT  (65535)
100#define NC_FILL_UINT    (4294967295U)
101#define NC_FILL_INT64   ((long long)-9223372036854775806LL)
102#define NC_FILL_UINT64  ((unsigned long long)18446744073709551614ULL)
103#define NC_FILL_STRING  ((char *)"")
104/**@}*/
105
106/*! Max or min values for a type. Nothing greater/smaller can be
107 * stored in a netCDF file for their associated types. Recall that a C
108 * compiler may define int to be any length it wants, but a NC_INT is
109 * *always* a 4 byte signed int. On a platform with 64 bit ints,
110 * there will be many ints which are outside the range supported by
111 * NC_INT. But since NC_INT is an external format, it has to mean the
112 * same thing everywhere. */
113/**@{*/
114#define NC_MAX_BYTE 127
115#define NC_MIN_BYTE (-NC_MAX_BYTE-1)
116#define NC_MAX_CHAR 255
117#define NC_MAX_SHORT 32767
118#define NC_MIN_SHORT (-NC_MAX_SHORT - 1)
119#define NC_MAX_INT 2147483647
120#define NC_MIN_INT (-NC_MAX_INT - 1)
121#define NC_MAX_FLOAT 3.402823466e+38f
122#define NC_MIN_FLOAT (-NC_MAX_FLOAT)
123#define NC_MAX_DOUBLE 1.7976931348623157e+308
124#define NC_MIN_DOUBLE (-NC_MAX_DOUBLE)
125#define NC_MAX_UBYTE NC_MAX_CHAR
126#define NC_MAX_USHORT 65535U
127#define NC_MAX_UINT 4294967295U
128#define NC_MAX_INT64 (9223372036854775807LL)
129#define NC_MIN_INT64 (-9223372036854775807LL-1)
130#define NC_MAX_UINT64 (18446744073709551615ULL)
131#define X_INT64_MAX     (9223372036854775807LL)
132#define X_INT64_MIN     (-X_INT64_MAX - 1)
133#define X_UINT64_MAX    (18446744073709551615ULL)
134/**@}*/
135
136/** Name of fill value attribute.  If you wish a variable to use a
137 * different value than the above defaults, create an attribute with
138 * the same type as the variable and this reserved name. The value you
139 * give the attribute will be used as the fill value for that
140 * variable. */
141#define _FillValue	"_FillValue"
142#define NC_FILL		0	/**< Argument to nc_set_fill() to clear NC_NOFILL */
143#define NC_NOFILL	0x100	/**< Argument to nc_set_fill() to turn off filling of data. */
144
145/* Define the ioflags bits for nc_create and nc_open.
146   currently unused:
147        0x0002
148	0x0040
149	0x0080
150   and the whole upper 16 bits
151*/
152
153#define NC_NOWRITE	 0x0000	/**< Set read-only access for nc_open(). */
154#define NC_WRITE    	 0x0001	/**< Set read-write access for nc_open(). */
155#define NC_CLOBBER	 0x0000 /**< Destroy existing file. Mode flag for nc_create(). */
156#define NC_NOCLOBBER     0x0004	/**< Don't destroy existing file. Mode flag for nc_create(). */
157
158#define NC_DISKLESS      0x0008  /**< Use diskless file. Mode flag for nc_open() or nc_create(). */
159#define NC_MMAP          0x0010  /**< Use diskless file with mmap. Mode flag for nc_open() or nc_create(). */
160
161#define NC_64BIT_DATA    0x0020  /**< CDF-5 format: classic model but 64 bit dimensions and sizes */
162#define NC_CDF5          NC_64BIT_DATA  /**< Alias NC_CDF5 to NC_64BIT_DATA */
163
164#define NC_CLASSIC_MODEL 0x0100 /**< Enforce classic model on netCDF-4. Mode flag for nc_create(). */
165#define NC_64BIT_OFFSET  0x0200  /**< Use large (64-bit) file offsets. Mode flag for nc_create(). */
166
167/** \deprecated The following flag currently is ignored, but use in
168 * nc_open() or nc_create() may someday support use of advisory
169 * locking to prevent multiple writers from clobbering a file
170 */
171#define NC_LOCK          0x0400
172
173/** Share updates, limit caching.
174Use this in mode flags for both nc_create() and nc_open(). */
175#define NC_SHARE         0x0800
176
177#define NC_NETCDF4       0x1000  /**< Use netCDF-4/HDF5 format. Mode flag for nc_create(). */
178
179/** Turn on MPI I/O.
180Use this in mode flags for both nc_create() and nc_open(). */
181#define NC_MPIIO         0x2000
182/** Turn on MPI POSIX I/O.
183Use this in mode flags for both nc_create() and nc_open(). */
184#define NC_MPIPOSIX      0x4000 /**< \deprecated As of libhdf5 1.8.13. */
185
186#define NC_INMEMORY      0x8000  /**< Read from memory. Mode flag for nc_open() or nc_create(). */
187
188#define NC_PNETCDF       (NC_MPIIO) /**< Use parallel-netcdf library; alias for NC_MPIIO. */
189
190/** Format specifier for nc_set_default_format() and returned
191 *  by nc_inq_format. This returns the format as provided by
192 *  the API. See nc_inq_format_extended to see the true file format.
193 *  Starting with version 3.6, there are different format netCDF files.
194 *  4.0 introduces the third one. \see netcdf_format
195 */
196/**@{*/
197#define NC_FORMAT_CLASSIC         (1)
198/* After adding CDF5 support, this flag
199   is somewhat confusing. So, it is renamed.
200   Note that the name in the contributed code
201   NC_FORMAT_64BIT was renamed to NC_FORMAT_CDF2
202*/
203#define NC_FORMAT_64BIT_OFFSET    (2)
204#define NC_FORMAT_64BIT           (NC_FORMAT_64BIT_OFFSET) /**< \deprecated Saved for compatibility.  Use NC_FORMAT_64BIT_OFFSET or NC_FORMAT_64BIT_DATA, from netCDF 4.4.0 onwards. */
205#define NC_FORMAT_NETCDF4         (3)
206#define NC_FORMAT_NETCDF4_CLASSIC (4)
207#define NC_FORMAT_64BIT_DATA      (5)
208
209/* Alias */
210#define NC_FORMAT_CDF5    NC_FORMAT_64BIT_DATA
211
212/**@}*/
213
214/** Extended format specifier returned by  nc_inq_format_extended()
215 *  Added in version 4.3.1. This returns the true format of the
216 *  underlying data.
217 * The function returns two values
218 * 1. a small integer indicating the underlying source type
219 *    of the data. Note that this may differ from what the user
220 *    sees from nc_inq_format() because this latter function
221 *    returns what the user can expect to see thru the API.
222 * 2. A mode value indicating what mode flags are effectively
223 *    set for this dataset. This usually will be a superset
224 *    of the mode flags used as the argument to nc_open
225 *    or nc_create.
226 * More or less, the #1 values track the set of dispatch tables.
227 * The #1 values are as follows.
228 * Note that CDF-5 returns NC_FORMAT_NC3, but sets the mode flag properly.
229 */
230/**@{*/
231
232#define NC_FORMATX_NC3       (1)
233#define NC_FORMATX_NC_HDF5   (2) /**< netCDF-4 subset of HDF5 */
234#define NC_FORMATX_NC4       NC_FORMATX_NC_HDF5 /**< alias */
235#define NC_FORMATX_NC_HDF4   (3) /**< netCDF-4 subset of HDF4 */
236#define NC_FORMATX_PNETCDF   (4)
237#define NC_FORMATX_DAP2      (5)
238#define NC_FORMATX_DAP4      (6)
239#define NC_FORMATX_UNDEFINED (0)
240
241  /* To avoid breaking compatibility (such as in the python library),
242   we need to retain the NC_FORMAT_xxx format as well. This may come
243  out eventually, as the NC_FORMATX is more clear that it's an extended
244  format specifier.*/
245
246#define NC_FORMAT_NC3       NC_FORMATX_NC3 /**< \deprecated As of 4.4.0, use NC_FORMATX_NC3 */
247#define NC_FORMAT_NC_HDF5   NC_FORMATX_NC_HDF5 /**< \deprecated As of 4.4.0, use NC_FORMATX_NC_HDF5 */
248#define NC_FORMAT_NC4       NC_FORMATX_NC4 /**< \deprecated As of 4.4.0, use NC_FORMATX_NC4 */
249#define NC_FORMAT_NC_HDF4   NC_FORMATX_NC_HDF4 /**< \deprecated As of 4.4.0, use NC_FORMATX_HDF4 */
250#define NC_FORMAT_PNETCDF   NC_FORMATX_PNETCDF /**< \deprecated As of 4.4.0, use NC_FORMATX_PNETCDF */
251#define NC_FORMAT_DAP2      NC_FORMATX_DAP2 /**< \deprecated As of 4.4.0, use NC_FORMATX_DAP2 */
252#define NC_FORMAT_DAP4      NC_FORMATX_DAP4 /**< \deprecated As of 4.4.0, use NC_FORMATX_DAP4 */
253#define NC_FORMAT_UNDEFINED NC_FORMATX_UNDEFINED /**< \deprecated As of 4.4.0, use NC_FORMATX_UNDEFINED */
254
255/**@}*/
256
257/** Let nc__create() or nc__open() figure out a suitable buffer size. */
258#define NC_SIZEHINT_DEFAULT 0
259
260/** In nc__enddef(), align to the buffer size. */
261#define NC_ALIGN_CHUNK ((size_t)(-1))
262
263/** Size argument to nc_def_dim() for an unlimited dimension. */
264#define NC_UNLIMITED 0L
265
266/** Attribute id to put/get a global attribute. */
267#define NC_GLOBAL -1
268
269/**
270Maximum for classic library.
271
272In the classic netCDF model there are maximum values for the number of
273dimensions in the file (\ref NC_MAX_DIMS), the number of global or per
274variable attributes (\ref NC_MAX_ATTRS), the number of variables in
275the file (\ref NC_MAX_VARS), and the length of a name (\ref
276NC_MAX_NAME).
277
278These maximums are enforced by the interface, to facilitate writing
279applications and utilities.  However, nothing is statically allocated
280to these sizes internally.
281
282These maximums are not used for netCDF-4/HDF5 files unless they were
283created with the ::NC_CLASSIC_MODEL flag.
284
285As a rule, NC_MAX_VAR_DIMS <= NC_MAX_DIMS.
286*/
287/**@{*/
288#define NC_MAX_DIMS	1024
289#define NC_MAX_ATTRS	8192
290#define NC_MAX_VARS	8192
291#define NC_MAX_NAME	256
292#define NC_MAX_VAR_DIMS	1024 /**< max per variable dimensions */
293/**@}*/
294
295/** This is the max size of an SD dataset name in HDF4 (from HDF4 documentation).*/
296#define NC_MAX_HDF4_NAME 64
297
298/** In HDF5 files you can set the endianness of variables with
299    nc_def_var_endian(). This define is used there. */
300/**@{*/
301#define NC_ENDIAN_NATIVE 0
302#define NC_ENDIAN_LITTLE 1
303#define NC_ENDIAN_BIG    2
304/**@}*/
305
306/** In HDF5 files you can set storage for each variable to be either
307 * contiguous or chunked, with nc_def_var_chunking().  This define is
308 * used there. */
309/**@{*/
310#define NC_CHUNKED    0
311#define NC_CONTIGUOUS 1
312/**@}*/
313
314/** In HDF5 files you can set check-summing for each variable.
315Currently the only checksum available is Fletcher-32, which can be set
316with the function nc_def_var_fletcher32.  These defines are used
317there. */
318/**@{*/
319#define NC_NOCHECKSUM 0
320#define NC_FLETCHER32 1
321/**@}*/
322
323/**@{*/
324/** Control the HDF5 shuffle filter. In HDF5 files you can specify
325 * that a shuffle filter should be used on each chunk of a variable to
326 * improve compression for that variable. This per-variable shuffle
327 * property can be set with the function nc_def_var_deflate(). */
328#define NC_NOSHUFFLE 0
329#define NC_SHUFFLE   1
330/**@}*/
331
332/** The netcdf version 3 functions all return integer error status.
333 * These are the possible values, in addition to certain values from
334 * the system errno.h.
335 */
336#define NC_ISSYSERR(err)	((err) > 0)
337
338#define	NC_NOERR	0   /**< No Error */
339#define NC2_ERR         (-1)       /**< Returned for all errors in the v2 API. */
340
341/** Not a netcdf id.
342
343The specified netCDF ID does not refer to an
344open netCDF dataset. */
345#define	NC_EBADID	(-33)
346#define	NC_ENFILE	(-34)	   /**< Too many netcdfs open */
347#define	NC_EEXIST	(-35)	   /**< netcdf file exists && NC_NOCLOBBER */
348#define	NC_EINVAL	(-36)	   /**< Invalid Argument */
349#define	NC_EPERM	(-37)	   /**< Write to read only */
350
351/** Operation not allowed in data mode. This is returned for netCDF
352classic or 64-bit offset files, or for netCDF-4 files, when they were
353been created with ::NC_CLASSIC_MODEL flag in nc_create(). */
354#define NC_ENOTINDEFINE	(-38)
355
356/** Operation not allowed in define mode.
357
358The specified netCDF is in define mode rather than data mode.
359
360With netCDF-4/HDF5 files, this error will not occur, unless
361::NC_CLASSIC_MODEL was used in nc_create().
362 */
363#define	NC_EINDEFINE	(-39)
364
365/** Index exceeds dimension bound.
366
367The specified corner indices were out of range for the rank of the
368specified variable. For example, a negative index or an index that is
369larger than the corresponding dimension length will cause an error. */
370#define	NC_EINVALCOORDS	(-40)
371
372/** NC_MAX_DIMS exceeded. Max number of dimensions exceeded in a
373classic or 64-bit offset file, or an netCDF-4 file with
374::NC_CLASSIC_MODEL on. */
375#define	NC_EMAXDIMS	(-41)
376
377#define	NC_ENAMEINUSE	(-42)	   /**< String match to name in use */
378#define NC_ENOTATT	(-43)	   /**< Attribute not found */
379#define	NC_EMAXATTS	(-44)	   /**< NC_MAX_ATTRS exceeded */
380#define NC_EBADTYPE	(-45)	   /**< Not a netcdf data type */
381#define NC_EBADDIM	(-46)	   /**< Invalid dimension id or name */
382#define NC_EUNLIMPOS	(-47)	   /**< NC_UNLIMITED in the wrong index */
383
384/** NC_MAX_VARS exceeded. Max number of variables exceeded in a
385classic or 64-bit offset file, or an netCDF-4 file with
386::NC_CLASSIC_MODEL on. */
387#define	NC_EMAXVARS	(-48)
388
389/** Variable not found.
390
391The variable ID is invalid for the specified netCDF dataset. */
392#define NC_ENOTVAR	(-49)
393#define NC_EGLOBAL	(-50)	   /**< Action prohibited on NC_GLOBAL varid */
394#define NC_ENOTNC	(-51)	   /**< Not a netcdf file */
395#define NC_ESTS        	(-52)	   /**< In Fortran, string too short */
396#define NC_EMAXNAME    	(-53)	   /**< NC_MAX_NAME exceeded */
397#define NC_EUNLIMIT    	(-54)	   /**< NC_UNLIMITED size already in use */
398#define NC_ENORECVARS  	(-55)	   /**< nc_rec op when there are no record vars */
399#define NC_ECHAR	(-56)	   /**< Attempt to convert between text & numbers */
400
401/** Start+count exceeds dimension bound.
402
403The specified edge lengths added to the specified corner would have
404referenced data out of range for the rank of the specified
405variable. For example, an edge length that is larger than the
406corresponding dimension length minus the corner index will cause an
407error. */
408#define NC_EEDGE	(-57)
409#define NC_ESTRIDE	(-58)	   /**< Illegal stride */
410#define NC_EBADNAME	(-59)	   /**< Attribute or variable name contains illegal characters */
411/* N.B. following must match value in ncx.h */
412
413/** Math result not representable.
414
415One or more of the values are out of the range of values representable
416by the desired type. */
417#define NC_ERANGE	(-60)
418#define NC_ENOMEM	(-61)	   /**< Memory allocation (malloc) failure */
419#define NC_EVARSIZE     (-62)      /**< One or more variable sizes violate format constraints */
420#define NC_EDIMSIZE     (-63)      /**< Invalid dimension size */
421#define NC_ETRUNC       (-64)      /**< File likely truncated or possibly corrupted */
422#define NC_EAXISTYPE    (-65)      /**< Unknown axis type. */
423
424/* Following errors are added for DAP */
425#define NC_EDAP         (-66)      /**< Generic DAP error */
426#define NC_ECURL        (-67)      /**< Generic libcurl error */
427#define NC_EIO          (-68)      /**< Generic IO error */
428#define NC_ENODATA      (-69)      /**< Attempt to access variable with no data */
429#define NC_EDAPSVC      (-70)      /**< DAP server error */
430#define NC_EDAS		(-71)      /**< Malformed or inaccessible DAS */
431#define NC_EDDS		(-72)      /**< Malformed or inaccessible DDS */
432#define NC_EDATADDS	(-73)      /**< Malformed or inaccessible DATADDS */
433#define NC_EDAPURL	(-74)      /**< Malformed DAP URL */
434#define NC_EDAPCONSTRAINT (-75)    /**< Malformed DAP Constraint*/
435#define NC_ETRANSLATION (-76)      /**< Untranslatable construct */
436#define NC_EACCESS      (-77)      /**< Access Failure */
437#define NC_EAUTH        (-78)      /**< Authorization Failure */
438
439/* Misc. additional errors */
440#define NC_ENOTFOUND     (-90)      /**< No such file */
441#define NC_ECANTREMOVE   (-91)      /**< Can't remove file */
442
443/* The following was added in support of netcdf-4. Make all netcdf-4
444   error codes < -100 so that errors can be added to netcdf-3 if
445   needed. */
446#define NC4_FIRST_ERROR  (-100)
447
448/** Error at HDF5 layer. */
449#define NC_EHDFERR       (-101)
450#define NC_ECANTREAD     (-102)    /**< Can't read. */
451#define NC_ECANTWRITE    (-103)    /**< Can't write. */
452#define NC_ECANTCREATE   (-104)    /**< Can't create. */
453#define NC_EFILEMETA     (-105)    /**< Problem with file metadata. */
454#define NC_EDIMMETA      (-106)    /**< Problem with dimension metadata. */
455#define NC_EATTMETA      (-107)    /**< Problem with attribute metadata. */
456#define NC_EVARMETA      (-108)    /**< Problem with variable metadata. */
457#define NC_ENOCOMPOUND   (-109)    /**< Not a compound type. */
458#define NC_EATTEXISTS    (-110)    /**< Attribute already exists. */
459#define NC_ENOTNC4       (-111)    /**< Attempting netcdf-4 operation on netcdf-3 file. */
460
461/** Attempting netcdf-4 operation on strict nc3 netcdf-4 file. */
462#define NC_ESTRICTNC3    (-112)
463#define NC_ENOTNC3       (-113)    /**< Attempting netcdf-3 operation on netcdf-4 file. */
464#define NC_ENOPAR        (-114)    /**< Parallel operation on file opened for non-parallel access. */
465#define NC_EPARINIT      (-115)    /**< Error initializing for parallel access. */
466#define NC_EBADGRPID     (-116)    /**< Bad group ID. */
467#define NC_EBADTYPID     (-117)    /**< Bad type ID. */
468#define NC_ETYPDEFINED   (-118)    /**< Type has already been defined and may not be edited. */
469#define NC_EBADFIELD     (-119)    /**< Bad field ID. */
470#define NC_EBADCLASS     (-120)    /**< Bad class. */
471#define NC_EMAPTYPE      (-121)    /**< Mapped access for atomic types only. */
472#define NC_ELATEFILL     (-122)    /**< Attempt to define fill value when data already exists. */
473#define NC_ELATEDEF      (-123)    /**< Attempt to define var properties, like deflate, after enddef. */
474#define NC_EDIMSCALE     (-124)    /**< Problem with HDF5 dimscales. */
475#define NC_ENOGRP        (-125)    /**< No group found. */
476#define NC_ESTORAGE      (-126)    /**< Can't specify both contiguous and chunking. */
477#define NC_EBADCHUNK     (-127)    /**< Bad chunksize. */
478#define NC_ENOTBUILT     (-128)    /**< Attempt to use feature that was not turned on when netCDF was built. */
479#define NC_EDISKLESS     (-129)    /**< Error in using diskless  access. */
480#define NC_ECANTEXTEND   (-130)    /**< Attempt to extend dataset during ind. I/O operation. */
481#define NC_EMPI          (-131)    /**< MPI operation failed. */
482
483#define NC4_LAST_ERROR   (-131)
484
485/* This is used in netCDF-4 files for dimensions without coordinate
486 * vars. */
487#define DIM_WITHOUT_VARIABLE "This is a netCDF dimension but not a netCDF variable."
488
489/* This is here at the request of the NCO team to support our
490 * mistake of having chunksizes be first ints, then size_t. Doh! */
491#define NC_HAVE_NEW_CHUNKING_API 1
492
493
494/*Errors for all remote access methods(e.g. DAP and CDMREMOTE)*/
495#define NC_EURL		(NC_EDAPURL)   /* Malformed URL */
496#define NC_ECONSTRAINT  (NC_EDAPCONSTRAINT)   /* Malformed Constraint*/
497
498#endif
499/* end of #ifndef _NETCDF_ */
500
501/* now some definitions used in PnetCDF only */
502
503#define NC_FORMAT_UNKNOWN -1
504
505/* CDF version 1, NC_32BIT is used internally and never
506   actually passed in to ncmpi_create  */
507#define NC_32BIT	0x1000000
508
509/* CDF-5 format, (64-bit) supported */
510#ifndef NC_64BIT_DATA
511#define NC_64BIT_DATA	0x0020
512#endif
513
514/* CDF-2 format, with NC_64BIT_OFFSET. */
515#ifndef NC_FORMAT_CDF2
516#define NC_FORMAT_CDF2  2
517#endif
518
519/* CDF-5 format, with NC_64BIT_DATA. */
520#ifndef NC_FORMAT_CDF5
521#define NC_FORMAT_CDF5  5
522#endif
523
524/* PnetCDF Error Codes: */
525#define NC_ESMALL			(-201) /**< size of MPI_Offset too small for format */
526#define NC_ENOTINDEP			(-202) /**< Operation not allowed in collective data mode */
527#define NC_EINDEP			(-203) /**< Operation not allowed in independent data mode */
528#define NC_EFILE			(-204) /**< Unknown error in file operation */
529#define NC_EREAD			(-205) /**< Unknown error in reading file */
530#define NC_EWRITE			(-206) /**< Unknown error in writing to file */
531#define NC_EOFILE			(-207) /**< file open/creation failed */
532#define NC_EMULTITYPES			(-208) /**< Multiple types used in memory data */
533#define NC_EIOMISMATCH			(-209) /**< Input/Output data amount mismatch */
534#define NC_ENEGATIVECNT			(-210) /**< Negative count is specified */
535#define NC_EUNSPTETYPE			(-211) /**< Unsupported etype in memory MPI datatype */
536#define NC_EINVAL_REQUEST		(-212) /**< invalid nonblocking request ID */
537#define NC_EAINT_TOO_SMALL		(-213) /**< MPI_Aint not large enough to hold requested value */
538#define NC_ENOTSUPPORT			(-214) /**< feature is not yet supported */
539#define NC_ENULLBUF			(-215) /**< trying to attach a NULL buffer */
540#define NC_EPREVATTACHBUF		(-216) /**< previous attached buffer is found */
541#define NC_ENULLABUF			(-217) /**< no attached buffer is found */
542#define NC_EPENDINGBPUT			(-218) /**< pending bput is found, cannot detach buffer */
543#define NC_EINSUFFBUF			(-219) /**< attached buffer is too small */
544#define NC_ENOENT			(-220) /**< File does not exist */
545#define NC_EINTOVERFLOW			(-221) /**< Overflow when type cast to 4-byte integer */
546#define NC_ENOTENABLED			(-222) /**< feature is not enabled */
547#define NC_EBAD_FILE			(-223) /**< Invalid file name (e.g., path name too long) */
548#define NC_ENO_SPACE			(-224) /**< Not enough space */
549#define NC_EQUOTA			(-225) /**< Quota exceeded */
550#define NC_ENULLSTART			(-226) /**< argument start is a NULL pointer */
551#define NC_ENULLCOUNT			(-227) /**< argument count is a NULL pointer */
552#define NC_EINVAL_CMODE			(-228) /**< Invalid file create mode */
553#define NC_ETYPESIZE			(-229) /**< MPI derived data type size error (bigger than the variable size) */
554#define NC_ETYPE_MISMATCH		(-230) /**< element type of the MPI derived data type mismatches the variable type */
555#define NC_ETYPESIZE_MISMATCH		(-231) /**< file type size mismatches buffer type size */
556#define NC_ESTRICTCDF2			(-232) /**< Attempting CDF-5 operation on CDF-2 file */
557#define NC_ENOTRECVAR			(-233) /**< Attempting operation only for record variables */
558#define NC_ENOTFILL			(-234) /**< Attempting to fill a variable when its fill mode is off */
559#define NC_EINVAL_OMODE			(-235) /**< Invalid file open mode */
560#define NC_EPENDING			(-236) /**< Pending nonblocking request is found at file close */
561/* add new error here */
562
563/* header inconsistency errors start from -250 */
564#define NC_EMULTIDEFINE			(-250) /**< NC definitions on multiprocesses conflict */
565#define NC_EMULTIDEFINE_OMODE		(-251) /**< inconsistent file open modes among processes */
566#define NC_EMULTIDEFINE_DIM_NUM		(-252) /**< inconsistent number of dimensions */
567#define NC_EMULTIDEFINE_DIM_SIZE	(-253) /**< inconsistent size of dimension */
568#define NC_EMULTIDEFINE_DIM_NAME	(-254) /**< inconsistent dimension names */
569#define NC_EMULTIDEFINE_VAR_NUM		(-255) /**< inconsistent number of variables */
570#define NC_EMULTIDEFINE_VAR_NAME	(-256) /**< inconsistent variable name */
571#define NC_EMULTIDEFINE_VAR_NDIMS	(-257) /**< inconsistent variable's number of dimensions */
572#define NC_EMULTIDEFINE_VAR_DIMIDS	(-258) /**< inconsistent variable's dimid */
573#define NC_EMULTIDEFINE_VAR_TYPE	(-259) /**< inconsistent variable's data type */
574#define NC_EMULTIDEFINE_VAR_LEN		(-260) /**< inconsistent variable's size */
575#define NC_EMULTIDEFINE_NUMRECS		(-261) /**< inconsistent number of records */
576#define NC_EMULTIDEFINE_VAR_BEGIN	(-262) /**< inconsistent variable file begin offset (internal use) */
577#define NC_EMULTIDEFINE_ATTR_NUM	(-263) /**< inconsistent number of attributes */
578#define NC_EMULTIDEFINE_ATTR_SIZE	(-264) /**< inconsistent memory space used by attribute (internal use) */
579#define NC_EMULTIDEFINE_ATTR_NAME	(-265) /**< inconsistent attribute name */
580#define NC_EMULTIDEFINE_ATTR_TYPE	(-266) /**< inconsistent attribute type */
581#define NC_EMULTIDEFINE_ATTR_LEN	(-267) /**< inconsistent attribute length */
582#define NC_EMULTIDEFINE_ATTR_VAL	(-268) /**< inconsistent attribute value */
583#define NC_EMULTIDEFINE_FNC_ARGS	(-269) /**< inconsistent function arguments used in collective API */
584#define NC_EMULTIDEFINE_FILL_MODE	(-270) /**< inconsistent dataset fill mode */
585#define NC_EMULTIDEFINE_VAR_FILL_MODE	(-271) /**< inconsistent variable fill mode */
586#define NC_EMULTIDEFINE_VAR_FILL_VALUE	(-272) /**< inconsistent variable fill value */
587#define NC_EMULTIDEFINE_CMODE		(-273) /**< inconsistent file create modes among processes */
588
589#define NC_EMULTIDEFINE_FIRST		NC_EMULTIDEFINE
590#define NC_EMULTIDEFINE_LAST		NC_EMULTIDEFINE_FNC_ARGS
591
592/* backward compatible with PnetCDF 1.3.1 and earlier */
593#define NC_ECMODE			NC_EMULTIDEFINE_OMODE
594#define NC_EDIMS_NELEMS_MULTIDEFINE	NC_EMULTIDEFINE_DIM_NUM
595#define NC_EDIMS_SIZE_MULTIDEFINE	NC_EMULTIDEFINE_DIM_SIZE
596#define NC_EDIMS_NAME_MULTIDEFINE	NC_EMULTIDEFINE_DIM_NAME
597#define NC_EVARS_NELEMS_MULTIDEFINE	NC_EMULTIDEFINE_VAR_NUM
598#define NC_EVARS_NAME_MULTIDEFINE	NC_EMULTIDEFINE_VAR_NAME
599#define NC_EVARS_NDIMS_MULTIDEFINE	NC_EMULTIDEFINE_VAR_NDIMS
600#define NC_EVARS_DIMIDS_MULTIDEFINE	NC_EMULTIDEFINE_VAR_DIMIDS
601#define NC_EVARS_TYPE_MULTIDEFINE	NC_EMULTIDEFINE_VAR_TYPE
602#define NC_EVARS_LEN_MULTIDEFINE	NC_EMULTIDEFINE_VAR_LEN
603#define NC_ENUMRECS_MULTIDEFINE		NC_EMULTIDEFINE_NUMRECS
604#define NC_EVARS_BEGIN_MULTIDEFINE	NC_EMULTIDEFINE_VAR_BEGIN
605
606/* invalid nonblocking request ID and zero-length request */
607#define NC_REQ_NULL -1
608
609/* indicate to flush all pending non-blocking requests */
610#define NC_REQ_ALL     -1
611#define NC_GET_REQ_ALL -2
612#define NC_PUT_REQ_ALL -3
613
614
615/*
616 * The Interface
617 */
618
619/* Begin Prototypes */
620
621extern const char*
622ncmpi_strerror(int err);
623
624extern const char*
625ncmpi_strerrno(int err);
626
627/* Begin File Functions */
628
629extern int
630ncmpi_create(MPI_Comm comm, const char *path, int cmode, MPI_Info info,
631             int *ncidp);
632
633extern int
634ncmpi_open(MPI_Comm comm, const char *path, int omode, MPI_Info info,
635           int *ncidp);
636
637extern int
638ncmpi_inq_file_info(int ncid, MPI_Info *info_used);
639
640extern int
641ncmpi_get_file_info(int ncid, MPI_Info *info_used); /* deprecated */
642
643extern int
644ncmpi_delete(const char *filename, MPI_Info info);
645
646extern int
647ncmpi_enddef(int ncid);
648
649extern int
650ncmpi__enddef(int ncid, MPI_Offset h_minfree, MPI_Offset v_align,
651              MPI_Offset v_minfree, MPI_Offset r_align);
652
653extern int
654ncmpi_redef(int ncid);
655
656extern int
657ncmpi_set_default_format(int format, int *old_formatp);
658
659extern int
660ncmpi_inq_default_format(int *formatp);
661
662extern int
663ncmpi_sync(int ncid);
664
665extern int
666ncmpi_sync_numrecs(int ncid);
667
668extern int
669ncmpi_abort(int ncid);
670
671extern int
672ncmpi_begin_indep_data(int ncid);
673
674extern int
675ncmpi_end_indep_data(int ncid);
676
677extern int
678ncmpi_close(int ncid);
679
680extern int
681ncmpi_set_fill(int ncid, int fillmode, int *old_modep);
682
683extern int
684ncmpi_def_var_fill(int ncid, int varid, int no_fill, void *fill_value);
685
686extern int
687ncmpi_fill_var_rec(int ncid, int varid, MPI_Offset recno);
688
689/* End File Functions */
690
691/* Begin Define Mode Functions */
692
693extern int
694ncmpi_def_dim(int ncid, const char *name, MPI_Offset len, int *idp);
695
696extern int
697ncmpi_def_var(int ncid, const char *name, nc_type xtype, int ndims,
698              const int *dimidsp, int *varidp);
699
700extern int
701ncmpi_rename_dim(int ncid, int dimid, const char *name);
702
703extern int
704ncmpi_rename_var(int ncid, int varid, const char *name);
705
706/* End Define Mode Functions */
707
708/* Begin Inquiry Functions */
709
710const char* ncmpi_inq_libvers(void);
711
712extern int
713ncmpi_inq(int ncid, int *ndimsp, int *nvarsp, int *ngattsp, int *unlimdimidp);
714
715extern int
716ncmpi_inq_format(int ncid, int *formatp);
717
718extern int
719ncmpi_inq_file_format(const char *filename, int *formatp);
720
721extern int
722ncmpi_inq_version(int ncid, int *NC_mode);
723
724extern int
725ncmpi_inq_striping(int ncid, int *striping_size, int *striping_count);
726
727extern int
728ncmpi_inq_ndims(int ncid, int *ndimsp);
729
730extern int
731ncmpi_inq_nvars(int ncid, int *nvarsp);
732
733extern int
734ncmpi_inq_num_rec_vars(int ncid, int *nvarsp);
735
736extern int
737ncmpi_inq_num_fix_vars(int ncid, int *nvarsp);
738
739extern int
740ncmpi_inq_natts(int ncid, int *ngattsp);
741
742extern int
743ncmpi_inq_unlimdim(int ncid, int *unlimdimidp);
744
745extern int
746ncmpi_inq_dimid(int ncid, const char *name, int *idp);
747
748extern int
749ncmpi_inq_dim(int ncid, int dimid, char *name, MPI_Offset *lenp);
750
751extern int
752ncmpi_inq_dimname(int ncid, int dimid, char *name);
753
754extern int
755ncmpi_inq_dimlen(int ncid, int dimid, MPI_Offset *lenp);
756
757extern int
758ncmpi_inq_var(int ncid, int varid, char *name, nc_type *xtypep, int *ndimsp,
759              int *dimidsp, int *nattsp);
760
761extern int
762ncmpi_inq_varid(int ncid, const char *name, int *varidp);
763
764extern int
765ncmpi_inq_varname(int ncid, int varid, char *name);
766
767extern int
768ncmpi_inq_vartype(int ncid, int varid, nc_type *xtypep);
769
770extern int
771ncmpi_inq_varndims(int ncid, int varid, int *ndimsp);
772
773extern int
774ncmpi_inq_vardimid(int ncid, int varid, int *dimidsp);
775
776extern int
777ncmpi_inq_varnatts(int ncid, int varid, int *nattsp);
778
779extern int
780ncmpi_inq_varoffset(int ncid, int varid, MPI_Offset *offset);
781
782extern int
783ncmpi_inq_put_size(int ncid, MPI_Offset *size);
784
785extern int
786ncmpi_inq_get_size(int ncid, MPI_Offset *size);
787
788extern int
789ncmpi_inq_header_size(int ncid, MPI_Offset *size);
790
791extern int
792ncmpi_inq_header_extent(int ncid, MPI_Offset *extent);
793
794extern int
795ncmpi_inq_malloc_size(MPI_Offset *size);
796
797extern int
798ncmpi_inq_malloc_max_size(MPI_Offset *size);
799
800extern int
801ncmpi_inq_malloc_list(void);
802
803extern int
804ncmpi_inq_files_opened(int *num, int *ncids);
805
806extern int
807ncmpi_inq_recsize(int ncid, MPI_Offset *recsize);
808
809extern int
810ncmpi_inq_var_fill(int ncid, int varid, int *no_fill, void *fill_value);
811
812extern int
813ncmpi_inq_path(int ncid, int *pathlen, char *path);
814
815/* End Inquiry Functions */
816
817/* Begin _att */
818
819extern int
820ncmpi_inq_att(int ncid, int varid, const char *name, nc_type *xtypep,
821              MPI_Offset *lenp);
822
823extern int
824ncmpi_inq_attid(int ncid, int varid, const char *name, int *idp);
825
826extern int
827ncmpi_inq_atttype(int ncid, int varid, const char *name, nc_type *xtypep);
828
829extern int
830ncmpi_inq_attlen(int ncid, int varid, const char *name, MPI_Offset *lenp);
831
832extern int
833ncmpi_inq_attname(int ncid, int varid, int attnum, char *name);
834
835extern int
836ncmpi_copy_att(int ncid_in, int varid_in, const char *name, int ncid_out,
837               int varid_out);
838
839extern int
840ncmpi_rename_att(int ncid, int varid, const char *name, const char *newname);
841
842extern int
843ncmpi_del_att(int ncid, int varid, const char *name);
844
845extern int
846ncmpi_put_att(int ncid, int varid, const char *name, nc_type xtype,
847              MPI_Offset nelems, const void *value);
848
849extern int
850ncmpi_put_att_text(int ncid, int varid, const char *name, MPI_Offset len,
851              const char *op);
852
853extern int
854ncmpi_put_att_schar(int ncid, int varid, const char *name, nc_type xtype,
855              MPI_Offset len, const signed char *op);
856
857extern int
858ncmpi_put_att_short(int ncid, int varid, const char *name, nc_type xtype,
859              MPI_Offset len, const short *op);
860
861extern int
862ncmpi_put_att_int(int ncid, int varid, const char *name, nc_type xtype,
863              MPI_Offset len, const int *op);
864
865extern int
866ncmpi_put_att_float(int ncid, int varid, const char *name, nc_type xtype,
867              MPI_Offset len, const float *op);
868
869extern int
870ncmpi_put_att_double(int ncid, int varid, const char *name, nc_type xtype,
871              MPI_Offset len, const double *op);
872
873extern int
874ncmpi_put_att_longlong(int ncid, int varid, const char *name, nc_type xtype,
875              MPI_Offset len, const long long *op);
876
877extern int
878ncmpi_get_att(int ncid, int varid, const char *name, void *value);
879
880extern int
881ncmpi_get_att_text(int ncid, int varid, const char *name, char *ip);
882
883extern int
884ncmpi_get_att_schar(int ncid, int varid, const char *name, signed char *ip);
885
886extern int
887ncmpi_get_att_short(int ncid, int varid, const char *name, short *ip);
888
889extern int
890ncmpi_get_att_int(int ncid, int varid, const char *name, int *ip);
891
892extern int
893ncmpi_get_att_float(int ncid, int varid, const char *name, float *ip);
894
895extern int
896ncmpi_get_att_double(int ncid, int varid, const char *name, double *ip);
897
898extern int
899ncmpi_get_att_longlong(int ncid, int varid, const char *name, long long *ip);
900
901/* Begin Skip Prototypes for Fortran binding */
902/* skip types: uchar, ubyte, ushort, uint, long, ulonglong string */
903
904extern int
905ncmpi_put_att_uchar(int ncid, int varid, const char *name, nc_type xtype,
906              MPI_Offset len, const unsigned char *op);
907
908extern int
909ncmpi_put_att_ubyte(int ncid, int varid, const char *name, nc_type xtype,
910              MPI_Offset len, const unsigned char *op);
911
912extern int
913ncmpi_put_att_ushort(int ncid, int varid, const char *name, nc_type xtype,
914              MPI_Offset len, const unsigned short *op);
915
916extern int
917ncmpi_put_att_uint(int ncid, int varid, const char *name, nc_type xtype,
918              MPI_Offset len, const unsigned int *op);
919
920extern int
921ncmpi_put_att_long(int ncid, int varid, const char *name, nc_type xtype,
922              MPI_Offset len, const long *op);
923
924extern int
925ncmpi_put_att_ulonglong(int ncid, int varid, const char *name, nc_type xtype,
926              MPI_Offset len, const unsigned long long *op);
927
928extern int
929ncmpi_get_att_uchar(int ncid, int varid, const char *name, unsigned char *ip);
930
931extern int
932ncmpi_get_att_ubyte(int ncid, int varid, const char *name, unsigned char *ip);
933
934extern int
935ncmpi_get_att_ushort(int ncid, int varid, const char *name, unsigned short *ip);
936
937extern int
938ncmpi_get_att_uint(int ncid, int varid, const char *name, unsigned int *ip);
939
940extern int
941ncmpi_get_att_long(int ncid, int varid, const char *name, long *ip);
942
943extern int
944ncmpi_get_att_ulonglong(int ncid, int varid, const char *name,
945              unsigned long long *ip);
946
947/* End Skip Prototypes for Fortran binding */
948
949/* End _att */
950
951/* Begin {put,get}_var1 */
952
953extern int
954ncmpi_put_var1(int ncid, int varid, const MPI_Offset *start,
955               const void *op, MPI_Offset bufcount, MPI_Datatype buftype);
956extern int
957ncmpi_put_var1_all(int ncid, int varid, const MPI_Offset *start,
958               const void *op, MPI_Offset bufcount, MPI_Datatype buftype);
959
960extern int
961ncmpi_put_var1_text(int ncid, int varid, const MPI_Offset *start,
962               const char *op);
963extern int
964ncmpi_put_var1_text_all(int ncid, int varid, const MPI_Offset *start,
965               const char *op);
966
967extern int
968ncmpi_put_var1_schar(int ncid, int varid, const MPI_Offset *start,
969               const signed char *op);
970extern int
971ncmpi_put_var1_schar_all(int ncid, int varid, const MPI_Offset *start,
972               const signed char *op);
973
974extern int
975ncmpi_put_var1_short(int ncid, int varid, const MPI_Offset *start,
976               const short *op);
977extern int
978ncmpi_put_var1_short_all(int ncid, int varid, const MPI_Offset *start,
979               const short *op);
980
981extern int
982ncmpi_put_var1_int(int ncid, int varid, const MPI_Offset *start,
983               const int *op);
984extern int
985ncmpi_put_var1_int_all(int ncid, int varid, const MPI_Offset *start,
986               const int *op);
987
988extern int
989ncmpi_put_var1_float(int ncid, int varid, const MPI_Offset *start,
990               const float *op);
991extern int
992ncmpi_put_var1_float_all(int ncid, int varid, const MPI_Offset *start,
993               const float *op);
994
995extern int
996ncmpi_put_var1_double(int ncid, int varid, const MPI_Offset *start,
997               const double *op);
998extern int
999ncmpi_put_var1_double_all(int ncid, int varid, const MPI_Offset *start,
1000               const double *op);
1001
1002extern int
1003ncmpi_put_var1_longlong(int ncid, int varid, const MPI_Offset *start,
1004               const long long *op);
1005extern int
1006ncmpi_put_var1_longlong_all(int ncid, int varid, const MPI_Offset *start,
1007               const long long *op);
1008
1009extern int
1010ncmpi_get_var1(int ncid, int varid, const MPI_Offset *start,
1011               void *ip, MPI_Offset bufcount, MPI_Datatype buftype);
1012extern int
1013ncmpi_get_var1_all(int ncid, int varid, const MPI_Offset *start,
1014               void *ip, MPI_Offset bufcount, MPI_Datatype buftype);
1015
1016extern int
1017ncmpi_get_var1_text(int ncid, int varid, const MPI_Offset *start,
1018               char *ip);
1019extern int
1020ncmpi_get_var1_text_all(int ncid, int varid, const MPI_Offset *start,
1021               char *ip);
1022
1023extern int
1024ncmpi_get_var1_schar(int ncid, int varid, const MPI_Offset *start,
1025               signed char *ip);
1026extern int
1027ncmpi_get_var1_schar_all(int ncid, int varid, const MPI_Offset *start,
1028               signed char *ip);
1029
1030extern int
1031ncmpi_get_var1_short(int ncid, int varid, const MPI_Offset *start,
1032               short *ip);
1033extern int
1034ncmpi_get_var1_short_all(int ncid, int varid, const MPI_Offset *start,
1035               short *ip);
1036
1037extern int
1038ncmpi_get_var1_int(int ncid, int varid, const MPI_Offset *start,
1039               int *ip);
1040extern int
1041ncmpi_get_var1_int_all(int ncid, int varid, const MPI_Offset *start,
1042               int *ip);
1043
1044extern int
1045ncmpi_get_var1_float(int ncid, int varid, const MPI_Offset *start,
1046               float *ip);
1047extern int
1048ncmpi_get_var1_float_all(int ncid, int varid, const MPI_Offset *start,
1049               float *ip);
1050
1051extern int
1052ncmpi_get_var1_double(int ncid, int varid, const MPI_Offset *start,
1053               double *ip);
1054extern int
1055ncmpi_get_var1_double_all(int ncid, int varid, const MPI_Offset *start,
1056               double *ip);
1057
1058extern int
1059ncmpi_get_var1_longlong(int ncid, int varid, const MPI_Offset *start,
1060               long long *ip);
1061extern int
1062ncmpi_get_var1_longlong_all(int ncid, int varid, const MPI_Offset *start,
1063               long long *ip);
1064
1065/* Begin Skip Prototypes for Fortran binding */
1066/* skip types: uchar, ubyte, ushort, uint, long, ulonglong string */
1067
1068extern int
1069ncmpi_put_var1_uchar(int ncid, int varid, const MPI_Offset *start,
1070               const unsigned char *op);
1071extern int
1072ncmpi_put_var1_uchar_all(int ncid, int varid, const MPI_Offset *start,
1073               const unsigned char *op);
1074
1075extern int
1076ncmpi_put_var1_ushort(int ncid, int varid, const MPI_Offset *start,
1077               const unsigned short *op);
1078extern int
1079ncmpi_put_var1_ushort_all(int ncid, int varid, const MPI_Offset *start,
1080               const unsigned short *op);
1081
1082extern int
1083ncmpi_put_var1_uint(int ncid, int varid, const MPI_Offset *start,
1084               const unsigned int *op);
1085extern int
1086ncmpi_put_var1_uint_all(int ncid, int varid, const MPI_Offset *start,
1087               const unsigned int *op);
1088
1089extern int
1090ncmpi_put_var1_long(int ncid, int varid, const MPI_Offset *start,
1091               const long *ip);
1092extern int
1093ncmpi_put_var1_long_all(int ncid, int varid, const MPI_Offset *start,
1094               const long *ip);
1095
1096extern int
1097ncmpi_put_var1_ulonglong(int ncid, int varid, const MPI_Offset *start,
1098               const unsigned long long *ip);
1099extern int
1100ncmpi_put_var1_ulonglong_all(int ncid, int varid, const MPI_Offset *start,
1101               const unsigned long long *ip);
1102
1103extern int
1104ncmpi_get_var1_uchar(int ncid, int varid, const MPI_Offset *start,
1105               unsigned char *ip);
1106extern int
1107ncmpi_get_var1_uchar_all(int ncid, int varid, const MPI_Offset *start,
1108               unsigned char *ip);
1109
1110extern int
1111ncmpi_get_var1_ushort(int ncid, int varid, const MPI_Offset *start,
1112               unsigned short *ip);
1113extern int
1114ncmpi_get_var1_ushort_all(int ncid, int varid, const MPI_Offset *start,
1115               unsigned short *ip);
1116
1117extern int
1118ncmpi_get_var1_uint(int ncid, int varid, const MPI_Offset *start,
1119               unsigned int *ip);
1120extern int
1121ncmpi_get_var1_uint_all(int ncid, int varid, const MPI_Offset *start,
1122               unsigned int *ip);
1123
1124extern int
1125ncmpi_get_var1_long(int ncid, int varid, const MPI_Offset *start,
1126               long *ip);
1127extern int
1128ncmpi_get_var1_long_all(int ncid, int varid, const MPI_Offset *start,
1129               long *ip);
1130
1131extern int
1132ncmpi_get_var1_ulonglong(int ncid, int varid, const MPI_Offset *start,
1133               unsigned long long *ip);
1134extern int
1135ncmpi_get_var1_ulonglong_all(int ncid, int varid, const MPI_Offset *start,
1136               unsigned long long *ip);
1137/* End Skip Prototypes for Fortran binding */
1138
1139/* End {put,get}_var1 */
1140
1141/* Begin {put,get}_var */
1142
1143extern int
1144ncmpi_put_var(int ncid, int varid, const void *op, MPI_Offset bufcount,
1145              MPI_Datatype buftype);
1146
1147extern int
1148ncmpi_put_var_all(int ncid, int varid, const void *op, MPI_Offset bufcount,
1149              MPI_Datatype buftype);
1150
1151extern int
1152ncmpi_put_var_text(int ncid, int varid, const char *op);
1153extern int
1154ncmpi_put_var_text_all(int ncid, int varid, const char *op);
1155
1156extern int
1157ncmpi_put_var_schar(int ncid, int varid, const signed char *op);
1158extern int
1159ncmpi_put_var_schar_all(int ncid, int varid, const signed char *op);
1160
1161extern int
1162ncmpi_put_var_short(int ncid, int varid, const short *op);
1163extern int
1164ncmpi_put_var_short_all(int ncid, int varid, const short *op);
1165
1166extern int
1167ncmpi_put_var_int(int ncid, int varid, const int *op);
1168extern int
1169ncmpi_put_var_int_all(int ncid, int varid, const int *op);
1170
1171extern int
1172ncmpi_put_var_float(int ncid, int varid, const float *op);
1173extern int
1174ncmpi_put_var_float_all(int ncid, int varid, const float *op);
1175
1176extern int
1177ncmpi_put_var_double(int ncid, int varid, const double *op);
1178extern int
1179ncmpi_put_var_double_all(int ncid, int varid, const double *op);
1180
1181extern int
1182ncmpi_put_var_longlong(int ncid, int varid, const long long *op);
1183extern int
1184ncmpi_put_var_longlong_all(int ncid, int varid, const long long *op);
1185
1186extern int
1187ncmpi_get_var(int ncid, int varid, void *ip, MPI_Offset bufcount,
1188              MPI_Datatype buftype);
1189extern int
1190ncmpi_get_var_all(int ncid, int varid, void *ip, MPI_Offset bufcount,
1191              MPI_Datatype buftype);
1192
1193extern int
1194ncmpi_get_var_text(int ncid, int varid, char *ip);
1195extern int
1196ncmpi_get_var_text_all(int ncid, int varid, char *ip);
1197
1198extern int
1199ncmpi_get_var_schar(int ncid, int varid, signed char *ip);
1200extern int
1201ncmpi_get_var_schar_all(int ncid, int varid, signed char *ip);
1202
1203extern int
1204ncmpi_get_var_short(int ncid, int varid, short *ip);
1205extern int
1206ncmpi_get_var_short_all(int ncid, int varid, short *ip);
1207
1208extern int
1209ncmpi_get_var_int(int ncid, int varid, int *ip);
1210extern int
1211ncmpi_get_var_int_all(int ncid, int varid, int *ip);
1212
1213extern int
1214ncmpi_get_var_float(int ncid, int varid, float *ip);
1215extern int
1216ncmpi_get_var_float_all(int ncid, int varid, float *ip);
1217
1218extern int
1219ncmpi_get_var_double(int ncid, int varid, double *ip);
1220extern int
1221ncmpi_get_var_double_all(int ncid, int varid, double *ip);
1222
1223extern int
1224ncmpi_get_var_longlong(int ncid, int varid, long long *ip);
1225extern int
1226ncmpi_get_var_longlong_all(int ncid, int varid, long long *ip);
1227
1228/* Begin Skip Prototypes for Fortran binding */
1229/* skip types: uchar, ubyte, ushort, uint, long, ulonglong string */
1230
1231extern int
1232ncmpi_put_var_uchar(int ncid, int varid, const unsigned char *op);
1233extern int
1234ncmpi_put_var_uchar_all(int ncid, int varid, const unsigned char *op);
1235
1236extern int
1237ncmpi_put_var_ushort(int ncid, int varid, const unsigned short *op);
1238extern int
1239ncmpi_put_var_ushort_all(int ncid, int varid, const unsigned short *op);
1240
1241extern int
1242ncmpi_put_var_uint(int ncid, int varid, const unsigned int *op);
1243extern int
1244ncmpi_put_var_uint_all(int ncid, int varid, const unsigned int *op);
1245
1246extern int
1247ncmpi_put_var_long(int ncid, int varid, const long *op);
1248extern int
1249ncmpi_put_var_long_all(int ncid, int varid, const long *op);
1250
1251extern int
1252ncmpi_put_var_ulonglong(int ncid, int varid, const unsigned long long *op);
1253extern int
1254ncmpi_put_var_ulonglong_all(int ncid, int varid, const unsigned long long *op);
1255
1256extern int
1257ncmpi_get_var_uchar(int ncid, int varid, unsigned char *ip);
1258extern int
1259ncmpi_get_var_uchar_all(int ncid, int varid, unsigned char *ip);
1260
1261extern int
1262ncmpi_get_var_ushort(int ncid, int varid, unsigned short *ip);
1263extern int
1264ncmpi_get_var_ushort_all(int ncid, int varid, unsigned short *ip);
1265
1266extern int
1267ncmpi_get_var_uint(int ncid, int varid, unsigned int *ip);
1268extern int
1269ncmpi_get_var_uint_all(int ncid, int varid, unsigned int *ip);
1270
1271extern int
1272ncmpi_get_var_long(int ncid, int varid, long *ip);
1273extern int
1274ncmpi_get_var_long_all(int ncid, int varid, long *ip);
1275
1276extern int
1277ncmpi_get_var_ulonglong(int ncid, int varid, unsigned long long *ip);
1278extern int
1279ncmpi_get_var_ulonglong_all(int ncid, int varid, unsigned long long *ip);
1280/* End Skip Prototypes for Fortran binding */
1281
1282/* End {put,get}_var */
1283
1284/* Begin {put,get}_vara */
1285
1286extern int
1287ncmpi_put_vara(int ncid, int varid, const MPI_Offset *start,
1288               const MPI_Offset *count, const void *op,
1289               MPI_Offset bufcount, MPI_Datatype buftype);
1290extern int
1291ncmpi_put_vara_all(int ncid, int varid, const MPI_Offset *start,
1292               const MPI_Offset *count, const void *op,
1293               MPI_Offset bufcount, MPI_Datatype buftype);
1294
1295extern int
1296ncmpi_put_vara_text(int ncid, int varid, const MPI_Offset *start,
1297               const MPI_Offset *count, const char *op);
1298extern int
1299ncmpi_put_vara_text_all(int ncid, int varid, const MPI_Offset *start,
1300               const MPI_Offset *count, const char *op);
1301
1302extern int
1303ncmpi_put_vara_schar(int ncid, int varid, const MPI_Offset *start,
1304               const MPI_Offset *count, const signed char *op);
1305extern int
1306ncmpi_put_vara_schar_all(int ncid, int varid, const MPI_Offset *start,
1307               const MPI_Offset *count, const signed char *op);
1308
1309extern int
1310ncmpi_put_vara_short(int ncid, int varid, const MPI_Offset *start,
1311               const MPI_Offset *count, const short *op);
1312extern int
1313ncmpi_put_vara_short_all(int ncid, int varid, const MPI_Offset *start,
1314               const MPI_Offset *count, const short *op);
1315
1316extern int
1317ncmpi_put_vara_int(int ncid, int varid, const MPI_Offset *start,
1318               const MPI_Offset *count, const int *op);
1319extern int
1320ncmpi_put_vara_int_all(int ncid, int varid, const MPI_Offset *start,
1321               const MPI_Offset *count, const int *op);
1322
1323extern int
1324ncmpi_put_vara_float(int ncid, int varid, const MPI_Offset *start,
1325               const MPI_Offset *count, const float *op);
1326
1327extern int
1328ncmpi_put_vara_float_all(int ncid, int varid, const MPI_Offset *start,
1329               const MPI_Offset *count, const float *op);
1330
1331extern int
1332ncmpi_put_vara_double(int ncid, int varid, const MPI_Offset *start,
1333               const MPI_Offset *count, const double *op);
1334extern int
1335ncmpi_put_vara_double_all(int ncid, int varid, const MPI_Offset *start,
1336               const MPI_Offset *count, const double *op);
1337
1338extern int
1339ncmpi_put_vara_longlong(int ncid, int varid, const MPI_Offset *start,
1340               const MPI_Offset *count, const long long *op);
1341extern int
1342ncmpi_put_vara_longlong_all(int ncid, int varid, const MPI_Offset *start,
1343               const MPI_Offset *count, const long long *op);
1344
1345extern int
1346ncmpi_get_vara(int ncid, int varid, const MPI_Offset *start,
1347               const MPI_Offset *count, void *ip, MPI_Offset bufcount,
1348               MPI_Datatype buftype);
1349extern int
1350ncmpi_get_vara_all(int ncid, int varid, const MPI_Offset *start,
1351               const MPI_Offset *count, void *ip, MPI_Offset bufcount,
1352               MPI_Datatype buftype);
1353
1354extern int
1355ncmpi_get_vara_text(int ncid, int varid, const MPI_Offset *start,
1356               const MPI_Offset *count, char *ip);
1357extern int
1358ncmpi_get_vara_text_all(int ncid, int varid, const MPI_Offset *start,
1359               const MPI_Offset *count, char *ip);
1360
1361extern int
1362ncmpi_get_vara_schar(int ncid, int varid, const MPI_Offset *start,
1363               const MPI_Offset *count, signed char *ip);
1364extern int
1365ncmpi_get_vara_schar_all(int ncid, int varid, const MPI_Offset *start,
1366               const MPI_Offset *count, signed char *ip);
1367
1368extern int
1369ncmpi_get_vara_short(int ncid, int varid, const MPI_Offset *start,
1370               const MPI_Offset *count, short *ip);
1371extern int
1372ncmpi_get_vara_short_all(int ncid, int varid, const MPI_Offset *start,
1373               const MPI_Offset *count, short *ip);
1374
1375extern int
1376ncmpi_get_vara_int(int ncid, int varid, const MPI_Offset *start,
1377               const MPI_Offset *count, int *ip);
1378extern int
1379ncmpi_get_vara_int_all(int ncid, int varid, const MPI_Offset *start,
1380               const MPI_Offset *count, int *ip);
1381
1382extern int
1383ncmpi_get_vara_float(int ncid, int varid, const MPI_Offset *start,
1384               const MPI_Offset *count, float *ip);
1385extern int
1386ncmpi_get_vara_float_all(int ncid, int varid, const MPI_Offset *start,
1387               const MPI_Offset *count, float *ip);
1388
1389extern int
1390ncmpi_get_vara_double(int ncid, int varid, const MPI_Offset *start,
1391               const MPI_Offset *count, double *ip);
1392extern int
1393ncmpi_get_vara_double_all(int ncid, int varid, const MPI_Offset *start,
1394               const MPI_Offset *count, double *ip);
1395
1396extern int
1397ncmpi_get_vara_longlong(int ncid, int varid, const MPI_Offset *start,
1398               const MPI_Offset *count, long long *ip);
1399extern int
1400ncmpi_get_vara_longlong_all(int ncid, int varid, const MPI_Offset *start,
1401               const MPI_Offset *count, long long *ip);
1402
1403/* Begin Skip Prototypes for Fortran binding */
1404/* skip types: uchar, ubyte, ushort, uint, long, ulonglong string */
1405
1406extern int
1407ncmpi_put_vara_uchar(int ncid, int varid, const MPI_Offset *start,
1408               const MPI_Offset *count, const unsigned char *op);
1409extern int
1410ncmpi_put_vara_uchar_all(int ncid, int varid, const MPI_Offset *start,
1411               const MPI_Offset *count, const unsigned char *op);
1412
1413extern int
1414ncmpi_put_vara_ushort(int ncid, int varid, const MPI_Offset *start,
1415               const MPI_Offset *count, const unsigned short *op);
1416extern int
1417ncmpi_put_vara_ushort_all(int ncid, int varid, const MPI_Offset *start,
1418               const MPI_Offset *count, const unsigned short *op);
1419
1420extern int
1421ncmpi_put_vara_uint(int ncid, int varid, const MPI_Offset *start,
1422               const MPI_Offset *count, const unsigned int *op);
1423extern int
1424ncmpi_put_vara_uint_all(int ncid, int varid, const MPI_Offset *start,
1425               const MPI_Offset *count, const unsigned int *op);
1426
1427extern int
1428ncmpi_put_vara_long(int ncid, int varid, const MPI_Offset *start,
1429               const MPI_Offset *count, const long *op);
1430extern int
1431ncmpi_put_vara_long_all(int ncid, int varid, const MPI_Offset *start,
1432               const MPI_Offset *count, const long *op);
1433
1434extern int
1435ncmpi_put_vara_ulonglong(int ncid, int varid, const MPI_Offset *start,
1436               const MPI_Offset *count, const unsigned long long *op);
1437extern int
1438ncmpi_put_vara_ulonglong_all(int ncid, int varid, const MPI_Offset *start,
1439               const MPI_Offset *count, const unsigned long long *op);
1440
1441extern int
1442ncmpi_get_vara_uchar(int ncid, int varid, const MPI_Offset *start,
1443               const MPI_Offset *count, unsigned char *ip);
1444extern int
1445ncmpi_get_vara_uchar_all(int ncid, int varid, const MPI_Offset *start,
1446               const MPI_Offset *count, unsigned char *ip);
1447
1448extern int
1449ncmpi_get_vara_ushort(int ncid, int varid, const MPI_Offset *start,
1450               const MPI_Offset *count, unsigned short *ip);
1451extern int
1452ncmpi_get_vara_ushort_all(int ncid, int varid, const MPI_Offset *start,
1453               const MPI_Offset *count, unsigned short *ip);
1454
1455extern int
1456ncmpi_get_vara_uint(int ncid, int varid, const MPI_Offset *start,
1457               const MPI_Offset *count, unsigned int *ip);
1458extern int
1459ncmpi_get_vara_uint_all(int ncid, int varid, const MPI_Offset *start,
1460               const MPI_Offset *count, unsigned int *ip);
1461
1462extern int
1463ncmpi_get_vara_long(int ncid, int varid, const MPI_Offset *start,
1464               const MPI_Offset *count, long *ip);
1465extern int
1466ncmpi_get_vara_long_all(int ncid, int varid, const MPI_Offset *start,
1467               const MPI_Offset *count, long *ip);
1468
1469extern int
1470ncmpi_get_vara_ulonglong(int ncid, int varid, const MPI_Offset *start,
1471               const MPI_Offset *count, unsigned long long *ip);
1472extern int
1473ncmpi_get_vara_ulonglong_all(int ncid, int varid, const MPI_Offset *start,
1474               const MPI_Offset *count, unsigned long long *ip);
1475
1476/* End Skip Prototypes for Fortran binding */
1477
1478/* End {put,get}_vara */
1479
1480/* Begin {put,get}_vars */
1481
1482extern int
1483ncmpi_put_vars(int ncid, int varid, const MPI_Offset *start,
1484               const MPI_Offset *count, const MPI_Offset *stride,
1485               const void *op, MPI_Offset bufcount, MPI_Datatype buftype);
1486extern int
1487ncmpi_put_vars_all(int ncid, int varid, const MPI_Offset *start,
1488               const MPI_Offset *count, const MPI_Offset *stride,
1489               const void *op, MPI_Offset bufcount, MPI_Datatype buftype);
1490
1491extern int
1492ncmpi_put_vars_text(int ncid, int varid, const MPI_Offset *start,
1493               const MPI_Offset *count, const MPI_Offset *stride,
1494               const char *op);
1495extern int
1496ncmpi_put_vars_text_all(int ncid, int varid, const MPI_Offset *start,
1497               const MPI_Offset *count, const MPI_Offset *stride,
1498               const char *op);
1499
1500extern int
1501ncmpi_put_vars_schar(int ncid, int varid, const MPI_Offset *start,
1502               const MPI_Offset *count, const MPI_Offset *stride,
1503               const signed char *op);
1504extern int
1505ncmpi_put_vars_schar_all(int ncid, int varid, const MPI_Offset *start,
1506               const MPI_Offset *count, const MPI_Offset *stride,
1507               const signed char *op);
1508
1509extern int
1510ncmpi_put_vars_short(int ncid, int varid, const MPI_Offset *start,
1511               const MPI_Offset *count, const MPI_Offset *stride,
1512               const short *op);
1513extern int
1514ncmpi_put_vars_short_all(int ncid, int varid, const MPI_Offset *start,
1515               const MPI_Offset *count, const MPI_Offset *stride,
1516               const short *op);
1517
1518extern int
1519ncmpi_put_vars_int(int ncid, int varid, const MPI_Offset *start,
1520               const MPI_Offset *count, const MPI_Offset *stride,
1521               const int *op);
1522extern int
1523ncmpi_put_vars_int_all(int ncid, int varid, const MPI_Offset *start,
1524               const MPI_Offset *count, const MPI_Offset *stride,
1525               const int *op);
1526
1527extern int
1528ncmpi_put_vars_float(int ncid, int varid, const MPI_Offset *start,
1529               const MPI_Offset *count, const MPI_Offset *stride,
1530               const float *op);
1531extern int
1532ncmpi_put_vars_float_all(int ncid, int varid, const MPI_Offset *start,
1533               const MPI_Offset *count, const MPI_Offset *stride,
1534               const float *op);
1535
1536extern int
1537ncmpi_put_vars_double(int ncid, int varid, const MPI_Offset *start,
1538               const MPI_Offset *count, const MPI_Offset *stride,
1539               const double *op);
1540extern int
1541ncmpi_put_vars_double_all(int ncid, int varid, const MPI_Offset *start,
1542               const MPI_Offset *count, const MPI_Offset *stride,
1543               const double *op);
1544
1545extern int
1546ncmpi_put_vars_longlong(int ncid, int varid, const MPI_Offset *start,
1547               const MPI_Offset *count, const MPI_Offset *stride,
1548               const long long *op);
1549extern int
1550ncmpi_put_vars_longlong_all(int ncid, int varid, const MPI_Offset *start,
1551               const MPI_Offset *count, const MPI_Offset *stride,
1552               const long long *op);
1553
1554extern int
1555ncmpi_get_vars(int ncid, int varid, const MPI_Offset *start,
1556               const MPI_Offset *count, const MPI_Offset *stride,
1557               void *ip, MPI_Offset bufcount, MPI_Datatype buftype);
1558extern int
1559ncmpi_get_vars_all(int ncid, int varid, const MPI_Offset *start,
1560               const MPI_Offset *count, const MPI_Offset *stride,
1561               void *ip, MPI_Offset bufcount, MPI_Datatype buftype);
1562
1563extern int
1564ncmpi_get_vars_schar(int ncid, int varid, const MPI_Offset *start,
1565                   const MPI_Offset *count, const MPI_Offset *stride,
1566                   signed char *ip);
1567extern int
1568ncmpi_get_vars_schar_all(int ncid, int varid, const MPI_Offset *start,
1569               const MPI_Offset *count, const MPI_Offset *stride,
1570               signed char *ip);
1571
1572extern int
1573ncmpi_get_vars_text(int ncid, int varid, const MPI_Offset *start,
1574               const MPI_Offset *count, const MPI_Offset *stride, char *ip);
1575extern int
1576ncmpi_get_vars_text_all(int ncid, int varid, const MPI_Offset *start,
1577                   const MPI_Offset *count, const MPI_Offset *stride, char *ip);
1578
1579extern int
1580ncmpi_get_vars_short(int ncid, int varid, const MPI_Offset *start,
1581               const MPI_Offset *count, const MPI_Offset *stride, short *ip);
1582extern int
1583ncmpi_get_vars_short_all(int ncid, int varid, const MPI_Offset *start,
1584               const MPI_Offset *count, const MPI_Offset *stride, short *ip);
1585
1586extern int
1587ncmpi_get_vars_int(int ncid, int varid, const MPI_Offset *start,
1588               const MPI_Offset *count, const MPI_Offset *stride, int *ip);
1589extern int
1590ncmpi_get_vars_int_all(int ncid, int varid, const MPI_Offset *start,
1591               const MPI_Offset *count, const MPI_Offset *stride, int *ip);
1592
1593extern int
1594ncmpi_get_vars_float(int ncid, int varid, const MPI_Offset *start,
1595               const MPI_Offset *count, const MPI_Offset *stride, float *ip);
1596extern int
1597ncmpi_get_vars_float_all(int ncid, int varid, const MPI_Offset *start,
1598               const MPI_Offset *count, const MPI_Offset *stride, float *ip);
1599
1600extern int
1601ncmpi_get_vars_double(int ncid, int varid, const MPI_Offset *start,
1602               const MPI_Offset *count, const MPI_Offset *stride, double *ip);
1603extern int
1604ncmpi_get_vars_double_all(int ncid, int varid, const MPI_Offset *start,
1605               const MPI_Offset *count, const MPI_Offset *stride, double *ip);
1606
1607extern int
1608ncmpi_get_vars_longlong(int ncid, int varid, const MPI_Offset *start,
1609               const MPI_Offset *count, const MPI_Offset *stride,
1610               long long *ip);
1611extern int
1612ncmpi_get_vars_longlong_all(int ncid, int varid, const MPI_Offset *start,
1613               const MPI_Offset *count, const MPI_Offset *stride,
1614               long long *ip);
1615
1616/* Begin Skip Prototypes for Fortran binding */
1617/* skip types: uchar, ubyte, ushort, uint, long, ulonglong string */
1618
1619extern int
1620ncmpi_put_vars_uchar(int ncid, int varid, const MPI_Offset *start,
1621               const MPI_Offset *count, const MPI_Offset *stride,
1622               const unsigned char *op);
1623extern int
1624ncmpi_put_vars_uchar_all(int ncid, int varid, const MPI_Offset *start,
1625               const MPI_Offset *count, const MPI_Offset *stride,
1626               const unsigned char *op);
1627
1628extern int
1629ncmpi_put_vars_ushort(int ncid, int varid, const MPI_Offset *start,
1630               const MPI_Offset *count, const MPI_Offset *stride,
1631               const unsigned short *op);
1632extern int
1633ncmpi_put_vars_ushort_all(int ncid, int varid, const MPI_Offset *start,
1634               const MPI_Offset *count, const MPI_Offset *stride,
1635               const unsigned short *op);
1636
1637extern int
1638ncmpi_put_vars_uint(int ncid, int varid, const MPI_Offset *start,
1639               const MPI_Offset *count, const MPI_Offset *stride,
1640               const unsigned int *op);
1641extern int
1642ncmpi_put_vars_uint_all(int ncid, int varid, const MPI_Offset *start,
1643               const MPI_Offset *count, const MPI_Offset *stride,
1644               const unsigned int *op);
1645
1646extern int
1647ncmpi_put_vars_long(int ncid, int varid, const MPI_Offset *start,
1648               const MPI_Offset *count, const MPI_Offset *stride,
1649               const long *op);
1650extern int
1651ncmpi_put_vars_long_all(int ncid, int varid, const MPI_Offset *start,
1652               const MPI_Offset *count, const MPI_Offset *stride,
1653               const long *op);
1654
1655extern int
1656ncmpi_put_vars_ulonglong(int ncid, int varid, const MPI_Offset *start,
1657               const MPI_Offset *count, const MPI_Offset *stride,
1658               const unsigned long long *op);
1659extern int
1660ncmpi_put_vars_ulonglong_all(int ncid, int varid, const MPI_Offset *start,
1661               const MPI_Offset *count, const MPI_Offset *stride,
1662               const unsigned long long *op);
1663
1664extern int
1665ncmpi_get_vars_uchar(int ncid, int varid, const MPI_Offset *start,
1666               const MPI_Offset *count, const MPI_Offset *stride,
1667               unsigned char *ip);
1668extern int
1669ncmpi_get_vars_uchar_all(int ncid, int varid, const MPI_Offset *start,
1670               const MPI_Offset *count, const MPI_Offset *stride,
1671               unsigned char *ip);
1672
1673extern int
1674ncmpi_get_vars_ushort(int ncid, int varid, const MPI_Offset *start,
1675               const MPI_Offset *count, const MPI_Offset *stride,
1676               unsigned short *ip);
1677extern int
1678ncmpi_get_vars_ushort_all(int ncid, int varid, const MPI_Offset *start,
1679               const MPI_Offset *count, const MPI_Offset *stride,
1680               unsigned short *ip);
1681
1682extern int
1683ncmpi_get_vars_uint(int ncid, int varid, const MPI_Offset *start,
1684               const MPI_Offset *count, const MPI_Offset *stride,
1685               unsigned int *ip);
1686extern int
1687ncmpi_get_vars_uint_all(int ncid, int varid, const MPI_Offset *start,
1688               const MPI_Offset *count, const MPI_Offset *stride,
1689               unsigned int *ip);
1690
1691extern int
1692ncmpi_get_vars_long(int ncid, int varid, const MPI_Offset *start,
1693               const MPI_Offset *count, const MPI_Offset *stride,
1694               long *ip);
1695extern int
1696ncmpi_get_vars_long_all(int ncid, int varid, const MPI_Offset *start,
1697               const MPI_Offset *count, const MPI_Offset *stride,
1698               long *ip);
1699
1700extern int
1701ncmpi_get_vars_ulonglong(int ncid, int varid, const MPI_Offset *start,
1702               const MPI_Offset *count, const MPI_Offset *stride,
1703               unsigned long long *ip);
1704extern int
1705ncmpi_get_vars_ulonglong_all(int ncid, int varid, const MPI_Offset *start,
1706               const MPI_Offset *count, const MPI_Offset *stride,
1707               unsigned long long *ip);
1708
1709/* End Skip Prototypes for Fortran binding */
1710
1711/* End {put,get}_vars */
1712
1713/* Begin {put,get}_varm */
1714
1715extern int
1716ncmpi_put_varm(int ncid, int varid, const MPI_Offset *start,
1717               const MPI_Offset *count, const MPI_Offset *stride,
1718               const MPI_Offset *imap, const void *op,
1719               MPI_Offset bufcount, MPI_Datatype buftype);
1720extern int
1721ncmpi_put_varm_all(int ncid, int varid, const MPI_Offset *start,
1722               const MPI_Offset *count, const MPI_Offset *stride,
1723               const MPI_Offset *imap, const void *op,
1724               MPI_Offset bufcount, MPI_Datatype buftype);
1725
1726extern int
1727ncmpi_put_varm_text(int ncid, int varid, const MPI_Offset *start,
1728               const MPI_Offset *count, const MPI_Offset *stride,
1729               const MPI_Offset *imap, const char *op);
1730extern int
1731ncmpi_put_varm_text_all(int ncid, int varid, const MPI_Offset *start,
1732               const MPI_Offset *count, const MPI_Offset *stride,
1733               const MPI_Offset *imap, const char *op);
1734
1735extern int
1736ncmpi_put_varm_schar(int ncid, int varid, const MPI_Offset *start,
1737               const MPI_Offset *count, const MPI_Offset *stride,
1738               const MPI_Offset *imap, const signed char *op);
1739extern int
1740ncmpi_put_varm_schar_all(int ncid, int varid, const MPI_Offset *start,
1741               const MPI_Offset *count, const MPI_Offset *stride,
1742               const MPI_Offset *imap, const signed char *op);
1743
1744extern int
1745ncmpi_put_varm_short(int ncid, int varid, const MPI_Offset *start,
1746               const MPI_Offset *count, const MPI_Offset *stride,
1747               const MPI_Offset *imap, const short *op);
1748extern int
1749ncmpi_put_varm_short_all(int ncid, int varid, const MPI_Offset *start,
1750               const MPI_Offset *count, const MPI_Offset *stride,
1751               const MPI_Offset *imap, const short *op);
1752
1753extern int
1754ncmpi_put_varm_int(int ncid, int varid, const MPI_Offset *start,
1755               const MPI_Offset *count, const MPI_Offset *stride,
1756               const MPI_Offset *imap, const int *op);
1757extern int
1758ncmpi_put_varm_int_all(int ncid, int varid, const MPI_Offset *start,
1759               const MPI_Offset *count, const MPI_Offset *stride,
1760               const MPI_Offset *imap, const int *op);
1761
1762extern int
1763ncmpi_put_varm_float(int ncid, int varid, const MPI_Offset *start,
1764               const MPI_Offset *count, const MPI_Offset *stride,
1765               const MPI_Offset *imap, const float *op);
1766extern int
1767ncmpi_put_varm_float_all(int ncid, int varid, const MPI_Offset *start,
1768               const MPI_Offset *count, const MPI_Offset *stride,
1769               const MPI_Offset *imap, const float *op);
1770
1771extern int
1772ncmpi_put_varm_double(int ncid, int varid, const MPI_Offset *start,
1773               const MPI_Offset *count, const MPI_Offset *stride,
1774               const MPI_Offset *imap, const double *op);
1775extern int
1776ncmpi_put_varm_double_all(int ncid, int varid, const MPI_Offset *start,
1777               const MPI_Offset *count, const MPI_Offset *stride,
1778               const MPI_Offset *imap, const double *op);
1779
1780extern int
1781ncmpi_put_varm_longlong(int ncid, int varid, const MPI_Offset *start,
1782               const MPI_Offset *count, const MPI_Offset *stride,
1783               const MPI_Offset *imap, const long long *op);
1784extern int
1785ncmpi_put_varm_longlong_all(int ncid, int varid, const MPI_Offset *start,
1786               const MPI_Offset *count, const MPI_Offset *stride,
1787               const MPI_Offset *imap, const long long *op);
1788
1789extern int
1790ncmpi_get_varm(int ncid, int varid, const MPI_Offset *start,
1791               const MPI_Offset *count, const MPI_Offset *stride,
1792               const MPI_Offset *imap, void *ip, MPI_Offset bufcount,
1793               MPI_Datatype buftype);
1794extern int
1795ncmpi_get_varm_all(int ncid, int varid, const MPI_Offset *start,
1796               const MPI_Offset *count, const MPI_Offset *stride,
1797               const MPI_Offset *imap, void *ip, MPI_Offset bufcount,
1798               MPI_Datatype buftype);
1799
1800extern int
1801ncmpi_get_varm_schar(int ncid, int varid, const MPI_Offset *start,
1802               const MPI_Offset *count, const MPI_Offset *stride,
1803               const MPI_Offset *imap, signed char *ip);
1804extern int
1805ncmpi_get_varm_schar_all(int ncid, int varid, const MPI_Offset *start,
1806               const MPI_Offset *count, const MPI_Offset *stride,
1807               const MPI_Offset *imap, signed char *ip);
1808
1809extern int
1810ncmpi_get_varm_text(int ncid, int varid, const MPI_Offset *start,
1811               const MPI_Offset *count, const MPI_Offset *stride,
1812               const MPI_Offset *imap, char *ip);
1813extern int
1814ncmpi_get_varm_text_all(int ncid, int varid, const MPI_Offset *start,
1815               const MPI_Offset *count, const MPI_Offset *stride,
1816               const MPI_Offset *imap, char *ip);
1817
1818extern int
1819ncmpi_get_varm_short(int ncid, int varid, const MPI_Offset *start,
1820               const MPI_Offset *count, const MPI_Offset *stride,
1821               const MPI_Offset *imap, short *ip);
1822extern int
1823ncmpi_get_varm_short_all(int ncid, int varid, const MPI_Offset *start,
1824               const MPI_Offset *count, const MPI_Offset *stride,
1825               const MPI_Offset *imap, short *ip);
1826
1827extern int
1828ncmpi_get_varm_int(int ncid, int varid, const MPI_Offset *start,
1829               const MPI_Offset *count, const MPI_Offset *stride,
1830               const MPI_Offset *imap, int *ip);
1831extern int
1832ncmpi_get_varm_int_all(int ncid, int varid, const MPI_Offset *start,
1833               const MPI_Offset *count, const MPI_Offset *stride,
1834               const MPI_Offset *imap, int *ip);
1835
1836extern int
1837ncmpi_get_varm_float(int ncid, int varid, const MPI_Offset *start,
1838               const MPI_Offset *count, const MPI_Offset *stride,
1839               const MPI_Offset *imap, float *ip);
1840extern int
1841ncmpi_get_varm_float_all(int ncid, int varid, const MPI_Offset *start,
1842               const MPI_Offset *count, const MPI_Offset *stride,
1843               const MPI_Offset *imap, float *ip);
1844
1845extern int
1846ncmpi_get_varm_double(int ncid, int varid, const MPI_Offset *start,
1847               const MPI_Offset *count, const MPI_Offset *stride,
1848               const MPI_Offset *imap, double *ip);
1849extern int
1850ncmpi_get_varm_double_all(int ncid, int varid, const MPI_Offset *start,
1851               const MPI_Offset *count, const MPI_Offset *stride,
1852               const MPI_Offset *imap, double *ip);
1853
1854extern int
1855ncmpi_get_varm_longlong(int ncid, int varid, const MPI_Offset *start,
1856               const MPI_Offset *count, const MPI_Offset *stride,
1857               const MPI_Offset *imap, long long *ip);
1858extern int
1859ncmpi_get_varm_longlong_all(int ncid, int varid, const MPI_Offset *start,
1860               const MPI_Offset *count, const MPI_Offset *stride,
1861               const MPI_Offset *imap, long long *ip);
1862
1863/* Begin Skip Prototypes for Fortran binding */
1864/* skip types: uchar, ubyte, ushort, uint, long, ulonglong string */
1865
1866extern int
1867ncmpi_put_varm_uchar(int ncid, int varid, const MPI_Offset *start,
1868               const MPI_Offset *count, const MPI_Offset *stride,
1869               const MPI_Offset *imap, const unsigned char *op);
1870extern int
1871ncmpi_put_varm_uchar_all(int ncid, int varid, const MPI_Offset *start,
1872               const MPI_Offset *count, const MPI_Offset *stride,
1873               const MPI_Offset *imap, const unsigned char *op);
1874
1875extern int
1876ncmpi_put_varm_ushort(int ncid, int varid, const MPI_Offset *start,
1877               const MPI_Offset *count, const MPI_Offset *stride,
1878               const MPI_Offset *imap, const unsigned short *op);
1879extern int
1880ncmpi_put_varm_ushort_all(int ncid, int varid, const MPI_Offset *start,
1881               const MPI_Offset *count, const MPI_Offset *stride,
1882               const MPI_Offset *imap, const unsigned short *op);
1883
1884extern int
1885ncmpi_put_varm_uint(int ncid, int varid, const MPI_Offset *start,
1886               const MPI_Offset *count, const MPI_Offset *stride,
1887               const MPI_Offset *imap, const unsigned int *op);
1888extern int
1889ncmpi_put_varm_uint_all(int ncid, int varid, const MPI_Offset *start,
1890               const MPI_Offset *count, const MPI_Offset *stride,
1891               const MPI_Offset *imap, const unsigned int *op);
1892
1893extern int
1894ncmpi_put_varm_long(int ncid, int varid, const MPI_Offset *start,
1895               const MPI_Offset *count, const MPI_Offset *stride,
1896               const MPI_Offset *imap, const long *op);
1897extern int
1898ncmpi_put_varm_long_all(int ncid, int varid, const MPI_Offset *start,
1899               const MPI_Offset *count, const MPI_Offset *stride,
1900               const MPI_Offset *imap, const long *op);
1901
1902extern int
1903ncmpi_put_varm_ulonglong(int ncid, int varid, const MPI_Offset *start,
1904               const MPI_Offset *count, const MPI_Offset *stride,
1905               const MPI_Offset *imap, const unsigned long long *op);
1906extern int
1907ncmpi_put_varm_ulonglong_all(int ncid, int varid, const MPI_Offset *start,
1908               const MPI_Offset *count, const MPI_Offset *stride,
1909               const MPI_Offset *imap, const unsigned long long *op);
1910
1911extern int
1912ncmpi_get_varm_uchar(int ncid, int varid, const MPI_Offset *start,
1913               const MPI_Offset *count, const MPI_Offset *stride,
1914               const MPI_Offset *imap, unsigned char *ip);
1915extern int
1916ncmpi_get_varm_uchar_all(int ncid, int varid, const MPI_Offset *start,
1917               const MPI_Offset *count, const MPI_Offset *stride,
1918               const MPI_Offset *imap, unsigned char *ip);
1919
1920extern int
1921ncmpi_get_varm_ushort(int ncid, int varid, const MPI_Offset *start,
1922               const MPI_Offset *count, const MPI_Offset *stride,
1923               const MPI_Offset *imap, unsigned short *ip);
1924extern int
1925ncmpi_get_varm_ushort_all(int ncid, int varid, const MPI_Offset *start,
1926               const MPI_Offset *count, const MPI_Offset *stride,
1927               const MPI_Offset *imap, unsigned short *ip);
1928
1929extern int
1930ncmpi_get_varm_uint(int ncid, int varid, const MPI_Offset *start,
1931               const MPI_Offset *count, const MPI_Offset *stride,
1932               const MPI_Offset *imap, unsigned int *ip);
1933extern int
1934ncmpi_get_varm_uint_all(int ncid, int varid, const MPI_Offset *start,
1935               const MPI_Offset *count, const MPI_Offset *stride,
1936               const MPI_Offset *imap, unsigned int *ip);
1937
1938extern int
1939ncmpi_get_varm_long(int ncid, int varid, const MPI_Offset *start,
1940               const MPI_Offset *count, const MPI_Offset *stride,
1941               const MPI_Offset *imap, long *ip);
1942extern int
1943ncmpi_get_varm_long_all(int ncid, int varid, const MPI_Offset *start,
1944               const MPI_Offset *count, const MPI_Offset *stride,
1945               const MPI_Offset *imap, long *ip);
1946
1947extern int
1948ncmpi_get_varm_ulonglong(int ncid, int varid, const MPI_Offset *start,
1949               const MPI_Offset *count, const MPI_Offset *stride,
1950               const MPI_Offset *imap, unsigned long long *ip);
1951extern int
1952ncmpi_get_varm_ulonglong_all(int ncid, int varid, const MPI_Offset *start,
1953               const MPI_Offset *count, const MPI_Offset *stride,
1954               const MPI_Offset *imap, unsigned long long *ip);
1955
1956/* End Skip Prototypes for Fortran binding */
1957
1958/* End {put,get}_varm */
1959
1960/* Begin of {put,get}_varn{kind} */
1961
1962extern int
1963ncmpi_put_varn(int ncid, int varid, int num, MPI_Offset* const *starts,
1964               MPI_Offset* const *counts, const void *op,
1965               MPI_Offset bufcount, MPI_Datatype buftype);
1966extern int
1967ncmpi_put_varn_all(int ncid, int varid, int num,
1968               MPI_Offset* const *starts, MPI_Offset* const *counts,
1969                const void *op, MPI_Offset bufcount, MPI_Datatype buftype);
1970
1971extern int
1972ncmpi_get_varn(int ncid, int varid, int num, MPI_Offset* const *starts,
1973               MPI_Offset* const *counts,  void *ip, MPI_Offset bufcount,
1974               MPI_Datatype buftype);
1975extern int
1976ncmpi_get_varn_all(int ncid, int varid, int num,
1977               MPI_Offset* const *starts, MPI_Offset* const *counts,
1978               void *ip, MPI_Offset bufcount, MPI_Datatype buftype);
1979
1980extern int
1981ncmpi_put_varn_text(int ncid, int varid, int num,
1982               MPI_Offset* const *starts, MPI_Offset* const *counts,
1983               const char *op);
1984extern int
1985ncmpi_put_varn_text_all(int ncid, int varid, int num,
1986               MPI_Offset* const *starts, MPI_Offset* const *counts,
1987               const char *op);
1988
1989extern int
1990ncmpi_put_varn_schar(int ncid, int varid, int num,
1991               MPI_Offset* const *starts, MPI_Offset* const *counts,
1992               const signed char *op);
1993extern int
1994ncmpi_put_varn_schar_all(int ncid, int varid, int num,
1995               MPI_Offset* const *starts, MPI_Offset* const *counts,
1996               const signed char *op);
1997
1998extern int
1999ncmpi_put_varn_short(int ncid, int varid, int num,
2000               MPI_Offset* const *starts, MPI_Offset* const *counts,
2001               const short *op);
2002extern int
2003ncmpi_put_varn_short_all(int ncid, int varid, int num,
2004               MPI_Offset* const *starts, MPI_Offset* const *counts,
2005               const short *op);
2006
2007extern int
2008ncmpi_put_varn_int(int ncid, int varid, int num,
2009               MPI_Offset* const *starts, MPI_Offset* const *counts,
2010               const int *op);
2011extern int
2012ncmpi_put_varn_int_all(int ncid, int varid, int num,
2013               MPI_Offset* const *starts, MPI_Offset* const *counts,
2014               const int *op);
2015
2016extern int
2017ncmpi_put_varn_float(int ncid, int varid, int num,
2018               MPI_Offset* const *starts, MPI_Offset* const *counts,
2019               const float *op);
2020extern int
2021ncmpi_put_varn_float_all(int ncid, int varid, int num,
2022               MPI_Offset* const *starts, MPI_Offset* const *counts,
2023               const float *op);
2024
2025extern int
2026ncmpi_put_varn_double(int ncid, int varid, int num,
2027               MPI_Offset* const *starts, MPI_Offset* const *counts,
2028               const double *op);
2029extern int
2030ncmpi_put_varn_double_all(int ncid, int varid, int num,
2031               MPI_Offset* const *starts, MPI_Offset* const *counts,
2032               const double *op);
2033
2034extern int
2035ncmpi_put_varn_longlong(int ncid, int varid, int num,
2036               MPI_Offset* const *starts, MPI_Offset* const *counts,
2037               const long long *op);
2038extern int
2039ncmpi_put_varn_longlong_all(int ncid, int varid, int num,
2040               MPI_Offset* const *starts, MPI_Offset* const *counts,
2041               const long long *op);
2042
2043/* Begin Skip Prototypes for Fortran binding */
2044/* skip types: uchar, ubyte, ushort, uint, long, ulonglong string */
2045
2046extern int
2047ncmpi_put_varn_uchar(int ncid, int varid, int num,
2048               MPI_Offset* const *starts, MPI_Offset* const *counts,
2049               const unsigned char *op);
2050extern int
2051ncmpi_put_varn_uchar_all(int ncid, int varid, int num,
2052               MPI_Offset* const *starts, MPI_Offset* const *counts,
2053               const unsigned char *op);
2054
2055extern int
2056ncmpi_put_varn_ushort(int ncid, int varid, int num,
2057               MPI_Offset* const *starts, MPI_Offset* const *counts,
2058               const unsigned short *op);
2059extern int
2060ncmpi_put_varn_ushort_all(int ncid, int varid, int num,
2061               MPI_Offset* const *starts, MPI_Offset* const *counts,
2062               const unsigned short *op);
2063
2064extern int
2065ncmpi_put_varn_uint(int ncid, int varid, int num,
2066               MPI_Offset* const *starts, MPI_Offset* const *counts,
2067               const unsigned int *op);
2068extern int
2069ncmpi_put_varn_uint_all(int ncid, int varid, int num,
2070               MPI_Offset* const *starts, MPI_Offset* const *counts,
2071               const unsigned int *op);
2072
2073extern int
2074ncmpi_put_varn_long(int ncid, int varid, int num,
2075               MPI_Offset* const *starts, MPI_Offset* const *counts,
2076               const long *op);
2077extern int
2078ncmpi_put_varn_long_all(int ncid, int varid, int num,
2079               MPI_Offset* const *starts, MPI_Offset* const *counts,
2080               const long *op);
2081
2082extern int
2083ncmpi_put_varn_ulonglong(int ncid, int varid, int num,
2084               MPI_Offset* const *starts, MPI_Offset* const *counts,
2085               const unsigned long long *op);
2086extern int
2087ncmpi_put_varn_ulonglong_all(int ncid, int varid, int num,
2088               MPI_Offset* const *starts, MPI_Offset* const *counts,
2089               const unsigned long long *op);
2090
2091/* End Skip Prototypes for Fortran binding */
2092
2093extern int
2094ncmpi_get_varn_text(int ncid, int varid, int num,
2095               MPI_Offset* const *starts, MPI_Offset* const *counts,
2096               char *ip);
2097extern int
2098ncmpi_get_varn_text_all(int ncid, int varid, int num,
2099               MPI_Offset* const *starts, MPI_Offset* const *counts,
2100               char *ip);
2101
2102extern int
2103ncmpi_get_varn_schar(int ncid, int varid, int num,
2104               MPI_Offset* const *starts, MPI_Offset* const *counts,
2105               signed char *ip);
2106extern int
2107ncmpi_get_varn_schar_all(int ncid, int varid, int num,
2108               MPI_Offset* const *starts, MPI_Offset* const *counts,
2109               signed char *ip);
2110
2111extern int
2112ncmpi_get_varn_short(int ncid, int varid, int num,
2113               MPI_Offset* const *starts, MPI_Offset* const *counts,
2114               short *ip);
2115extern int
2116ncmpi_get_varn_short_all(int ncid, int varid, int num,
2117               MPI_Offset* const *starts, MPI_Offset* const *counts,
2118               short *ip);
2119
2120extern int
2121ncmpi_get_varn_int(int ncid, int varid, int num,
2122               MPI_Offset* const *starts, MPI_Offset* const *counts,
2123               int *ip);
2124extern int
2125ncmpi_get_varn_int_all(int ncid, int varid, int num,
2126               MPI_Offset* const *starts, MPI_Offset* const *counts,
2127               int *ip);
2128
2129extern int
2130ncmpi_get_varn_float(int ncid, int varid, int num,
2131               MPI_Offset* const *starts, MPI_Offset* const *counts,
2132               float *ip);
2133extern int
2134ncmpi_get_varn_float_all(int ncid, int varid, int num,
2135               MPI_Offset* const *starts, MPI_Offset* const *counts,
2136               float *ip);
2137
2138extern int
2139ncmpi_get_varn_double(int ncid, int varid, int num,
2140               MPI_Offset* const *starts, MPI_Offset* const *counts,
2141               double *ip);
2142extern int
2143ncmpi_get_varn_double_all(int ncid, int varid, int num,
2144               MPI_Offset* const *starts, MPI_Offset* const *counts,
2145               double *ip);
2146
2147extern int
2148ncmpi_get_varn_longlong(int ncid, int varid, int num,
2149               MPI_Offset* const *starts, MPI_Offset* const *counts,
2150               long long *ip);
2151extern int
2152ncmpi_get_varn_longlong_all(int ncid, int varid, int num,
2153               MPI_Offset* const *starts, MPI_Offset* const *counts,
2154               long long *ip);
2155
2156/* Begin Skip Prototypes for Fortran binding */
2157/* skip types: uchar, ubyte, ushort, uint, long, ulonglong string */
2158
2159extern int
2160ncmpi_get_varn_uchar(int ncid, int varid, int num,
2161               MPI_Offset* const *starts, MPI_Offset* const *counts,
2162               unsigned char *ip);
2163extern int
2164ncmpi_get_varn_uchar_all(int ncid, int varid, int num,
2165               MPI_Offset* const *starts, MPI_Offset* const *counts,
2166               unsigned char *ip);
2167
2168extern int
2169ncmpi_get_varn_ushort(int ncid, int varid, int num,
2170               MPI_Offset* const *starts, MPI_Offset* const *counts,
2171               unsigned short *ip);
2172extern int
2173ncmpi_get_varn_ushort_all(int ncid, int varid, int num,
2174               MPI_Offset* const *starts, MPI_Offset* const *counts,
2175               unsigned short *ip);
2176
2177extern int
2178ncmpi_get_varn_uint(int ncid, int varid, int num,
2179               MPI_Offset* const *starts, MPI_Offset* const *counts,
2180               unsigned int *ip);
2181extern int
2182ncmpi_get_varn_uint_all(int ncid, int varid, int num,
2183               MPI_Offset* const *starts, MPI_Offset* const *counts,
2184               unsigned int *ip);
2185
2186extern int
2187ncmpi_get_varn_long(int ncid, int varid, int num,
2188               MPI_Offset* const *starts, MPI_Offset* const *counts,
2189               long *ip);
2190extern int
2191ncmpi_get_varn_long_all(int ncid, int varid, int num,
2192               MPI_Offset* const *starts, MPI_Offset* const *counts,
2193               long *ip);
2194
2195extern int
2196ncmpi_get_varn_ulonglong(int ncid, int varid, int num,
2197               MPI_Offset* const *starts, MPI_Offset* const *counts,
2198               unsigned long long *ip);
2199extern int
2200ncmpi_get_varn_ulonglong_all(int ncid, int varid, int num,
2201               MPI_Offset* const *starts, MPI_Offset* const *counts,
2202               unsigned long long *ip);
2203
2204/* End Skip Prototypes for Fortran binding */
2205
2206/* End of {put,get}_varn{kind} */
2207
2208/* Begin {put,get}_vard */
2209extern int
2210ncmpi_get_vard(int ncid, int varid, MPI_Datatype filetype, void *ip,
2211               MPI_Offset bufcount, MPI_Datatype buftype);
2212extern int
2213ncmpi_get_vard_all(int ncid, int varid, MPI_Datatype filetype, void *ip,
2214               MPI_Offset bufcount, MPI_Datatype buftype);
2215extern int
2216ncmpi_put_vard(int ncid, int varid, MPI_Datatype filetype, const void *ip,
2217               MPI_Offset bufcount, MPI_Datatype buftype);
2218extern int
2219ncmpi_put_vard_all(int ncid, int varid, MPI_Datatype filetype, const void *ip,
2220               MPI_Offset bufcount, MPI_Datatype buftype);
2221/* End of {put,get}_vard */
2222
2223/* Begin {mput,mget}_var */
2224
2225/* #################################################################### */
2226/* Begin: more prototypes to be included for Fortran binding conversion */
2227
2228/* Begin non-blocking data access functions */
2229
2230extern int
2231ncmpi_wait(int ncid, int count, int array_of_requests[],
2232           int array_of_statuses[]);
2233
2234extern int
2235ncmpi_wait_all(int ncid, int count, int array_of_requests[],
2236               int array_of_statuses[]);
2237
2238extern int
2239ncmpi_cancel(int ncid, int num, int *reqs, int *statuses);
2240
2241extern int
2242ncmpi_buffer_attach(int ncid, MPI_Offset bufsize);
2243extern int
2244ncmpi_buffer_detach(int ncid);
2245extern int
2246ncmpi_inq_buffer_usage(int ncid, MPI_Offset *usage);
2247extern int
2248ncmpi_inq_buffer_size(int ncid, MPI_Offset *buf_size);
2249extern int
2250ncmpi_inq_nreqs(int ncid, int *nreqs);
2251
2252/* Begin {iput,iget,bput}_var1 */
2253
2254extern int
2255ncmpi_iput_var1(int ncid, int varid, const MPI_Offset *start,
2256                const void *op, MPI_Offset bufcount,
2257                MPI_Datatype buftype, int *req);
2258
2259extern int
2260ncmpi_iput_var1_text(int ncid, int varid, const MPI_Offset *start,
2261                const char *op, int *req);
2262
2263extern int
2264ncmpi_iput_var1_schar(int ncid, int varid, const MPI_Offset *start,
2265                const signed char *op, int *req);
2266
2267extern int
2268ncmpi_iput_var1_short(int ncid, int varid, const MPI_Offset *start,
2269                const short *op, int *req);
2270
2271extern int
2272ncmpi_iput_var1_int(int ncid, int varid, const MPI_Offset *start,
2273                const int *op, int *req);
2274
2275extern int
2276ncmpi_iput_var1_float(int ncid, int varid, const MPI_Offset *start,
2277                const float *op, int *req);
2278
2279extern int
2280ncmpi_iput_var1_double(int ncid, int varid, const MPI_Offset *start,
2281                const double *op, int *req);
2282
2283extern int
2284ncmpi_iput_var1_longlong(int ncid, int varid, const MPI_Offset *start,
2285                const long long *op, int *req);
2286
2287extern int
2288ncmpi_iget_var1(int ncid, int varid, const MPI_Offset *start, void *ip,
2289                MPI_Offset bufcount, MPI_Datatype buftype, int *req);
2290
2291extern int
2292ncmpi_iget_var1_schar(int ncid, int varid, const MPI_Offset *start,
2293                signed char *ip, int *req);
2294
2295extern int
2296ncmpi_iget_var1_text(int ncid, int varid, const MPI_Offset *start,
2297                char *ip, int *req);
2298
2299extern int
2300ncmpi_iget_var1_short(int ncid, int varid, const MPI_Offset *start,
2301                short *ip, int *req);
2302
2303extern int
2304ncmpi_iget_var1_int(int ncid, int varid, const MPI_Offset *start,
2305                int *ip, int *req);
2306
2307extern int
2308ncmpi_iget_var1_float(int ncid, int varid, const MPI_Offset *start,
2309                float *ip, int *req);
2310
2311extern int
2312ncmpi_iget_var1_double(int ncid, int varid, const MPI_Offset *start,
2313                double *ip, int *req);
2314
2315extern int
2316ncmpi_iget_var1_longlong(int ncid, int varid, const MPI_Offset *start,
2317                long long *ip, int *req);
2318
2319extern int
2320ncmpi_bput_var1(int ncid, int varid, const MPI_Offset *start, const void *op,
2321                MPI_Offset bufcount, MPI_Datatype buftype, int *req);
2322
2323extern int
2324ncmpi_bput_var1_text(int ncid, int varid, const MPI_Offset *start,
2325                const char *op, int *req);
2326
2327extern int
2328ncmpi_bput_var1_schar(int ncid, int varid, const MPI_Offset *start,
2329                const signed char *op, int *req);
2330
2331extern int
2332ncmpi_bput_var1_short(int ncid, int varid, const MPI_Offset *start,
2333                const short *op, int *req);
2334
2335extern int
2336ncmpi_bput_var1_int(int ncid, int varid, const MPI_Offset *start,
2337                const int *op, int *req);
2338
2339extern int
2340ncmpi_bput_var1_float(int ncid, int varid, const MPI_Offset *start,
2341                const float *op, int *req);
2342
2343extern int
2344ncmpi_bput_var1_double(int ncid, int varid, const MPI_Offset *start,
2345                const double *op, int *req);
2346
2347extern int
2348ncmpi_bput_var1_longlong(int ncid, int varid, const MPI_Offset *start,
2349                const long long *op, int *req);
2350
2351/* Begin Skip Prototypes for Fortran binding */
2352/* skip types: uchar, ubyte, ushort, uint, long, ulonglong string */
2353
2354extern int
2355ncmpi_iput_var1_uchar(int ncid, int varid, const MPI_Offset *start,
2356                const unsigned char *op, int *req);
2357
2358extern int
2359ncmpi_iput_var1_ushort(int ncid, int varid, const MPI_Offset *start,
2360                const unsigned short *op, int *req);
2361
2362extern int
2363ncmpi_iput_var1_uint(int ncid, int varid, const MPI_Offset *start,
2364                const unsigned int *op, int *req);
2365
2366extern int
2367ncmpi_iput_var1_long(int ncid, int varid, const MPI_Offset *start,
2368                const long *ip, int *req);
2369
2370extern int
2371ncmpi_iput_var1_ulonglong(int ncid, int varid, const MPI_Offset *start,
2372                const unsigned long long *op, int *req);
2373
2374extern int
2375ncmpi_iget_var1_uchar(int ncid, int varid, const MPI_Offset *start,
2376                unsigned char *ip, int *req);
2377
2378extern int
2379ncmpi_iget_var1_ushort(int ncid, int varid, const MPI_Offset *start,
2380                unsigned short *ip, int *req);
2381
2382extern int
2383ncmpi_iget_var1_uint(int ncid, int varid, const MPI_Offset *start,
2384                unsigned int *ip, int *req);
2385
2386extern int
2387ncmpi_iget_var1_long(int ncid, int varid, const MPI_Offset *start,
2388                long *ip, int *req);
2389
2390extern int
2391ncmpi_iget_var1_ulonglong(int ncid, int varid, const MPI_Offset *start,
2392                unsigned long long *ip, int *req);
2393
2394extern int
2395ncmpi_bput_var1_uchar(int ncid, int varid, const MPI_Offset *start,
2396                const unsigned char *op, int *req);
2397
2398extern int
2399ncmpi_bput_var1_ushort(int ncid, int varid, const MPI_Offset *start,
2400                const unsigned short *op, int *req);
2401
2402extern int
2403ncmpi_bput_var1_uint(int ncid, int varid, const MPI_Offset *start,
2404                const unsigned int *op, int *req);
2405
2406extern int
2407ncmpi_bput_var1_long(int ncid, int varid, const MPI_Offset *start,
2408                const long *ip, int *req);
2409
2410extern int
2411ncmpi_bput_var1_ulonglong(int ncid, int varid, const MPI_Offset *start,
2412                const unsigned long long *op, int *req);
2413
2414/* End Skip Prototypes for Fortran binding */
2415
2416/* End {iput,iget,bput}_var1 */
2417
2418/* Begin {iput,iget,bput}_var */
2419
2420extern int
2421ncmpi_iput_var(int ncid, int varid, const void *op, MPI_Offset bufcount,
2422               MPI_Datatype buftype, int *req);
2423
2424extern int
2425ncmpi_iput_var_schar(int ncid, int varid, const signed char *op, int *req);
2426
2427extern int
2428ncmpi_iput_var_text(int ncid, int varid, const char *op, int *req);
2429
2430extern int
2431ncmpi_iput_var_short(int ncid, int varid, const short *op, int *req);
2432
2433extern int
2434ncmpi_iput_var_int(int ncid, int varid, const int *op, int *req);
2435
2436extern int
2437ncmpi_iput_var_float(int ncid, int varid, const float *op, int *req);
2438
2439extern int
2440ncmpi_iput_var_double(int ncid, int varid, const double *op, int *req);
2441
2442extern int
2443ncmpi_iput_var_longlong(int ncid, int varid, const long long *op, int *req);
2444
2445extern int
2446ncmpi_iget_var(int ncid, int varid, void *ip, MPI_Offset bufcount,
2447               MPI_Datatype buftype, int *req);
2448
2449extern int
2450ncmpi_iget_var_schar(int ncid, int varid, signed char *ip, int *req);
2451
2452extern int
2453ncmpi_iget_var_text(int ncid, int varid, char *ip, int *req);
2454
2455extern int
2456ncmpi_iget_var_short(int ncid, int varid, short *ip, int *req);
2457
2458extern int
2459ncmpi_iget_var_int(int ncid, int varid, int *ip, int *req);
2460
2461extern int
2462ncmpi_iget_var_float(int ncid, int varid, float *ip, int *req);
2463
2464extern int
2465ncmpi_iget_var_double(int ncid, int varid, double *ip, int *req);
2466
2467extern int
2468ncmpi_iget_var_longlong(int ncid, int varid, long long *ip, int *req);
2469
2470extern int
2471ncmpi_bput_var(int ncid, int varid, const void *op, MPI_Offset bufcount,
2472               MPI_Datatype buftype, int *req);
2473
2474extern int
2475ncmpi_bput_var_schar(int ncid, int varid, const signed char *op, int *req);
2476
2477extern int
2478ncmpi_bput_var_text(int ncid, int varid, const char *op, int *req);
2479
2480extern int
2481ncmpi_bput_var_short(int ncid, int varid, const short *op, int *req);
2482
2483extern int
2484ncmpi_bput_var_int(int ncid, int varid, const int *op, int *req);
2485
2486extern int
2487ncmpi_bput_var_float(int ncid, int varid, const float *op, int *req);
2488
2489extern int
2490ncmpi_bput_var_double(int ncid, int varid, const double *op, int *req);
2491
2492extern int
2493ncmpi_bput_var_longlong(int ncid, int varid, const long long *op, int *req);
2494
2495/* Begin Skip Prototypes for Fortran binding */
2496/* skip types: uchar, ubyte, ushort, uint, long, ulonglong string */
2497
2498extern int
2499ncmpi_iput_var_uchar(int ncid, int varid, const unsigned char *op, int *req);
2500
2501extern int
2502ncmpi_iput_var_ushort(int ncid, int varid, const unsigned short *op, int *req);
2503
2504extern int
2505ncmpi_iput_var_uint(int ncid, int varid, const unsigned int *op, int *req);
2506
2507extern int
2508ncmpi_iput_var_long(int ncid, int varid, const long *op, int *req);
2509
2510extern int
2511ncmpi_iput_var_ulonglong(int ncid, int varid, const unsigned long long *op,
2512               int *req);
2513
2514extern int
2515ncmpi_iget_var_uchar(int ncid, int varid, unsigned char *ip, int *req);
2516
2517extern int
2518ncmpi_iget_var_ushort(int ncid, int varid, unsigned short *ip, int *req);
2519
2520extern int
2521ncmpi_iget_var_uint(int ncid, int varid, unsigned int *ip, int *req);
2522
2523extern int
2524ncmpi_iget_var_long(int ncid, int varid, long *ip, int *req);
2525
2526extern int
2527ncmpi_iget_var_ulonglong(int ncid, int varid, unsigned long long *ip, int *req);
2528
2529extern int
2530ncmpi_bput_var_uchar(int ncid, int varid, const unsigned char *op, int *req);
2531
2532extern int
2533ncmpi_bput_var_ushort(int ncid, int varid, const unsigned short *op, int *req);
2534
2535extern int
2536ncmpi_bput_var_uint(int ncid, int varid, const unsigned int *op, int *req);
2537
2538extern int
2539ncmpi_bput_var_long(int ncid, int varid, const long *op, int *req);
2540
2541extern int
2542ncmpi_bput_var_ulonglong(int ncid, int varid, const unsigned long long *op,
2543               int *req);
2544
2545/* End Skip Prototypes for Fortran binding */
2546
2547/* End {iput,iget,bput}_var */
2548
2549/* Begin {iput,iget,bput}_vara */
2550
2551extern int
2552ncmpi_iput_vara(int ncid, int varid, const MPI_Offset *start,
2553                const MPI_Offset *count, const void *op,
2554                MPI_Offset bufcount, MPI_Datatype buftype, int *req);
2555
2556extern int
2557ncmpi_iput_vara_schar(int ncid, int varid, const MPI_Offset *start,
2558                const MPI_Offset *count, const signed char *op, int *req);
2559
2560extern int
2561ncmpi_iput_vara_text(int ncid, int varid, const MPI_Offset *start,
2562                const MPI_Offset *count, const char *op, int *req);
2563
2564extern int
2565ncmpi_iput_vara_short(int ncid, int varid, const MPI_Offset *start,
2566                const MPI_Offset *count, const short *op, int *req);
2567
2568extern int
2569ncmpi_iput_vara_int(int ncid, int varid, const MPI_Offset *start,
2570                const MPI_Offset *count, const int *op, int *req);
2571
2572extern int
2573ncmpi_iput_vara_float(int ncid, int varid, const MPI_Offset *start,
2574                const MPI_Offset *count, const float *op, int *req);
2575
2576extern int
2577ncmpi_iput_vara_double(int ncid, int varid, const MPI_Offset *start,
2578                const MPI_Offset *count, const double *op, int *req);
2579
2580extern int
2581ncmpi_iput_vara_longlong(int ncid, int varid, const MPI_Offset *start,
2582                const MPI_Offset *count, const long long *op, int *req);
2583
2584extern int
2585ncmpi_iget_vara(int ncid, int varid, const MPI_Offset *start,
2586                const MPI_Offset *count, void *ip, MPI_Offset bufcount,
2587                MPI_Datatype buftype, int *req);
2588
2589extern int
2590ncmpi_iget_vara_schar(int ncid, int varid, const MPI_Offset *start,
2591                const MPI_Offset *count, signed char *ip, int *req);
2592
2593extern int
2594ncmpi_iget_vara_text(int ncid, int varid, const MPI_Offset *start,
2595                const MPI_Offset *count, char *ip, int *req);
2596
2597extern int
2598ncmpi_iget_vara_short(int ncid, int varid, const MPI_Offset *start,
2599                const MPI_Offset *count, short *ip, int *req);
2600
2601extern int
2602ncmpi_iget_vara_int(int ncid, int varid, const MPI_Offset *start,
2603                const MPI_Offset *count, int *ip, int *req);
2604
2605extern int
2606ncmpi_iget_vara_float(int ncid, int varid, const MPI_Offset *start,
2607                const MPI_Offset *count, float *ip, int *req);
2608
2609extern int
2610ncmpi_iget_vara_double(int ncid, int varid, const MPI_Offset *start,
2611                const MPI_Offset *count, double *ip, int *req);
2612
2613extern int
2614ncmpi_iget_vara_longlong(int ncid, int varid, const MPI_Offset *start,
2615                const MPI_Offset *count, long long *ip, int *req);
2616
2617extern int
2618ncmpi_bput_vara(int ncid, int varid, const MPI_Offset *start,
2619                const MPI_Offset *count, const void *op,
2620                MPI_Offset bufcount, MPI_Datatype buftype, int *req);
2621
2622extern int
2623ncmpi_bput_vara_schar(int ncid, int varid, const MPI_Offset *start,
2624                const MPI_Offset *count, const signed char *op, int *req);
2625
2626extern int
2627ncmpi_bput_vara_text(int ncid, int varid, const MPI_Offset *start,
2628                const MPI_Offset *count, const char *op, int *req);
2629
2630extern int
2631ncmpi_bput_vara_short(int ncid, int varid, const MPI_Offset *start,
2632                const MPI_Offset *count, const short *op, int *req);
2633
2634extern int
2635ncmpi_bput_vara_int(int ncid, int varid, const MPI_Offset *start,
2636                const MPI_Offset *count, const int *op, int *req);
2637
2638extern int
2639ncmpi_bput_vara_float(int ncid, int varid, const MPI_Offset *start,
2640                const MPI_Offset *count, const float *op, int *req);
2641
2642extern int
2643ncmpi_bput_vara_double(int ncid, int varid, const MPI_Offset *start,
2644                const MPI_Offset *count, const double *op, int *req);
2645
2646extern int
2647ncmpi_bput_vara_longlong(int ncid, int varid, const MPI_Offset *start,
2648                const MPI_Offset *count, const long long *op, int *req);
2649
2650/* Begin Skip Prototypes for Fortran binding */
2651/* skip types: uchar, ubyte, ushort, uint, long, ulonglong string */
2652
2653extern int
2654ncmpi_iput_vara_uchar(int ncid, int varid, const MPI_Offset *start,
2655                const MPI_Offset *count, const unsigned char *op, int *req);
2656
2657extern int
2658ncmpi_iput_vara_ushort(int ncid, int varid, const MPI_Offset *start,
2659                const MPI_Offset *count, const unsigned short *op, int *req);
2660
2661extern int
2662ncmpi_iput_vara_uint(int ncid, int varid, const MPI_Offset *start,
2663                const MPI_Offset *count, const unsigned int *op, int *req);
2664
2665extern int
2666ncmpi_iput_vara_long(int ncid, int varid, const MPI_Offset *start,
2667                const MPI_Offset *count, const long *op, int *req);
2668
2669extern int
2670ncmpi_iput_vara_ulonglong(int ncid, int varid, const MPI_Offset *start,
2671                const MPI_Offset *count, const unsigned long long *op,
2672                int *req);
2673
2674extern int
2675ncmpi_iget_vara_uchar(int ncid, int varid, const MPI_Offset *start,
2676                const MPI_Offset *count, unsigned char *ip, int *req);
2677
2678extern int
2679ncmpi_iget_vara_ushort(int ncid, int varid, const MPI_Offset *start,
2680                const MPI_Offset *count, unsigned short *ip, int *req);
2681
2682extern int
2683ncmpi_iget_vara_uint(int ncid, int varid, const MPI_Offset *start,
2684                const MPI_Offset *count, unsigned int *ip, int *req);
2685
2686extern int
2687ncmpi_iget_vara_long(int ncid, int varid, const MPI_Offset *start,
2688                const MPI_Offset *count, long *ip, int *req);
2689
2690extern int
2691ncmpi_iget_vara_ulonglong(int ncid, int varid, const MPI_Offset *start,
2692                const MPI_Offset *count, unsigned long long *ip, int *req);
2693
2694extern int
2695ncmpi_bput_vara_uchar(int ncid, int varid, const MPI_Offset *start,
2696                const MPI_Offset *count, const unsigned char *op, int *req);
2697
2698extern int
2699ncmpi_bput_vara_ushort(int ncid, int varid, const MPI_Offset *start,
2700                const MPI_Offset *count, const unsigned short *op, int *req);
2701
2702extern int
2703ncmpi_bput_vara_uint(int ncid, int varid, const MPI_Offset *start,
2704                const MPI_Offset *count, const unsigned int *op, int *req);
2705
2706extern int
2707ncmpi_bput_vara_long(int ncid, int varid, const MPI_Offset *start,
2708                const MPI_Offset *count, const long *op, int *req);
2709
2710extern int
2711ncmpi_bput_vara_ulonglong(int ncid, int varid, const MPI_Offset *start,
2712                const MPI_Offset *count, const unsigned long long *op,
2713                int *req);
2714
2715/* End Skip Prototypes for Fortran binding */
2716
2717/* End {iput,iget,bput}_vara */
2718
2719/* Begin {iput,iget,bput}_vars */
2720
2721extern int
2722ncmpi_iput_vars(int ncid, int varid, const MPI_Offset *start,
2723                const MPI_Offset *count, const MPI_Offset *stride,
2724                const void *op, MPI_Offset bufcount,
2725                MPI_Datatype buftype, int *req);
2726
2727extern int
2728ncmpi_iput_vars_schar(int ncid, int varid, const MPI_Offset *start,
2729                const MPI_Offset *count, const MPI_Offset *stride,
2730                const signed char *op, int *req);
2731
2732extern int
2733ncmpi_iput_vars_text(int ncid, int varid, const MPI_Offset *start,
2734                const MPI_Offset *count, const MPI_Offset *stride,
2735                const char *op, int *req);
2736
2737extern int
2738ncmpi_iput_vars_short(int ncid, int varid, const MPI_Offset *start,
2739                const MPI_Offset *count, const MPI_Offset *stride,
2740                const short *op, int *req);
2741
2742extern int
2743ncmpi_iput_vars_int(int ncid, int varid, const MPI_Offset *start,
2744                const MPI_Offset *count, const MPI_Offset *stride,
2745                const int *op, int *req);
2746
2747extern int
2748ncmpi_iput_vars_float(int ncid, int varid, const MPI_Offset *start,
2749                const MPI_Offset *count, const MPI_Offset *stride,
2750                const float *op, int *req);
2751
2752extern int
2753ncmpi_iput_vars_double(int ncid, int varid, const MPI_Offset *start,
2754                const MPI_Offset *count, const MPI_Offset *stride,
2755                const double *op, int *req);
2756
2757extern int
2758ncmpi_iput_vars_longlong(int ncid, int varid, const MPI_Offset *start,
2759                const MPI_Offset *count, const MPI_Offset *stride,
2760                const long long *op, int *req);
2761
2762extern int
2763ncmpi_iget_vars(int ncid, int varid, const MPI_Offset *start,
2764                const MPI_Offset *count, const MPI_Offset *stride, void *ip,
2765                MPI_Offset bufcount, MPI_Datatype buftype, int *req);
2766
2767extern int
2768ncmpi_iget_vars_schar(int ncid, int varid, const MPI_Offset *start,
2769                const MPI_Offset *count, const MPI_Offset *stride,
2770                signed char *ip, int *req);
2771
2772extern int
2773ncmpi_iget_vars_text(int ncid, int varid, const MPI_Offset *start,
2774                const MPI_Offset *count, const MPI_Offset *stride,
2775                char *ip, int *req);
2776
2777extern int
2778ncmpi_iget_vars_short(int ncid, int varid, const MPI_Offset *start,
2779                const MPI_Offset *count, const MPI_Offset *stride,
2780                short *ip, int *req);
2781
2782extern int
2783ncmpi_iget_vars_int(int ncid, int varid, const MPI_Offset *start,
2784                const MPI_Offset *count, const MPI_Offset *stride,
2785                int *ip, int *req);
2786
2787extern int
2788ncmpi_iget_vars_float(int ncid, int varid, const MPI_Offset *start,
2789                const MPI_Offset *count, const MPI_Offset *stride,
2790                float *ip, int *req);
2791
2792extern int
2793ncmpi_iget_vars_double(int ncid, int varid, const MPI_Offset *start,
2794                const MPI_Offset *count, const MPI_Offset *stride,
2795                double *ip, int *req);
2796
2797extern int
2798ncmpi_iget_vars_longlong(int ncid, int varid, const MPI_Offset *start,
2799                const MPI_Offset *count, const MPI_Offset *stride,
2800                long long *ip, int *req);
2801
2802extern int
2803ncmpi_bput_vars(int ncid, int varid, const MPI_Offset *start,
2804                const MPI_Offset *count, const MPI_Offset *stride,
2805                const void *op, MPI_Offset bufcount,
2806                MPI_Datatype buftype, int *req);
2807
2808extern int
2809ncmpi_bput_vars_schar(int ncid, int varid, const MPI_Offset *start,
2810                const MPI_Offset *count, const MPI_Offset *stride,
2811                const signed char *op, int *req);
2812
2813extern int
2814ncmpi_bput_vars_text(int ncid, int varid, const MPI_Offset *start,
2815                const MPI_Offset *count, const MPI_Offset *stride,
2816                const char *op, int *req);
2817
2818extern int
2819ncmpi_bput_vars_short(int ncid, int varid, const MPI_Offset *start,
2820                const MPI_Offset *count, const MPI_Offset *stride,
2821                const short *op, int *req);
2822
2823extern int
2824ncmpi_bput_vars_int(int ncid, int varid, const MPI_Offset *start,
2825                const MPI_Offset *count, const MPI_Offset *stride,
2826                const int *op, int *req);
2827
2828extern int
2829ncmpi_bput_vars_float(int ncid, int varid, const MPI_Offset *start,
2830                const MPI_Offset *count, const MPI_Offset *stride,
2831                const float *op, int *req);
2832
2833extern int
2834ncmpi_bput_vars_double(int ncid, int varid, const MPI_Offset *start,
2835                const MPI_Offset *count, const MPI_Offset *stride,
2836                const double *op, int *req);
2837
2838extern int
2839ncmpi_bput_vars_longlong(int ncid, int varid, const MPI_Offset *start,
2840                const MPI_Offset *count, const MPI_Offset *stride,
2841                const long long *op, int *req);
2842
2843/* Begin Skip Prototypes for Fortran binding */
2844/* skip types: uchar, ubyte, ushort, uint, long, ulonglong string */
2845
2846extern int
2847ncmpi_iput_vars_uchar(int ncid, int varid, const MPI_Offset *start,
2848                const MPI_Offset *count, const MPI_Offset *stride,
2849                const unsigned char *op, int *req);
2850
2851extern int
2852ncmpi_iput_vars_ushort(int ncid, int varid, const MPI_Offset *start,
2853                const MPI_Offset *count, const MPI_Offset *stride,
2854                const unsigned short *op, int *req);
2855
2856extern int
2857ncmpi_iput_vars_uint(int ncid, int varid, const MPI_Offset *start,
2858                const MPI_Offset *count, const MPI_Offset *stride,
2859                const unsigned int *op, int *req);
2860
2861extern int
2862ncmpi_iput_vars_long(int ncid, int varid, const MPI_Offset *start,
2863                const MPI_Offset *count, const MPI_Offset *stride,
2864                const long *op, int *req);
2865
2866extern int
2867ncmpi_iput_vars_ulonglong(int ncid, int varid, const MPI_Offset *start,
2868                const MPI_Offset *count, const MPI_Offset *stride,
2869                const unsigned long long *op, int *req);
2870
2871extern int
2872ncmpi_iget_vars_uchar(int ncid, int varid, const MPI_Offset *start,
2873                const MPI_Offset *count, const MPI_Offset *stride,
2874                unsigned char *ip, int *req);
2875
2876extern int
2877ncmpi_iget_vars_ushort(int ncid, int varid, const MPI_Offset *start,
2878                const MPI_Offset *count, const MPI_Offset *stride,
2879                unsigned short *ip, int *req);
2880
2881extern int
2882ncmpi_iget_vars_uint(int ncid, int varid, const MPI_Offset *start,
2883                const MPI_Offset *count, const MPI_Offset *stride,
2884                unsigned int *ip, int *req);
2885
2886extern int
2887ncmpi_iget_vars_long(int ncid, int varid, const MPI_Offset *start,
2888                const MPI_Offset *count, const MPI_Offset *stride,
2889                long *ip, int *req);
2890
2891extern int
2892ncmpi_iget_vars_ulonglong(int ncid, int varid, const MPI_Offset *start,
2893                const MPI_Offset *count, const MPI_Offset *stride,
2894                unsigned long long *ip, int *req);
2895
2896extern int
2897ncmpi_bput_vars_uchar(int ncid, int varid, const MPI_Offset *start,
2898                const MPI_Offset *count, const MPI_Offset *stride,
2899                const unsigned char *op, int *req);
2900
2901extern int
2902ncmpi_bput_vars_ushort(int ncid, int varid, const MPI_Offset *start,
2903                const MPI_Offset *count, const MPI_Offset *stride,
2904                const unsigned short *op, int *req);
2905
2906extern int
2907ncmpi_bput_vars_uint(int ncid, int varid, const MPI_Offset *start,
2908                const MPI_Offset *count, const MPI_Offset *stride,
2909                const unsigned int *op, int *req);
2910
2911extern int
2912ncmpi_bput_vars_long(int ncid, int varid, const MPI_Offset *start,
2913                const MPI_Offset *count, const MPI_Offset *stride,
2914                const long *op, int *req);
2915
2916extern int
2917ncmpi_bput_vars_ulonglong(int ncid, int varid, const MPI_Offset *start,
2918                const MPI_Offset *count, const MPI_Offset *stride,
2919                const unsigned long long *op, int *req);
2920
2921/* End Skip Prototypes for Fortran binding */
2922
2923/* End {iput,iget,bput}_vars */
2924
2925/* Begin {iput,iget,bput}_varm */
2926
2927extern int
2928ncmpi_iput_varm(int ncid, int varid, const MPI_Offset *start,
2929                const MPI_Offset *count, const MPI_Offset *stride,
2930                const MPI_Offset *imap, const void *op,
2931                MPI_Offset bufcount, MPI_Datatype buftype, int *req);
2932
2933extern int
2934ncmpi_iput_varm_schar(int ncid, int varid, const MPI_Offset *start,
2935                const MPI_Offset *count, const MPI_Offset *stride,
2936                const MPI_Offset *imap, const signed char *op,
2937                int *req);
2938
2939extern int
2940ncmpi_iput_varm_text(int ncid, int varid, const MPI_Offset *start,
2941                const MPI_Offset *count, const MPI_Offset *stride,
2942                const MPI_Offset *imap, const char *op, int *req);
2943
2944extern int
2945ncmpi_iput_varm_short(int ncid, int varid, const MPI_Offset *start,
2946                const MPI_Offset *count, const MPI_Offset *stride,
2947                const MPI_Offset *imap, const short *op, int *req);
2948
2949extern int
2950ncmpi_iput_varm_int(int ncid, int varid, const MPI_Offset *start,
2951                const MPI_Offset *count, const MPI_Offset *stride,
2952                const MPI_Offset *imap, const int *op, int *req);
2953
2954extern int
2955ncmpi_iput_varm_float(int ncid, int varid, const MPI_Offset *start,
2956                const MPI_Offset *count, const MPI_Offset *stride,
2957                const MPI_Offset *imap, const float *op, int *req);
2958
2959extern int
2960ncmpi_iput_varm_double(int ncid, int varid, const MPI_Offset *start,
2961                const MPI_Offset *count, const MPI_Offset *stride,
2962                const MPI_Offset *imap, const double *op, int *req);
2963
2964extern int
2965ncmpi_iput_varm_longlong(int ncid, int varid, const MPI_Offset *start,
2966                const MPI_Offset *count, const MPI_Offset *stride,
2967                const MPI_Offset *imap, const long long *op, int *req);
2968
2969extern int
2970ncmpi_iget_varm(int ncid, int varid, const MPI_Offset *start,
2971                const MPI_Offset *count, const MPI_Offset *stride,
2972                const MPI_Offset *imap, void *ip, MPI_Offset bufcount,
2973                MPI_Datatype buftype, int *req);
2974
2975extern int
2976ncmpi_iget_varm_schar(int ncid, int varid, const MPI_Offset *start,
2977                const MPI_Offset *count, const MPI_Offset *stride,
2978                const MPI_Offset *imap, signed char *ip, int *req);
2979
2980extern int
2981ncmpi_iget_varm_text(int ncid, int varid, const MPI_Offset *start,
2982                const MPI_Offset *count, const MPI_Offset *stride,
2983                const MPI_Offset *imap, char *ip, int *req);
2984
2985extern int
2986ncmpi_iget_varm_short(int ncid, int varid, const MPI_Offset *start,
2987                const MPI_Offset *count, const MPI_Offset *stride,
2988                const MPI_Offset *imap, short *ip, int *req);
2989
2990extern int
2991ncmpi_iget_varm_int(int ncid, int varid, const MPI_Offset *start,
2992                const MPI_Offset *count, const MPI_Offset *stride,
2993                const MPI_Offset *imap, int *ip, int *req);
2994
2995extern int
2996ncmpi_iget_varm_float(int ncid, int varid, const MPI_Offset *start,
2997                const MPI_Offset *count, const MPI_Offset *stride,
2998                const MPI_Offset *imap, float *ip, int *req);
2999
3000extern int
3001ncmpi_iget_varm_double(int ncid, int varid, const MPI_Offset *start,
3002                const MPI_Offset *count, const MPI_Offset *stride,
3003                const MPI_Offset *imap, double *ip, int *req);
3004
3005extern int
3006ncmpi_iget_varm_longlong(int ncid, int varid, const MPI_Offset *start,
3007                const MPI_Offset *count, const MPI_Offset *stride,
3008                const MPI_Offset *imap, long long *ip, int *req);
3009
3010extern int
3011ncmpi_bput_varm(int ncid, int varid, const MPI_Offset *start,
3012                const MPI_Offset *count, const MPI_Offset *stride,
3013                const MPI_Offset *imap, const void *op,
3014                MPI_Offset bufcount, MPI_Datatype buftype, int *req);
3015
3016extern int
3017ncmpi_bput_varm_schar(int ncid, int varid, const MPI_Offset *start,
3018                const MPI_Offset *count, const MPI_Offset *stride,
3019                const MPI_Offset *imap, const signed char *op, int *req);
3020
3021extern int
3022ncmpi_bput_varm_text(int ncid, int varid, const MPI_Offset *start,
3023                const MPI_Offset *count, const MPI_Offset *stride,
3024                const MPI_Offset *imap, const char *op, int *req);
3025
3026extern int
3027ncmpi_bput_varm_short(int ncid, int varid, const MPI_Offset *start,
3028                const MPI_Offset *count, const MPI_Offset *stride,
3029                const MPI_Offset *imap, const short *op, int *req);
3030
3031extern int
3032ncmpi_bput_varm_int(int ncid, int varid, const MPI_Offset *start,
3033                const MPI_Offset *count, const MPI_Offset *stride,
3034                const MPI_Offset *imap, const int *op, int *req);
3035
3036extern int
3037ncmpi_bput_varm_float(int ncid, int varid, const MPI_Offset *start,
3038                const MPI_Offset *count, const MPI_Offset *stride,
3039                const MPI_Offset *imap, const float *op, int *req);
3040
3041extern int
3042ncmpi_bput_varm_double(int ncid, int varid, const MPI_Offset *start,
3043                const MPI_Offset *count, const MPI_Offset *stride,
3044                const MPI_Offset *imap, const double *op, int *req);
3045
3046extern int
3047ncmpi_bput_varm_longlong(int ncid, int varid, const MPI_Offset *start,
3048                const MPI_Offset *count, const MPI_Offset *stride,
3049                const MPI_Offset *imap, const long long *op, int *req);
3050
3051/* Begin Skip Prototypes for Fortran binding */
3052/* skip types: uchar, ubyte, ushort, uint, long, ulonglong string */
3053
3054extern int
3055ncmpi_iput_varm_uchar(int ncid, int varid, const MPI_Offset *start,
3056                const MPI_Offset *count, const MPI_Offset *stride,
3057                const MPI_Offset *imap, const unsigned char *op, int *req);
3058
3059extern int
3060ncmpi_iput_varm_ushort(int ncid, int varid, const MPI_Offset *start,
3061                const MPI_Offset *count, const MPI_Offset *stride,
3062                const MPI_Offset *imap, const unsigned short *op, int *req);
3063
3064extern int
3065ncmpi_iput_varm_uint(int ncid, int varid, const MPI_Offset *start,
3066                const MPI_Offset *count, const MPI_Offset *stride,
3067                const MPI_Offset *imap, const unsigned int *op, int *req);
3068
3069extern int
3070ncmpi_iput_varm_long(int ncid, int varid, const MPI_Offset *start,
3071                const MPI_Offset *count, const MPI_Offset *stride,
3072                const MPI_Offset *imap, const long *op, int *req);
3073
3074extern int
3075ncmpi_iput_varm_ulonglong(int ncid, int varid, const MPI_Offset *start,
3076                const MPI_Offset *count, const MPI_Offset *stride,
3077                const MPI_Offset *imap, const unsigned long long *op,
3078                int *req);
3079
3080extern int
3081ncmpi_iget_varm_uchar(int ncid, int varid, const MPI_Offset *start,
3082                const MPI_Offset *count, const MPI_Offset *stride,
3083                const MPI_Offset *imap, unsigned char *ip, int *req);
3084
3085extern int
3086ncmpi_iget_varm_ushort(int ncid, int varid, const MPI_Offset *start,
3087                const MPI_Offset *count, const MPI_Offset *stride,
3088                const MPI_Offset *imap, unsigned short *ip, int *req);
3089
3090extern int
3091ncmpi_iget_varm_uint(int ncid, int varid, const MPI_Offset *start,
3092                const MPI_Offset *count, const MPI_Offset *stride,
3093                const MPI_Offset *imap, unsigned int *ip, int *req);
3094
3095extern int
3096ncmpi_iget_varm_long(int ncid, int varid, const MPI_Offset *start,
3097                const MPI_Offset *count, const MPI_Offset *stride,
3098                const MPI_Offset *imap, long *ip, int *req);
3099
3100extern int
3101ncmpi_iget_varm_ulonglong(int ncid, int varid, const MPI_Offset *start,
3102                const MPI_Offset *count, const MPI_Offset *stride,
3103                const MPI_Offset *imap, unsigned long long *ip, int *req);
3104
3105extern int
3106ncmpi_bput_varm_uchar(int ncid, int varid, const MPI_Offset *start,
3107                const MPI_Offset *count, const MPI_Offset *stride,
3108                const MPI_Offset *imap, const unsigned char *op,
3109                int *req);
3110
3111extern int
3112ncmpi_bput_varm_ushort(int ncid, int varid, const MPI_Offset *start,
3113                const MPI_Offset *count, const MPI_Offset *stride,
3114                const MPI_Offset *imap, const unsigned short *op,
3115                int *req);
3116
3117extern int
3118ncmpi_bput_varm_uint(int ncid, int varid, const MPI_Offset *start,
3119                const MPI_Offset *count, const MPI_Offset *stride,
3120                const MPI_Offset *imap, const unsigned int *op,
3121                int *req);
3122
3123extern int
3124ncmpi_bput_varm_long(int ncid, int varid, const MPI_Offset *start,
3125                const MPI_Offset *count, const MPI_Offset *stride,
3126                const MPI_Offset *imap, const long *op, int *req);
3127
3128extern int
3129ncmpi_bput_varm_ulonglong(int ncid, int varid, const MPI_Offset *start,
3130                const MPI_Offset *count, const MPI_Offset *stride,
3131                const MPI_Offset *imap, const unsigned long long *op,
3132                int *req);
3133
3134/* End Skip Prototypes for Fortran binding */
3135
3136/* End {iput,iget,bput}_varm */
3137
3138/* Begin of nonblocking {iput,iget}_varn{kind} */
3139
3140extern int
3141ncmpi_iput_varn(int ncid, int varid, int num, MPI_Offset* const *starts,
3142                MPI_Offset* const *counts, const void *op,
3143                MPI_Offset bufcount, MPI_Datatype buftype, int *req);
3144
3145extern int
3146ncmpi_iget_varn(int ncid, int varid, int num, MPI_Offset* const *starts,
3147                MPI_Offset* const *counts,  void *op, MPI_Offset bufcount,
3148                MPI_Datatype buftype, int *req);
3149
3150extern int
3151ncmpi_iput_varn_text(int ncid, int varid, int num,
3152                MPI_Offset* const *starts,
3153                MPI_Offset* const *counts, const char *op, int *req);
3154
3155extern int
3156ncmpi_iput_varn_schar(int ncid, int varid, int num,
3157               MPI_Offset* const *starts, MPI_Offset* const *counts,
3158               const signed char *op, int *req);
3159
3160extern int
3161ncmpi_iput_varn_short(int ncid, int varid, int num,
3162               MPI_Offset* const *starts, MPI_Offset* const *counts,
3163               const short *op, int *req);
3164
3165extern int
3166ncmpi_iput_varn_int(int ncid, int varid, int num,
3167               MPI_Offset* const *starts, MPI_Offset* const *counts,
3168               const int *op, int *req);
3169
3170extern int
3171ncmpi_iput_varn_float(int ncid, int varid, int num,
3172               MPI_Offset* const *starts, MPI_Offset* const *counts,
3173               const float *op, int *req);
3174
3175extern int
3176ncmpi_iput_varn_double(int ncid, int varid, int num,
3177               MPI_Offset* const *starts, MPI_Offset* const *counts,
3178               const double *op, int *req);
3179
3180extern int
3181ncmpi_iput_varn_longlong(int ncid, int varid, int num,
3182               MPI_Offset* const *starts, MPI_Offset* const *counts,
3183               const long long *op, int *req);
3184
3185
3186/* Begin Skip Prototypes for Fortran binding */
3187/* skip types: uchar, ubyte, ushort, uint, long, ulonglong string */
3188
3189extern int
3190ncmpi_iput_varn_uchar(int ncid, int varid, int num,
3191               MPI_Offset* const *starts, MPI_Offset* const *counts,
3192               const unsigned char *op, int *req);
3193
3194extern int
3195ncmpi_iput_varn_ushort(int ncid, int varid, int num,
3196               MPI_Offset* const *starts, MPI_Offset* const *counts,
3197               const unsigned short *op, int *req);
3198
3199extern int
3200ncmpi_iput_varn_uint(int ncid, int varid, int num,
3201               MPI_Offset* const *starts, MPI_Offset* const *counts,
3202               const unsigned int *op, int *req);
3203
3204extern int
3205ncmpi_iput_varn_long(int ncid, int varid, int num,
3206               MPI_Offset* const *starts, MPI_Offset* const *counts,
3207               const long *op, int *req);
3208
3209extern int
3210ncmpi_iput_varn_ulonglong(int ncid, int varid, int num,
3211               MPI_Offset* const *starts, MPI_Offset* const *counts,
3212               const unsigned long long *op, int *req);
3213
3214/* End Skip Prototypes for Fortran binding */
3215
3216extern int
3217ncmpi_iget_varn_text(int ncid, int varid, int num,
3218               MPI_Offset* const *starts, MPI_Offset* const *counts,
3219               char *ip, int *req);
3220
3221extern int
3222ncmpi_iget_varn_schar(int ncid, int varid, int num,
3223               MPI_Offset* const *starts, MPI_Offset* const *counts,
3224               signed char *ip, int *req);
3225
3226extern int
3227ncmpi_iget_varn_short(int ncid, int varid, int num,
3228               MPI_Offset* const *starts, MPI_Offset* const *counts,
3229               short *ip, int *req);
3230
3231extern int
3232ncmpi_iget_varn_int(int ncid, int varid, int num,
3233               MPI_Offset* const *starts, MPI_Offset* const *counts,
3234               int *ip, int *req);
3235
3236extern int
3237ncmpi_iget_varn_float(int ncid, int varid, int num,
3238               MPI_Offset* const *starts, MPI_Offset* const *counts,
3239               float *ip, int *req);
3240
3241extern int
3242ncmpi_iget_varn_double(int ncid, int varid, int num,
3243               MPI_Offset* const *starts, MPI_Offset* const *counts,
3244               double *ip, int *req);
3245
3246extern int
3247ncmpi_iget_varn_longlong(int ncid, int varid, int num,
3248               MPI_Offset* const *starts, MPI_Offset* const *counts,
3249               long long *ip, int *req);
3250
3251
3252/* Begin Skip Prototypes for Fortran binding */
3253/* skip types: uchar, ubyte, ushort, uint, long, ulonglong string */
3254
3255extern int
3256ncmpi_iget_varn_uchar(int ncid, int varid, int num,
3257               MPI_Offset* const *starts, MPI_Offset* const *counts,
3258               unsigned char *ip, int *req);
3259
3260extern int
3261ncmpi_iget_varn_ushort(int ncid, int varid, int num,
3262               MPI_Offset* const *starts, MPI_Offset* const *counts,
3263               unsigned short *ip, int *req);
3264
3265extern int
3266ncmpi_iget_varn_uint(int ncid, int varid, int num,
3267               MPI_Offset* const *starts, MPI_Offset* const *counts,
3268               unsigned int *ip, int *req);
3269
3270extern int
3271ncmpi_iget_varn_long(int ncid, int varid, int num,
3272               MPI_Offset* const *starts, MPI_Offset* const *counts,
3273               long *ip, int *req);
3274
3275extern int
3276ncmpi_iget_varn_ulonglong(int ncid, int varid, int num,
3277               MPI_Offset* const *starts, MPI_Offset* const *counts,
3278               unsigned long long *ip, int *req);
3279
3280/* End Skip Prototypes for Fortran binding */
3281
3282/* End of {iput,iget}_varn{kind} */
3283
3284/* Begin of nonblocking bput_varn{kind} */
3285
3286extern int
3287ncmpi_bput_varn(int ncid, int varid, int num, MPI_Offset* const *starts,
3288               MPI_Offset* const *counts, const void *op,
3289               MPI_Offset bufcount, MPI_Datatype buftype, int *req);
3290
3291extern int
3292ncmpi_bput_varn_text(int ncid, int varid, int num,
3293               MPI_Offset* const *starts, MPI_Offset* const *counts,
3294               const char *op, int *req);
3295
3296extern int
3297ncmpi_bput_varn_schar(int ncid, int varid, int num,
3298               MPI_Offset* const *starts, MPI_Offset* const *counts,
3299               const signed char *op, int *req);
3300
3301extern int
3302ncmpi_bput_varn_short(int ncid, int varid, int num,
3303               MPI_Offset* const *starts, MPI_Offset* const *counts,
3304               const short *op, int *req);
3305
3306extern int
3307ncmpi_bput_varn_int(int ncid, int varid, int num,
3308               MPI_Offset* const *starts, MPI_Offset* const *counts,
3309               const int *op, int *req);
3310
3311extern int
3312ncmpi_bput_varn_float(int ncid, int varid, int num,
3313               MPI_Offset* const *starts, MPI_Offset* const *counts,
3314               const float *op, int *req);
3315
3316extern int
3317ncmpi_bput_varn_double(int ncid, int varid, int num,
3318               MPI_Offset* const *starts, MPI_Offset* const *counts,
3319               const double *op, int *req);
3320
3321extern int
3322ncmpi_bput_varn_longlong(int ncid, int varid, int num,
3323               MPI_Offset* const *starts, MPI_Offset* const *counts,
3324               const long long *op, int *req);
3325
3326
3327/* Begin Skip Prototypes for Fortran binding */
3328/* skip types: uchar, ubyte, ushort, uint, long, ulonglong string */
3329
3330extern int
3331ncmpi_bput_varn_uchar(int ncid, int varid, int num,
3332               MPI_Offset* const *starts, MPI_Offset* const *counts,
3333               const unsigned char *op, int *req);
3334
3335extern int
3336ncmpi_bput_varn_ushort(int ncid, int varid, int num,
3337               MPI_Offset* const *starts, MPI_Offset* const *counts,
3338               const unsigned short *op, int *req);
3339
3340extern int
3341ncmpi_bput_varn_uint(int ncid, int varid, int num,
3342               MPI_Offset* const *starts, MPI_Offset* const *counts,
3343               const unsigned int *op, int *req);
3344
3345extern int
3346ncmpi_bput_varn_long(int ncid, int varid, int num,
3347               MPI_Offset* const *starts, MPI_Offset* const *counts,
3348               const long *op, int *req);
3349
3350extern int
3351ncmpi_bput_varn_ulonglong(int ncid, int varid, int num,
3352               MPI_Offset* const *starts, MPI_Offset* const *counts,
3353               const unsigned long long *op, int *req);
3354
3355/* End Skip Prototypes for Fortran binding */
3356
3357/* End of bput_varn{kind} */
3358
3359/* End non-blocking data access functions */
3360
3361/* Begin Skip Prototypes for Fortran binding */
3362/* skip all mput/mget APIs as Fortran cannot handle array of buffers */
3363
3364extern int
3365ncmpi_mput_var(int ncid, int num, int *varids, void *bufs[],
3366               MPI_Offset *bufcounts, MPI_Datatype datatypes[]);
3367
3368extern int
3369ncmpi_mput_var_all(int ncid, int num, int *varids, void *bufs[],
3370               MPI_Offset *bufcounts, MPI_Datatype datatypes[]);
3371
3372extern int
3373ncmpi_mput_var_text(int ncid, int num, int *varids, char *bufs[]);
3374extern int
3375ncmpi_mput_var_text_all(int ncid, int num, int *varids, char *bufs[]);
3376
3377extern int
3378ncmpi_mput_var_schar(int ncid, int num, int *varids, signed char *bufs[]);
3379extern int
3380ncmpi_mput_var_schar_all(int ncid, int num, int *varids, signed char *bufs[]);
3381
3382extern int
3383ncmpi_mput_var_uchar(int ncid, int num, int *varids, unsigned char *bufs[]);
3384extern int
3385ncmpi_mput_var_uchar_all(int ncid, int num, int *varids, unsigned char *bufs[]);
3386
3387extern int
3388ncmpi_mput_var_short(int ncid, int num, int *varids, short *bufs[]);
3389extern int
3390ncmpi_mput_var_short_all(int ncid, int num, int *varids, short *bufs[]);
3391
3392extern int
3393ncmpi_mput_var_ushort(int ncid, int num, int *varids, unsigned short *bufs[]);
3394extern int
3395ncmpi_mput_var_ushort_all(int ncid, int num, int *varids,
3396               unsigned short *bufs[]);
3397
3398extern int
3399ncmpi_mput_var_int(int ncid, int num, int *varids, int *bufs[]);
3400extern int
3401ncmpi_mput_var_int_all(int ncid, int num, int *varids, int *bufs[]);
3402
3403extern int
3404ncmpi_mput_var_uint(int ncid, int num, int *varids, unsigned int *bufs[]);
3405extern int
3406ncmpi_mput_var_uint_all(int ncid, int num, int *varids, unsigned int *bufs[]);
3407
3408extern int
3409ncmpi_mput_var_long(int ncid, int num, int *varids, long *bufs[]);
3410extern int
3411ncmpi_mput_var_long_all(int ncid, int num, int *varids, long *bufs[]);
3412
3413extern int
3414ncmpi_mput_var_float(int ncid, int num, int *varids, float *bufs[]);
3415extern int
3416ncmpi_mput_var_float_all(int ncid, int num, int *varids, float *bufs[]);
3417
3418extern int
3419ncmpi_mput_var_double(int ncid, int num, int *varids, double *bufs[]);
3420extern int
3421ncmpi_mput_var_double_all(int ncid, int num, int *varids, double *bufs[]);
3422
3423extern int
3424ncmpi_mput_var_longlong(int ncid, int num, int *varids, long long *bufs[]);
3425extern int
3426ncmpi_mput_var_longlong_all(int ncid, int num, int *varids, long long *bufs[]);
3427
3428extern int
3429ncmpi_mput_var_ulonglong(int ncid, int num, int *varids,
3430               unsigned long long *bufs[]);
3431extern int
3432ncmpi_mput_var_ulonglong_all(int ncid, int num, int *varids,
3433               unsigned long long *bufs[]);
3434
3435extern int
3436ncmpi_mput_var1(int ncid, int num, int *varids,
3437               MPI_Offset* const *starts, void *bufs[],
3438               MPI_Offset *bufcounts, MPI_Datatype datatypes[]);
3439extern int
3440ncmpi_mput_var1_all(int ncid, int num, int *varids,
3441               MPI_Offset* const *starts, void *bufs[],
3442               MPI_Offset *bufcounts, MPI_Datatype datatypes[]);
3443
3444extern int
3445ncmpi_mput_var1_text(int ncid, int num, int *varids,
3446               MPI_Offset* const *starts, char *bufs[]);
3447extern int
3448ncmpi_mput_var1_text_all(int ncid, int num, int *varids,
3449               MPI_Offset* const *starts, char *bufs[]);
3450
3451extern int
3452ncmpi_mput_var1_schar(int ncid, int num, int *varids,
3453               MPI_Offset* const *starts, signed char *bufs[]);
3454extern int
3455ncmpi_mput_var1_schar_all(int ncid, int num, int *varids,
3456               MPI_Offset* const *starts, signed char *bufs[]);
3457
3458extern int
3459ncmpi_mput_var1_uchar(int ncid, int num, int *varids,
3460               MPI_Offset* const *starts, unsigned char *bufs[]);
3461extern int
3462ncmpi_mput_var1_uchar_all(int ncid, int num, int *varids,
3463               MPI_Offset* const *starts, unsigned char *bufs[]);
3464
3465extern int
3466ncmpi_mput_var1_short(int ncid, int num, int *varids,
3467               MPI_Offset* const *starts, short *bufs[]);
3468extern int
3469ncmpi_mput_var1_short_all(int ncid, int num, int *varids,
3470               MPI_Offset* const *starts, short *bufs[]);
3471
3472extern int
3473ncmpi_mput_var1_ushort(int ncid, int num, int *varids,
3474               MPI_Offset* const *starts, unsigned short *bufs[]);
3475extern int
3476ncmpi_mput_var1_ushort_all(int ncid, int num, int *varids,
3477               MPI_Offset* const *starts, unsigned short *bufs[]);
3478
3479extern int
3480ncmpi_mput_var1_int(int ncid, int num, int *varids,
3481               MPI_Offset* const *starts, int *bufs[]);
3482extern int
3483ncmpi_mput_var1_int_all(int ncid, int num, int *varids,
3484               MPI_Offset* const *starts, int *bufs[]);
3485
3486extern int
3487ncmpi_mput_var1_uint(int ncid, int num, int *varids,
3488               MPI_Offset* const *starts, unsigned int *bufs[]);
3489extern int
3490ncmpi_mput_var1_uint_all(int ncid, int num, int *varids,
3491               MPI_Offset* const *starts, unsigned int *bufs[]);
3492
3493extern int
3494ncmpi_mput_var1_long(int ncid, int num, int *varids,
3495               MPI_Offset* const *starts, long *bufs[]);
3496extern int
3497ncmpi_mput_var1_long_all(int ncid, int num, int *varids,
3498               MPI_Offset* const *starts, long *bufs[]);
3499
3500extern int
3501ncmpi_mput_var1_float(int ncid, int num, int *varids,
3502               MPI_Offset* const *starts, float *bufs[]);
3503extern int
3504ncmpi_mput_var1_float_all(int ncid, int num, int *varids,
3505               MPI_Offset* const *starts, float *bufs[]);
3506
3507extern int
3508ncmpi_mput_var1_double(int ncid, int num, int *varids,
3509               MPI_Offset* const *starts, double *bufs[]);
3510extern int
3511ncmpi_mput_var1_double_all(int ncid, int num, int *varids,
3512               MPI_Offset* const *starts, double *bufs[]);
3513
3514extern int
3515ncmpi_mput_var1_longlong(int ncid, int num, int *varids,
3516               MPI_Offset* const *starts, long long *bufs[]);
3517extern int
3518ncmpi_mput_var1_longlong_all(int ncid, int num, int *varids,
3519               MPI_Offset* const *starts, long long *bufs[]);
3520
3521extern int
3522ncmpi_mput_var1_ulonglong(int ncid, int num, int *varids,
3523               MPI_Offset* const *starts, unsigned long long *bufs[]);
3524extern int
3525ncmpi_mput_var1_ulonglong_all(int ncid, int num, int *varids,
3526               MPI_Offset* const *starts, unsigned long long *bufs[]);
3527
3528
3529extern int
3530ncmpi_mput_vara(int ncid, int num, int *varids, MPI_Offset* const *starts,
3531               MPI_Offset* const *counts, void *bufs[],
3532               MPI_Offset *bufcounts, MPI_Datatype datatypes[]);
3533extern int
3534ncmpi_mput_vara_all(int ncid, int num, int *varids,
3535               MPI_Offset* const *starts, MPI_Offset* const *counts,
3536               void *bufs[], MPI_Offset *bufcounts, MPI_Datatype datatypes[]);
3537
3538extern int
3539ncmpi_mput_vara_text(int ncid, int num, int *varids,
3540               MPI_Offset* const *starts, MPI_Offset* const *counts,
3541               char *bufs[]);
3542extern int
3543ncmpi_mput_vara_text_all(int ncid, int num, int *varids,
3544               MPI_Offset* const *starts, MPI_Offset* const *counts,
3545               char *bufs[]);
3546
3547extern int
3548ncmpi_mput_vara_schar(int ncid, int num, int *varids,
3549               MPI_Offset* const *starts, MPI_Offset* const *counts,
3550               signed char *bufs[]);
3551extern int
3552ncmpi_mput_vara_schar_all(int ncid, int num, int *varids,
3553               MPI_Offset* const *starts, MPI_Offset* const *counts,
3554               signed char *bufs[]);
3555
3556extern int
3557ncmpi_mput_vara_uchar(int ncid, int num, int *varids,
3558               MPI_Offset* const *starts, MPI_Offset* const *counts,
3559               unsigned char *bufs[]);
3560extern int
3561ncmpi_mput_vara_uchar_all(int ncid, int num, int *varids,
3562               MPI_Offset* const *starts, MPI_Offset* const *counts,
3563               unsigned char *bufs[]);
3564
3565extern int
3566ncmpi_mput_vara_short(int ncid, int num, int *varids,
3567               MPI_Offset* const *starts, MPI_Offset* const *counts,
3568               short *bufs[]);
3569extern int
3570ncmpi_mput_vara_short_all(int ncid, int num, int *varids,
3571               MPI_Offset* const *starts, MPI_Offset* const *counts,
3572               short *bufs[]);
3573
3574extern int
3575ncmpi_mput_vara_ushort(int ncid, int num, int *varids,
3576               MPI_Offset* const *starts, MPI_Offset* const *counts,
3577               unsigned short *bufs[]);
3578extern int
3579ncmpi_mput_vara_ushort_all(int ncid, int num, int *varids,
3580               MPI_Offset* const *starts, MPI_Offset* const *counts,
3581               unsigned short *bufs[]);
3582
3583extern int
3584ncmpi_mput_vara_int(int ncid, int num, int *varids,
3585               MPI_Offset* const *starts, MPI_Offset* const *counts,
3586               int *bufs[]);
3587extern int
3588ncmpi_mput_vara_int_all(int ncid, int num, int *varids,
3589               MPI_Offset* const *starts, MPI_Offset* const *counts,
3590               int *bufs[]);
3591
3592extern int
3593ncmpi_mput_vara_uint(int ncid, int num, int *varids,
3594               MPI_Offset* const *starts, MPI_Offset* const *counts,
3595               unsigned int *bufs[]);
3596extern int
3597ncmpi_mput_vara_uint_all(int ncid, int num, int *varids,
3598               MPI_Offset* const *starts, MPI_Offset* const *counts,
3599               unsigned int *bufs[]);
3600
3601extern int
3602ncmpi_mput_vara_long(int ncid, int num, int *varids,
3603               MPI_Offset* const *starts, MPI_Offset* const *counts,
3604               long *bufs[]);
3605extern int
3606ncmpi_mput_vara_long_all(int ncid, int num, int *varids,
3607               MPI_Offset* const *starts, MPI_Offset* const *counts,
3608               long *bufs[]);
3609
3610extern int
3611ncmpi_mput_vara_float(int ncid, int num, int *varids,
3612               MPI_Offset* const *starts, MPI_Offset* const *counts,
3613               float *bufs[]);
3614extern int
3615ncmpi_mput_vara_float_all(int ncid, int num, int *varids,
3616               MPI_Offset* const *starts, MPI_Offset* const *counts,
3617               float *bufs[]);
3618
3619extern int
3620ncmpi_mput_vara_double(int ncid, int num, int *varids,
3621               MPI_Offset* const *starts, MPI_Offset* const *counts,
3622               double *bufs[]);
3623extern int
3624ncmpi_mput_vara_double_all(int ncid, int num, int *varids,
3625               MPI_Offset* const *starts, MPI_Offset* const *counts,
3626               double *bufs[]);
3627
3628extern int
3629ncmpi_mput_vara_longlong(int ncid, int num, int *varids,
3630               MPI_Offset* const *starts, MPI_Offset* const *counts,
3631               long long *bufs[]);
3632extern int
3633ncmpi_mput_vara_longlong_all(int ncid, int num, int *varids,
3634               MPI_Offset* const *starts, MPI_Offset* const *counts,
3635               long long *bufs[]);
3636
3637extern int
3638ncmpi_mput_vara_ulonglong(int ncid, int num, int *varids,
3639               MPI_Offset* const *starts, MPI_Offset* const *counts,
3640               unsigned long long *bufs[]);
3641extern int
3642ncmpi_mput_vara_ulonglong_all(int ncid, int num, int *varids,
3643               MPI_Offset* const *starts, MPI_Offset* const *counts,
3644               unsigned long long *bufs[]);
3645
3646
3647extern int
3648ncmpi_mput_vars(int ncid, int num, int *varids,
3649               MPI_Offset* const *starts, MPI_Offset* const *counts,
3650               MPI_Offset* const *strides, void *bufs[],
3651               MPI_Offset *bufcounts, MPI_Datatype datatypes[]);
3652
3653extern int
3654ncmpi_mput_vars_all(int ncid, int num, int *varids,
3655               MPI_Offset* const *starts, MPI_Offset* const *counts,
3656               MPI_Offset* const *strides, void *bufs[],
3657               MPI_Offset *bufcounts, MPI_Datatype datatypes[]);
3658
3659extern int
3660ncmpi_mput_vars_text(int ncid, int num, int *varids,
3661               MPI_Offset* const *starts, MPI_Offset* const *counts,
3662               MPI_Offset* const *strides, char *bufs[]);
3663extern int
3664ncmpi_mput_vars_text_all(int ncid, int num, int *varids,
3665               MPI_Offset* const *starts, MPI_Offset* const *counts,
3666               MPI_Offset* const *strides, char *bufs[]);
3667
3668extern int
3669ncmpi_mput_vars_schar(int ncid, int num, int *varids,
3670               MPI_Offset* const *starts, MPI_Offset* const *counts,
3671               MPI_Offset* const *strides, signed char *bufs[]);
3672extern int
3673ncmpi_mput_vars_schar_all(int ncid, int num, int *varids,
3674               MPI_Offset* const *starts, MPI_Offset* const *counts,
3675               MPI_Offset* const *strides, signed char *bufs[]);
3676
3677extern int
3678ncmpi_mput_vars_uchar(int ncid, int num, int *varids,
3679               MPI_Offset* const *starts, MPI_Offset* const *counts,
3680               MPI_Offset* const *strides, unsigned char *bufs[]);
3681extern int
3682ncmpi_mput_vars_uchar_all(int ncid, int num, int *varids,
3683               MPI_Offset* const *starts, MPI_Offset* const *counts,
3684               MPI_Offset* const *strides, unsigned char *bufs[]);
3685
3686extern int
3687ncmpi_mput_vars_short(int ncid, int num, int *varids,
3688               MPI_Offset* const *starts, MPI_Offset* const *counts,
3689               MPI_Offset* const *strides, short *bufs[]);
3690extern int
3691ncmpi_mput_vars_short_all(int ncid, int num, int *varids,
3692               MPI_Offset* const *starts, MPI_Offset* const *counts,
3693               MPI_Offset* const *strides, short *bufs[]);
3694
3695extern int
3696ncmpi_mput_vars_ushort(int ncid, int num, int *varids,
3697               MPI_Offset* const *starts, MPI_Offset* const *counts,
3698               MPI_Offset* const *strides, unsigned short *bufs[]);
3699extern int
3700ncmpi_mput_vars_ushort_all(int ncid, int num, int *varids,
3701               MPI_Offset* const *starts, MPI_Offset* const *counts,
3702               MPI_Offset* const *strides, unsigned short *bufs[]);
3703
3704extern int
3705ncmpi_mput_vars_int(int ncid, int num, int *varids,
3706               MPI_Offset* const *starts, MPI_Offset* const *counts,
3707               MPI_Offset* const *strides, int *bufs[]);
3708extern int
3709ncmpi_mput_vars_int_all(int ncid, int num, int *varids,
3710               MPI_Offset* const *starts, MPI_Offset* const *counts,
3711               MPI_Offset* const *strides, int *bufs[]);
3712
3713extern int
3714ncmpi_mput_vars_uint(int ncid, int num, int *varids,
3715               MPI_Offset* const *starts, MPI_Offset* const *counts,
3716               MPI_Offset* const *strides, unsigned int *bufs[]);
3717extern int
3718ncmpi_mput_vars_uint_all(int ncid, int num, int *varids,
3719               MPI_Offset* const *starts, MPI_Offset* const *counts,
3720               MPI_Offset* const *strides, unsigned int *bufs[]);
3721
3722extern int
3723ncmpi_mput_vars_long(int ncid, int num, int *varids,
3724               MPI_Offset* const *starts, MPI_Offset* const *counts,
3725               MPI_Offset* const *strides, long *bufs[]);
3726extern int
3727ncmpi_mput_vars_long_all(int ncid, int num, int *varids,
3728               MPI_Offset* const *starts, MPI_Offset* const *counts,
3729               MPI_Offset* const *strides, long *bufs[]);
3730
3731extern int
3732ncmpi_mput_vars_float(int ncid, int num, int *varids,
3733               MPI_Offset* const *starts, MPI_Offset* const *counts,
3734               MPI_Offset* const *strides, float *bufs[]);
3735extern int
3736ncmpi_mput_vars_float_all(int ncid, int num, int *varids,
3737               MPI_Offset* const *starts, MPI_Offset* const *counts,
3738               MPI_Offset* const *strides, float *bufs[]);
3739
3740extern int
3741ncmpi_mput_vars_double(int ncid, int num, int *varids,
3742               MPI_Offset* const *starts, MPI_Offset* const *counts,
3743               MPI_Offset* const *strides, double *bufs[]);
3744extern int
3745ncmpi_mput_vars_double_all(int ncid, int num, int *varids,
3746               MPI_Offset* const *starts, MPI_Offset* const *counts,
3747               MPI_Offset* const *strides, double *bufs[]);
3748
3749extern int
3750ncmpi_mput_vars_longlong(int ncid, int num, int *varids,
3751               MPI_Offset* const *starts, MPI_Offset* const *counts,
3752               MPI_Offset* const *strides, long long *bufs[]);
3753extern int
3754ncmpi_mput_vars_longlong_all(int ncid, int num, int *varids,
3755               MPI_Offset* const *starts, MPI_Offset* const *counts,
3756               MPI_Offset* const *strides, long long *bufs[]);
3757
3758extern int
3759ncmpi_mput_vars_ulonglong(int ncid, int num, int *varids,
3760               MPI_Offset* const *starts, MPI_Offset* const *counts,
3761               MPI_Offset* const *strides, unsigned long long *bufs[]);
3762extern int
3763ncmpi_mput_vars_ulonglong_all(int ncid, int num, int *varids,
3764               MPI_Offset* const *starts, MPI_Offset* const *counts,
3765               MPI_Offset* const *strides, unsigned long long *bufs[]);
3766
3767extern int
3768ncmpi_mput_varm(int ncid, int num, int *varids,
3769               MPI_Offset* const *starts, MPI_Offset* const *counts,
3770               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3771               void *bufs[], MPI_Offset *bufcounts, MPI_Datatype datatypes[]);
3772extern int
3773ncmpi_mput_varm_all(int ncid, int num, int *varids,
3774               MPI_Offset* const *starts, MPI_Offset* const *counts,
3775               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3776               void *bufs[], MPI_Offset *bufcounts, MPI_Datatype datatypes[]);
3777
3778extern int
3779ncmpi_mput_varm_text(int ncid, int num, int *varids,
3780               MPI_Offset* const *starts, MPI_Offset* const *counts,
3781               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3782               char *bufs[]);
3783extern int
3784ncmpi_mput_varm_text_all(int ncid, int num, int *varids,
3785               MPI_Offset* const *starts, MPI_Offset* const *counts,
3786               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3787               char *bufs[]);
3788
3789extern int
3790ncmpi_mput_varm_schar(int ncid, int num, int *varids,
3791               MPI_Offset* const *starts, MPI_Offset* const *counts,
3792               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3793               signed char *bufs[]);
3794extern int
3795ncmpi_mput_varm_schar_all(int ncid, int num, int *varids,
3796               MPI_Offset* const *starts, MPI_Offset* const *counts,
3797               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3798               signed char *bufs[]);
3799
3800extern int
3801ncmpi_mput_varm_uchar(int ncid, int num, int *varids,
3802               MPI_Offset* const *starts, MPI_Offset* const *counts,
3803               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3804               unsigned char *bufs[]);
3805extern int
3806ncmpi_mput_varm_uchar_all(int ncid, int num, int *varids,
3807               MPI_Offset* const *starts, MPI_Offset* const *counts,
3808               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3809               unsigned char *bufs[]);
3810
3811extern int
3812ncmpi_mput_varm_short(int ncid, int num, int *varids,
3813               MPI_Offset* const *starts, MPI_Offset* const *counts,
3814               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3815               short *bufs[]);
3816extern int
3817ncmpi_mput_varm_short_all(int ncid, int num, int *varids,
3818               MPI_Offset* const *starts, MPI_Offset* const *counts,
3819               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3820               short *bufs[]);
3821
3822extern int
3823ncmpi_mput_varm_ushort(int ncid, int num, int *varids,
3824               MPI_Offset* const *starts, MPI_Offset* const *counts,
3825               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3826               unsigned short *bufs[]);
3827extern int
3828ncmpi_mput_varm_ushort_all(int ncid, int num, int *varids,
3829               MPI_Offset* const *starts, MPI_Offset* const *counts,
3830               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3831               unsigned short *bufs[]);
3832
3833extern int
3834ncmpi_mput_varm_int(int ncid, int num, int *varids,
3835               MPI_Offset* const *starts, MPI_Offset* const *counts,
3836               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3837               int *bufs[]);
3838extern int
3839ncmpi_mput_varm_int_all(int ncid, int num, int *varids,
3840               MPI_Offset* const *starts, MPI_Offset* const *counts,
3841               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3842               int *bufs[]);
3843
3844extern int
3845ncmpi_mput_varm_uint(int ncid, int num, int *varids,
3846               MPI_Offset* const *starts, MPI_Offset* const *counts,
3847               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3848               unsigned int *bufs[]);
3849extern int
3850ncmpi_mput_varm_uint_all(int ncid, int num, int *varids,
3851               MPI_Offset* const *starts, MPI_Offset* const *counts,
3852               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3853               unsigned int *bufs[]);
3854
3855extern int
3856ncmpi_mput_varm_long(int ncid, int num, int *varids,
3857               MPI_Offset* const *starts, MPI_Offset* const *counts,
3858               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3859               long *bufs[]);
3860extern int
3861ncmpi_mput_varm_long_all(int ncid, int num, int *varids,
3862               MPI_Offset* const *starts, MPI_Offset* const *counts,
3863               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3864               long *bufs[]);
3865
3866extern int
3867ncmpi_mput_varm_float(int ncid, int num, int *varids,
3868               MPI_Offset* const *starts, MPI_Offset* const *counts,
3869               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3870               float *bufs[]);
3871extern int
3872ncmpi_mput_varm_float_all(int ncid, int num, int *varids,
3873               MPI_Offset* const *starts, MPI_Offset* const *counts,
3874               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3875               float *bufs[]);
3876
3877extern int
3878ncmpi_mput_varm_double(int ncid, int num, int *varids,
3879               MPI_Offset* const *starts, MPI_Offset* const *counts,
3880               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3881               double *bufs[]);
3882extern int
3883ncmpi_mput_varm_double_all(int ncid, int num, int *varids,
3884               MPI_Offset* const *starts, MPI_Offset* const *counts,
3885               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3886               double *bufs[]);
3887
3888extern int
3889ncmpi_mput_varm_longlong(int ncid, int num, int *varids,
3890               MPI_Offset* const *starts, MPI_Offset* const *counts,
3891               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3892               long long *bufs[]);
3893extern int
3894ncmpi_mput_varm_longlong_all(int ncid, int num, int *varids,
3895               MPI_Offset* const *starts, MPI_Offset* const *counts,
3896               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3897               long long *bufs[]);
3898
3899extern int
3900ncmpi_mput_varm_ulonglong(int ncid, int num, int *varids,
3901               MPI_Offset* const *starts, MPI_Offset* const *counts,
3902               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3903               unsigned long long *bufs[]);
3904extern int
3905ncmpi_mput_varm_ulonglong_all(int ncid, int num, int *varids,
3906               MPI_Offset* const *starts, MPI_Offset* const *counts,
3907               MPI_Offset* const *strides, MPI_Offset* const *imaps,
3908               unsigned long long *bufs[]);
3909
3910extern int
3911ncmpi_mget_var(int ncid, int num, int *varids, void *bufs[],
3912               MPI_Offset *bufcounts, MPI_Datatype *datatypes);
3913
3914extern int
3915ncmpi_mget_var_all(int ncid, int num, int *varids, void *bufs[],
3916               MPI_Offset *bufcounts, MPI_Datatype *datatypes);
3917
3918extern int
3919ncmpi_mget_var_text(int ncid, int num, int *varids, char *bufs[]);
3920extern int
3921ncmpi_mget_var_text_all(int ncid, int num, int *varids, char *bufs[]);
3922
3923extern int
3924ncmpi_mget_var_schar(int ncid, int num, int *varids, signed char *bufs[]);
3925extern int
3926ncmpi_mget_var_schar_all(int ncid, int num, int *varids, signed char *bufs[]);
3927
3928extern int
3929ncmpi_mget_var_uchar(int ncid, int num, int *varids, unsigned char *bufs[]);
3930extern int
3931ncmpi_mget_var_uchar_all(int ncid, int num, int *varids, unsigned char *bufs[]);
3932
3933extern int
3934ncmpi_mget_var_short(int ncid, int num, int *varids, short *bufs[]);
3935extern int
3936ncmpi_mget_var_short_all(int ncid, int num, int *varids, short *bufs[]);
3937
3938extern int
3939ncmpi_mget_var_ushort(int ncid, int num, int *varids, unsigned short *bufs[]);
3940extern int
3941ncmpi_mget_var_ushort_all(int ncid, int num, int *varids,
3942               unsigned short *bufs[]);
3943
3944extern int
3945ncmpi_mget_var_int(int ncid, int num, int *varids, int *bufs[]);
3946extern int
3947ncmpi_mget_var_int_all(int ncid, int num, int *varids, int *bufs[]);
3948
3949extern int
3950ncmpi_mget_var_uint(int ncid, int num, int *varids, unsigned int *bufs[]);
3951extern int
3952ncmpi_mget_var_uint_all(int ncid, int num, int *varids, unsigned int *bufs[]);
3953
3954extern int
3955ncmpi_mget_var_long(int ncid, int num, int *varids, long *bufs[]);
3956extern int
3957ncmpi_mget_var_long_all(int ncid, int num, int *varids, long *bufs[]);
3958
3959extern int
3960ncmpi_mget_var_float(int ncid, int num, int *varids, float *bufs[]);
3961extern int
3962ncmpi_mget_var_float_all(int ncid, int num, int *varids, float *bufs[]);
3963
3964extern int
3965ncmpi_mget_var_double(int ncid, int num, int *varids, double *bufs[]);
3966extern int
3967ncmpi_mget_var_double_all(int ncid, int num, int *varids, double *bufs[]);
3968
3969extern int
3970ncmpi_mget_var_longlong(int ncid, int num, int *varids, long long *bufs[]);
3971extern int
3972ncmpi_mget_var_longlong_all(int ncid, int num, int *varids, long long *bufs[]);
3973
3974extern int
3975ncmpi_mget_var_ulonglong(int ncid, int num, int *varids,
3976               unsigned long long *bufs[]);
3977extern int
3978ncmpi_mget_var_ulonglong_all(int ncid, int num, int *varids,
3979               unsigned long long *bufs[]);
3980
3981extern int
3982ncmpi_mget_var1(int ncid, int num, int *varids,
3983               MPI_Offset* const *starts, void *bufs[],
3984               MPI_Offset *bufcounts, MPI_Datatype *datatypes);
3985extern int
3986ncmpi_mget_var1_all(int ncid, int num, int *varids,
3987               MPI_Offset* const *starts, void *bufs[],
3988               MPI_Offset *bufcounts, MPI_Datatype *datatypes);
3989
3990extern int
3991ncmpi_mget_var1_text(int ncid, int num, int *varids,
3992               MPI_Offset* const *starts, char *bufs[]);
3993extern int
3994ncmpi_mget_var1_text_all(int ncid, int num, int *varids,
3995               MPI_Offset* const *starts, char *bufs[]);
3996
3997extern int
3998ncmpi_mget_var1_schar(int ncid, int num, int *varids,
3999               MPI_Offset* const *starts, signed char *bufs[]);
4000extern int
4001ncmpi_mget_var1_schar_all(int ncid, int num, int *varids,
4002               MPI_Offset* const *starts, signed char *bufs[]);
4003
4004extern int
4005ncmpi_mget_var1_uchar(int ncid, int num, int *varids,
4006               MPI_Offset* const *starts, unsigned char *bufs[]);
4007extern int
4008ncmpi_mget_var1_uchar_all(int ncid, int num, int *varids,
4009               MPI_Offset* const *starts, unsigned char *bufs[]);
4010
4011extern int
4012ncmpi_mget_var1_short(int ncid, int num, int *varids,
4013               MPI_Offset* const *starts, short *bufs[]);
4014extern int
4015ncmpi_mget_var1_short_all(int ncid, int num, int *varids,
4016               MPI_Offset* const *starts, short *bufs[]);
4017
4018extern int
4019ncmpi_mget_var1_ushort(int ncid, int num, int *varids,
4020               MPI_Offset* const *starts, unsigned short *bufs[]);
4021extern int
4022ncmpi_mget_var1_ushort_all(int ncid, int num, int *varids,
4023               MPI_Offset* const *starts, unsigned short *bufs[]);
4024
4025extern int
4026ncmpi_mget_var1_int(int ncid, int num, int *varids,
4027               MPI_Offset* const *starts, int *bufs[]);
4028extern int
4029ncmpi_mget_var1_int_all(int ncid, int num, int *varids,
4030               MPI_Offset* const *starts, int *bufs[]);
4031
4032extern int
4033ncmpi_mget_var1_uint(int ncid, int num, int *varids,
4034               MPI_Offset* const *starts, unsigned int *bufs[]);
4035extern int
4036ncmpi_mget_var1_uint_all(int ncid, int num, int *varids,
4037               MPI_Offset* const *starts, unsigned int *bufs[]);
4038
4039extern int
4040ncmpi_mget_var1_long(int ncid, int num, int *varids,
4041               MPI_Offset* const *starts, long *bufs[]);
4042extern int
4043ncmpi_mget_var1_long_all(int ncid, int num, int *varids,
4044               MPI_Offset* const *starts, long *bufs[]);
4045
4046extern int
4047ncmpi_mget_var1_float(int ncid, int num, int *varids,
4048               MPI_Offset* const *starts, float *bufs[]);
4049extern int
4050ncmpi_mget_var1_float_all(int ncid, int num, int *varids,
4051               MPI_Offset* const *starts, float *bufs[]);
4052
4053extern int
4054ncmpi_mget_var1_double(int ncid, int num, int *varids,
4055               MPI_Offset* const *starts, double *bufs[]);
4056extern int
4057ncmpi_mget_var1_double_all(int ncid, int num, int *varids,
4058               MPI_Offset* const *starts, double *bufs[]);
4059
4060extern int
4061ncmpi_mget_var1_longlong(int ncid, int num, int *varids,
4062               MPI_Offset* const *starts, long long *bufs[]);
4063extern int
4064ncmpi_mget_var1_longlong_all(int ncid, int num, int *varids,
4065               MPI_Offset* const *starts, long long *bufs[]);
4066
4067extern int
4068ncmpi_mget_var1_ulonglong(int ncid, int num, int *varids,
4069               MPI_Offset* const *starts, unsigned long long *bufs[]);
4070extern int
4071ncmpi_mget_var1_ulonglong_all(int ncid, int num, int *varids,
4072               MPI_Offset* const *starts, unsigned long long *bufs[]);
4073
4074
4075extern int
4076ncmpi_mget_vara(int ncid, int num, int *varids,
4077               MPI_Offset* const *starts, MPI_Offset* const *counts,
4078               void *bufs[], MPI_Offset *bufcounts, MPI_Datatype *datatypes);
4079extern int
4080ncmpi_mget_vara_all(int ncid, int num, int *varids,
4081               MPI_Offset* const *starts, MPI_Offset* const *counts,
4082               void *bufs[], MPI_Offset *bufcounts, MPI_Datatype *datatypes);
4083
4084extern int
4085ncmpi_mget_vara_text(int ncid, int num, int *varids,
4086               MPI_Offset* const *starts, MPI_Offset* const *counts,
4087               char *bufs[]);
4088extern int
4089ncmpi_mget_vara_text_all(int ncid, int num, int *varids,
4090               MPI_Offset* const *starts, MPI_Offset* const *counts,
4091               char *bufs[]);
4092
4093extern int
4094ncmpi_mget_vara_schar(int ncid, int num, int *varids,
4095               MPI_Offset* const *starts, MPI_Offset* const *counts,
4096               signed char *bufs[]);
4097extern int
4098ncmpi_mget_vara_schar_all(int ncid, int num, int *varids,
4099               MPI_Offset* const *starts, MPI_Offset* const *counts,
4100               signed char *bufs[]);
4101
4102extern int
4103ncmpi_mget_vara_uchar(int ncid, int num, int *varids,
4104               MPI_Offset* const *starts, MPI_Offset* const *counts,
4105               unsigned char *bufs[]);
4106extern int
4107ncmpi_mget_vara_uchar_all(int ncid, int num, int *varids,
4108               MPI_Offset* const *starts, MPI_Offset* const *counts,
4109               unsigned char *bufs[]);
4110
4111extern int
4112ncmpi_mget_vara_short(int ncid, int num, int *varids,
4113               MPI_Offset* const *starts, MPI_Offset* const *counts,
4114               short *bufs[]);
4115extern int
4116ncmpi_mget_vara_short_all(int ncid, int num, int *varids,
4117               MPI_Offset* const *starts, MPI_Offset* const *counts,
4118               short *bufs[]);
4119
4120extern int
4121ncmpi_mget_vara_ushort(int ncid, int num, int *varids,
4122               MPI_Offset* const *starts, MPI_Offset* const *counts,
4123               unsigned short *bufs[]);
4124extern int
4125ncmpi_mget_vara_ushort_all(int ncid, int num, int *varids,
4126               MPI_Offset* const *starts, MPI_Offset* const *counts,
4127               unsigned short *bufs[]);
4128
4129extern int
4130ncmpi_mget_vara_int(int ncid, int num, int *varids,
4131               MPI_Offset* const *starts, MPI_Offset* const *counts,
4132               int *bufs[]);
4133extern int
4134ncmpi_mget_vara_int_all(int ncid, int num, int *varids,
4135               MPI_Offset* const *starts, MPI_Offset* const *counts,
4136               int *bufs[]);
4137
4138extern int
4139ncmpi_mget_vara_uint(int ncid, int num, int *varids,
4140               MPI_Offset* const *starts, MPI_Offset* const *counts,
4141               unsigned int *bufs[]);
4142extern int
4143ncmpi_mget_vara_uint_all(int ncid, int num, int *varids,
4144               MPI_Offset* const *starts, MPI_Offset* const *counts,
4145               unsigned int *bufs[]);
4146
4147extern int
4148ncmpi_mget_vara_long(int ncid, int num, int *varids,
4149               MPI_Offset* const *starts, MPI_Offset* const *counts,
4150               long *bufs[]);
4151extern int
4152ncmpi_mget_vara_long_all(int ncid, int num, int *varids,
4153               MPI_Offset* const *starts, MPI_Offset* const *counts,
4154               long *bufs[]);
4155
4156extern int
4157ncmpi_mget_vara_float(int ncid, int num, int *varids,
4158               MPI_Offset* const *starts, MPI_Offset* const *counts,
4159               float *bufs[]);
4160extern int
4161ncmpi_mget_vara_float_all(int ncid, int num, int *varids,
4162               MPI_Offset* const *starts, MPI_Offset* const *counts,
4163               float *bufs[]);
4164
4165extern int
4166ncmpi_mget_vara_double(int ncid, int num, int *varids,
4167               MPI_Offset* const *starts, MPI_Offset* const *counts,
4168               double *bufs[]);
4169extern int
4170ncmpi_mget_vara_double_all(int ncid, int num, int *varids,
4171               MPI_Offset* const *starts, MPI_Offset* const *counts,
4172               double *bufs[]);
4173
4174extern int
4175ncmpi_mget_vara_longlong(int ncid, int num, int *varids,
4176               MPI_Offset* const *starts, MPI_Offset* const *counts,
4177               long long *bufs[]);
4178extern int
4179ncmpi_mget_vara_longlong_all(int ncid, int num, int *varids,
4180               MPI_Offset* const *starts, MPI_Offset* const *counts,
4181               long long *bufs[]);
4182
4183extern int
4184ncmpi_mget_vara_ulonglong(int ncid, int num, int *varids,
4185               MPI_Offset* const *starts, MPI_Offset* const *counts,
4186               unsigned long long *bufs[]);
4187extern int
4188ncmpi_mget_vara_ulonglong_all(int ncid, int num, int *varids,
4189               MPI_Offset* const *starts, MPI_Offset* const *counts,
4190               unsigned long long *bufs[]);
4191
4192extern int
4193ncmpi_mget_vars(int ncid, int num, int *varids,
4194               MPI_Offset* const *starts, MPI_Offset* const *counts,
4195               MPI_Offset* const *strides, void *bufs[],
4196               MPI_Offset *bufcounts, MPI_Datatype *datatypes);
4197extern int
4198ncmpi_mget_vars_all(int ncid, int num, int *varids,
4199               MPI_Offset* const *starts, MPI_Offset* const *counts,
4200               MPI_Offset* const *strides, void *bufs[],
4201               MPI_Offset *bufcounts, MPI_Datatype *datatypes);
4202
4203extern int
4204ncmpi_mget_vars_text(int ncid, int num, int *varids,
4205               MPI_Offset* const *starts, MPI_Offset* const *counts,
4206               MPI_Offset* const *strides, char *bufs[]);
4207extern int
4208ncmpi_mget_vars_text_all(int ncid, int num, int *varids,
4209               MPI_Offset* const *starts, MPI_Offset* const *counts,
4210               MPI_Offset* const *strides, char *bufs[]);
4211
4212extern int
4213ncmpi_mget_vars_schar(int ncid, int num, int *varids,
4214               MPI_Offset* const *starts, MPI_Offset* const *counts,
4215               MPI_Offset* const *strides, signed char *bufs[]);
4216extern int
4217ncmpi_mget_vars_schar_all(int ncid, int num, int *varids,
4218               MPI_Offset* const *starts, MPI_Offset* const *counts,
4219               MPI_Offset* const *strides, signed char *bufs[]);
4220
4221extern int
4222ncmpi_mget_vars_uchar(int ncid, int num, int *varids,
4223               MPI_Offset* const *starts, MPI_Offset* const *counts,
4224               MPI_Offset* const *strides, unsigned char *bufs[]);
4225extern int
4226ncmpi_mget_vars_uchar_all(int ncid, int num, int *varids,
4227               MPI_Offset* const *starts, MPI_Offset* const *counts,
4228               MPI_Offset* const *strides, unsigned char *bufs[]);
4229
4230extern int
4231ncmpi_mget_vars_short(int ncid, int num, int *varids,
4232               MPI_Offset* const *starts, MPI_Offset* const *counts,
4233               MPI_Offset* const *strides, short *bufs[]);
4234extern int
4235ncmpi_mget_vars_short_all(int ncid, int num, int *varids,
4236               MPI_Offset* const *starts, MPI_Offset* const *counts,
4237               MPI_Offset* const *strides, short *bufs[]);
4238
4239extern int
4240ncmpi_mget_vars_ushort(int ncid, int num, int *varids,
4241               MPI_Offset* const *starts, MPI_Offset* const *counts,
4242               MPI_Offset* const *strides, unsigned short *bufs[]);
4243extern int
4244ncmpi_mget_vars_ushort_all(int ncid, int num, int *varids,
4245               MPI_Offset* const *starts, MPI_Offset* const *counts,
4246               MPI_Offset* const *strides, unsigned short *bufs[]);
4247
4248extern int
4249ncmpi_mget_vars_int(int ncid, int num, int *varids,
4250               MPI_Offset* const *starts, MPI_Offset* const *counts,
4251               MPI_Offset* const *strides, int *bufs[]);
4252extern int
4253ncmpi_mget_vars_int_all(int ncid, int num, int *varids,
4254               MPI_Offset* const *starts, MPI_Offset* const *counts,
4255               MPI_Offset* const *strides, int *bufs[]);
4256
4257extern int
4258ncmpi_mget_vars_uint(int ncid, int num, int *varids,
4259               MPI_Offset* const *starts, MPI_Offset* const *counts,
4260               MPI_Offset* const *strides, unsigned int *bufs[]);
4261extern int
4262ncmpi_mget_vars_uint_all(int ncid, int num, int *varids,
4263               MPI_Offset* const *starts, MPI_Offset* const *counts,
4264               MPI_Offset* const *strides, unsigned int *bufs[]);
4265
4266extern int
4267ncmpi_mget_vars_long(int ncid, int num, int *varids,
4268               MPI_Offset* const *starts, MPI_Offset* const *counts,
4269               MPI_Offset* const *strides, long *bufs[]);
4270extern int
4271ncmpi_mget_vars_long_all(int ncid, int num, int *varids,
4272               MPI_Offset* const *starts, MPI_Offset* const *counts,
4273               MPI_Offset* const *strides, long *bufs[]);
4274
4275extern int
4276ncmpi_mget_vars_float(int ncid, int num, int *varids,
4277               MPI_Offset* const *starts, MPI_Offset* const *counts,
4278               MPI_Offset* const *strides, float *bufs[]);
4279extern int
4280ncmpi_mget_vars_float_all(int ncid, int num, int *varids,
4281               MPI_Offset* const *starts, MPI_Offset* const *counts,
4282               MPI_Offset* const *strides, float *bufs[]);
4283
4284extern int
4285ncmpi_mget_vars_double(int ncid, int num, int *varids,
4286               MPI_Offset* const *starts, MPI_Offset* const *counts,
4287               MPI_Offset* const *strides, double *bufs[]);
4288extern int
4289ncmpi_mget_vars_double_all(int ncid, int num, int *varids,
4290               MPI_Offset* const *starts, MPI_Offset* const *counts,
4291               MPI_Offset* const *strides, double *bufs[]);
4292
4293extern int
4294ncmpi_mget_vars_longlong(int ncid, int num, int *varids,
4295               MPI_Offset* const *starts, MPI_Offset* const *counts,
4296               MPI_Offset* const *strides, long long *bufs[]);
4297extern int
4298ncmpi_mget_vars_longlong_all(int ncid, int num, int *varids,
4299               MPI_Offset* const *starts, MPI_Offset* const *counts,
4300               MPI_Offset* const *strides, long long *bufs[]);
4301
4302extern int
4303ncmpi_mget_vars_ulonglong(int ncid, int num, int *varids,
4304               MPI_Offset* const *starts, MPI_Offset* const *counts,
4305               MPI_Offset* const *strides, unsigned long long *bufs[]);
4306extern int
4307ncmpi_mget_vars_ulonglong_all(int ncid, int num, int *varids,
4308               MPI_Offset* const *starts, MPI_Offset* const *counts,
4309               MPI_Offset* const *strides, unsigned long long *bufs[]);
4310
4311extern int
4312ncmpi_mget_varm(int ncid, int num, int *varids,
4313               MPI_Offset* const *starts, MPI_Offset* const *counts,
4314               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4315               void *bufs[], MPI_Offset *bufcounts, MPI_Datatype *datatypes);
4316
4317extern int
4318ncmpi_mget_varm_all(int ncid, int num, int *varids,
4319               MPI_Offset* const *starts, MPI_Offset* const *counts,
4320               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4321               void *bufs[], MPI_Offset *bufcounts, MPI_Datatype *datatypes);
4322
4323extern int
4324ncmpi_mget_varm_text(int ncid, int num, int *varids,
4325               MPI_Offset* const *starts, MPI_Offset* const *counts,
4326               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4327               char *bufs[]);
4328extern int
4329ncmpi_mget_varm_text_all(int ncid, int num, int *varids,
4330               MPI_Offset* const *starts, MPI_Offset* const *counts,
4331               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4332               char *bufs[]);
4333
4334extern int
4335ncmpi_mget_varm_schar(int ncid, int num, int *varids,
4336               MPI_Offset* const *starts, MPI_Offset* const *counts,
4337               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4338               signed char *bufs[]);
4339extern int
4340ncmpi_mget_varm_schar_all(int ncid, int num, int *varids,
4341               MPI_Offset* const *starts, MPI_Offset* const *counts,
4342               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4343               signed char *bufs[]);
4344
4345extern int
4346ncmpi_mget_varm_uchar(int ncid, int num, int *varids,
4347               MPI_Offset* const *starts, MPI_Offset* const *counts,
4348               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4349               unsigned char *bufs[]);
4350extern int
4351ncmpi_mget_varm_uchar_all(int ncid, int num, int *varids,
4352               MPI_Offset* const *starts, MPI_Offset* const *counts,
4353               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4354               unsigned char *bufs[]);
4355
4356extern int
4357ncmpi_mget_varm_short(int ncid, int num, int *varids,
4358               MPI_Offset* const *starts, MPI_Offset* const *counts,
4359               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4360               short *bufs[]);
4361extern int
4362ncmpi_mget_varm_short_all(int ncid, int num, int *varids,
4363               MPI_Offset* const *starts, MPI_Offset* const *counts,
4364               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4365               short *bufs[]);
4366
4367extern int
4368ncmpi_mget_varm_ushort(int ncid, int num, int *varids,
4369               MPI_Offset* const *starts, MPI_Offset* const *counts,
4370               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4371               unsigned short *bufs[]);
4372extern int
4373ncmpi_mget_varm_ushort_all(int ncid, int num, int *varids,
4374               MPI_Offset* const *starts, MPI_Offset* const *counts,
4375               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4376               unsigned short *bufs[]);
4377
4378extern int
4379ncmpi_mget_varm_int(int ncid, int num, int *varids,
4380               MPI_Offset* const *starts, MPI_Offset* const *counts,
4381               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4382               int *bufs[]);
4383extern int
4384ncmpi_mget_varm_int_all(int ncid, int num, int *varids,
4385               MPI_Offset* const *starts, MPI_Offset* const *counts,
4386               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4387               int *bufs[]);
4388
4389extern int
4390ncmpi_mget_varm_uint(int ncid, int num, int *varids,
4391               MPI_Offset* const *starts, MPI_Offset* const *counts,
4392               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4393               unsigned int *bufs[]);
4394extern int
4395ncmpi_mget_varm_uint_all(int ncid, int num, int *varids,
4396               MPI_Offset* const *starts, MPI_Offset* const *counts,
4397               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4398               unsigned int *bufs[]);
4399
4400extern int
4401ncmpi_mget_varm_long(int ncid, int num, int *varids,
4402               MPI_Offset* const *starts, MPI_Offset* const *counts,
4403               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4404               long *bufs[]);
4405extern int
4406ncmpi_mget_varm_long_all(int ncid, int num, int *varids,
4407               MPI_Offset* const *starts, MPI_Offset* const *counts,
4408               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4409               long *bufs[]);
4410
4411extern int
4412ncmpi_mget_varm_float(int ncid, int num, int *varids,
4413               MPI_Offset* const *starts, MPI_Offset* const *counts,
4414               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4415               float *bufs[]);
4416extern int
4417ncmpi_mget_varm_float_all(int ncid, int num, int *varids,
4418               MPI_Offset* const *starts, MPI_Offset* const *counts,
4419               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4420               float *bufs[]);
4421
4422extern int
4423ncmpi_mget_varm_double(int ncid, int num, int *varids,
4424               MPI_Offset* const *starts, MPI_Offset* const *counts,
4425               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4426               double *bufs[]);
4427extern int
4428ncmpi_mget_varm_double_all(int ncid, int num, int *varids,
4429               MPI_Offset* const *starts, MPI_Offset* const *counts,
4430               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4431               double *bufs[]);
4432
4433extern int
4434ncmpi_mget_varm_longlong(int ncid, int num, int *varids,
4435               MPI_Offset* const *starts, MPI_Offset* const *counts,
4436               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4437               long long *bufs[]);
4438extern int
4439ncmpi_mget_varm_longlong_all(int ncid, int num, int *varids,
4440               MPI_Offset* const *starts, MPI_Offset* const *counts,
4441               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4442               long long *bufs[]);
4443
4444extern int
4445ncmpi_mget_varm_ulonglong(int ncid, int num, int *varids,
4446               MPI_Offset* const *starts, MPI_Offset* const *counts,
4447               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4448               unsigned long long *bufs[]);
4449extern int
4450ncmpi_mget_varm_ulonglong_all(int ncid, int num, int *varids,
4451               MPI_Offset* const *starts, MPI_Offset* const *counts,
4452               MPI_Offset* const *strides, MPI_Offset* const *imaps,
4453               unsigned long long *bufs[]);
4454
4455/* End Skip Prototypes for Fortran binding */
4456
4457/* End {mput,mget}_var */
4458
4459/* End: more prototypes to be included for Fortran binding conversion */
4460/* ################################################################## */
4461
4462/* End Prototypes */
4463
4464
4465/* These macros are defined in serial netcdf (3.5.0) for backwards
4466 * compatibility with older netcdf code.   We aren't concerned with backwards
4467 * compatibility, so if your code doesn't compile with parallel-netcdf, maybe
4468 * this is why:
4469 *
4470 *
4471 *  OLD NAME                 NEW NAME
4472 *  ----------------------------------
4473 *  FILL_BYTE       NC_FILL_BYTE
4474 *  FILL_CHAR       NC_FILL_CHAR
4475 *  FILL_SHORT      NC_FILL_SHORT
4476 *  FILL_LONG       NC_FILL_INT
4477 *  FILL_FLOAT      NC_FILL_FLOAT
4478 *  FILL_DOUBLE     NC_FILL_DOUBLE
4479 *
4480 *  MAX_NC_DIMS     NC_MAX_DIMS
4481 *  MAX_NC_ATTRS    NC_MAX_ATTRS
4482 *  MAX_NC_VARS     NC_MAX_VARS
4483 *  MAX_NC_NAME     NC_MAX_NAME
4484 *  MAX_VAR_DIMS    NC_MAX_VAR_DIMS
4485 */
4486
4487#if defined(__cplusplus)
4488}
4489#endif
4490#endif
4491