📄 mexcdf.h
字号:
/*
* mexcdf.h Include-file for mexcdf53.c.
*
* Dr. Charles R. Denham, U.S. Geological Survey.
*
*/
# if !defined MEXCDF_H
# define MEXCDF_H
# define calloc(A, B) mxCalloc(A, B)
# define free(A) mxFree(A)
# if defined __STDC__
# if !defined HAS_VOID
# define HAS_VOID
# endif
# endif
# if defined HAS_VOID
# define VOID void
# define VOIDP void *
# define VOIDPP void **
# else
# define VOID
# define VOIDP char *
# define VOIDPP char **
# endif
# if !defined DOUBLE
# define DOUBLE double
# define INT int
# endif
# if !defined VERBOSE
# define VERBOSE 0 /* Verbosity. */
# endif
# if !defined MEXCDF_4
# define MEXCDF_4 0
# define MEXCDF_5 1
# define Matrix mxArray
# define COMPLEX mxCOMPLEX
# define REAL mxREAL
# define INT int
# define mxCreateFull(A, B, C) mxCreateDoubleMatrix(A, B, C)
# define mxIsString(A) mxIsChar(A)
# else
# define MEXCDF_5 0
# endif
# define MAX_BUFFER 32
/* NetCDF Operations. */
typedef enum s_opcode {
USAGE = 1,
CREATE,
OPEN,
REDEF,
ENDEF,
INQUIRE,
CLOSE,
SYNC,
ABORT,
DIMDEF,
DIMID,
DIMINQ,
DIMRENAME,
VARDEF,
VARID,
VARINQ,
VARPUT1,
VARGET1,
VARPUT,
VARGET,
VARPUTG,
VARGETG,
VARRENAME,
VARCOPY,
ATTPUT,
ATTINQ,
ATTGET,
ATTCOPY,
ATTNAME,
ATTRENAME,
ATTDEL,
RECPUT,
RECGET,
RECINQ,
TYPELEN,
SETFILL,
SETOPTS,
ERR,
PARAMETER,
NONE
} OPCODE;
typedef struct s_op {
OPCODE opcode;
char * opname;
int nrhs; /* Required nrhs. */
int nlhs; /* Maximum nlhs. */
} op;
op ops[] = {
USAGE, "usage", 1, 0,
CREATE, "create", 2, 2,
OPEN, "open", 2, 2,
REDEF, "redef", 1, 1,
ENDEF, "endef", 1, 1,
INQUIRE, "inquire", 2, 5,
CLOSE, "close", 2, 1,
SYNC, "sync", 2, 1,
ABORT, "abort", 2, 1,
DIMDEF, "dimdef", 4, 1,
DIMID, "dimid", 3, 1,
DIMINQ, "diminq", 3, 3,
DIMRENAME, "dimrename", 4, 1,
VARDEF, "vardef", 6, 1,
VARID, "varid", 3, 1,
VARINQ, "varinq", 3, 5,
VARPUT1, "varput1", 5, 1,
VARGET1, "varget1", 4, 2,
VARPUT, "varput", 6, 1,
VARGET, "varget", 5, 2,
VARPUTG, "varputg", 7, 1,
VARGETG, "vargetg", 6, 2,
VARRENAME, "varrename", 4, 1,
VARCOPY, "varcopy", 3, 2,
ATTPUT, "attput", 7, 1,
ATTINQ, "attinq", 4, 3,
ATTGET, "attget", 4, 2,
ATTCOPY, "attcopy", 6, 1,
ATTNAME, "attname", 4, 2,
ATTRENAME, "attrename", 5, 1,
ATTDEL, "attdel", 4, 1,
RECPUT, "recput", 4, 1,
RECGET, "recget", 3, 2,
RECINQ, "recinq", 2, 3,
TYPELEN, "typelen", 2, 2,
SETFILL, "setfill", 3, 1,
SETOPTS, "setopts", 2, 1,
ERR, "err", 1, 1,
PARAMETER, "parameter", 1, 1,
NONE, "none", 0, 0
};
/* NetCDF Parameters. */
typedef struct s_parm {
int code;
char * name;
int len; /* Minimal unique length. */
} parm;
parm parms[] = {
/*
FILL_BYTE, "FILL_BYTE", 6,
FILL_CHAR, "FILL_CHAR", 6,
FILL_SHORT, "FILL_SHORT", 6,
FILL_INT, "FILL_INT", 6,
FILL_INT, "FILL_LONG", 6,
FILL_FLOAT, "FILL_FLOAT", 6,
FILL_DOUBLE, "FILL_DOUBLE", 6,
*/
#define MAX_NC_DIMS 100 /* max dimensions per file */
#define MAX_NC_ATTRS 2000 /* max global or per variable attributes */
#define MAX_NC_VARS 2000 /* max variables per file */
#define MAX_NC_NAME 128 /* max length of a name */
#define MAX_VAR_DIMS MAX_NC_DIMS /* max per variable dimensions */
MAX_NC_NAME, "MAX_NC_NAME", 8,
MAX_NC_DIMS, "MAX_NC_DIMS", 8,
MAX_NC_VARS, "MAX_NC_VARS", 8,
MAX_NC_ATTRS, "MAX_NC_ATTRS", 8,
MAX_VAR_DIMS, "MAX_VAR_DIMS", 9,
NC_BYTE, "BYTE", 1,
NC_CHAR, "CHAR", 2,
NC_CLOBBER, "CLOBBER", 2,
NC_DOUBLE, "DOUBLE", 1,
NC_FATAL, "FATAL", 2,
NC_FILL, "FILL", 2,
NC_FLOAT, "FLOAT", 2,
NC_GLOBAL, "GLOBAL", 1,
NC_LONG, "LONG", 3,
NC_LOCK, "NC_LOCK", 3,
NC_NOCLOBBER, "NOCLOBBER", 3,
NC_NOFILL, "NOFILL", 3,
NC_NOWRITE, "NOWRITE", 3,
NC_SHARE, "SHARE", 3,
NC_SHORT, "SHORT", 3,
NC_UNLIMITED, "UNLIMITED", 1,
NC_VERBOSE, "VERBOSE", 1,
NC_WRITE, "WRITE", 1,
0, "NONE", 0
};
# endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -