Skip to content

Instantly share code, notes, and snippets.

@tfogal
Last active August 29, 2015 13:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tfogal/9762303 to your computer and use it in GitHub Desktop.
Save tfogal/9762303 to your computer and use it in GitHub Desktop.
strange green error with current rust, see: http://itsapad.appspot.com/872001
use std::libc::{c_int, c_long, c_schar, c_uchar, c_void, ptrdiff_t, size_t};
use std::libc::{c_longlong, c_ulonglong, c_uint, c_ushort, c_double, c_float};
use std::libc::{c_short};
#[allow(non_camel_case_types)]
pub type nc_type = c_int;
#[allow(dead_code)]
#[allow(non_camel_case_types)]
pub struct nc_vlen_t {
len: size_t,
p: *mut c_void,
}
#[allow(non_camel_case_types)]
pub type nclong = c_int;
#[link(name = "netcdf")]
#[allow(dead_code)]
extern "C" {
pub static mut ncerr: c_int;
pub static mut ncopts: c_int;
pub fn nc_inq_libvers() -> *c_schar;
pub fn nc_strerror(ncerr: c_int) -> *c_schar;
pub fn nc__create(path: *c_schar, cmode: c_int, initialsz: size_t,
chunksizehintp: *mut size_t, ncidp: *mut c_int) ->
c_int;
pub fn nc_create(path: *c_schar, cmode: c_int, ncidp: *mut c_int) ->
c_int;
pub fn nc__open(path: *c_schar, mode: c_int, chunksizehintp: *mut size_t,
ncidp: *mut c_int) -> c_int;
pub fn nc_open(path: *c_schar, mode: c_int, ncidp: *mut c_int) -> c_int;
pub fn nc_inq_path(ncid: c_int, pathlen: *mut size_t, path: *mut c_schar)
-> c_int;
pub fn nc_var_par_access(ncid: c_int, varid: c_int, par_access: c_int) ->
c_int;
pub fn nc_inq_ncid(ncid: c_int, name: *c_schar, grp_ncid: *mut c_int) ->
c_int;
pub fn nc_inq_grps(ncid: c_int, numgrps: *mut c_int, ncids: *mut c_int) ->
c_int;
pub fn nc_inq_grpname(ncid: c_int, name: *mut c_schar) -> c_int;
pub fn nc_inq_grpname_full(ncid: c_int, lenp: *mut size_t,
full_name: *mut c_schar) -> c_int;
pub fn nc_inq_grpname_len(ncid: c_int, lenp: *mut size_t) -> c_int;
pub fn nc_inq_grp_parent(ncid: c_int, parent_ncid: *mut c_int) -> c_int;
pub fn nc_inq_grp_ncid(ncid: c_int, grp_name: *c_schar,
grp_ncid: *mut c_int) -> c_int;
pub fn nc_inq_grp_full_ncid(ncid: c_int, full_name: *c_schar,
grp_ncid: *mut c_int) -> c_int;
pub fn nc_inq_varids(ncid: c_int, nvars: *mut c_int, varids: *mut c_int)
-> c_int;
pub fn nc_inq_dimids(ncid: c_int, ndims: *mut c_int, dimids: *mut c_int,
include_parents: c_int) -> c_int;
pub fn nc_inq_typeids(ncid: c_int, ntypes: *mut c_int,
typeids: *mut c_int) -> c_int;
pub fn nc_inq_type_equal(ncid1: c_int, typeid1: nc_type, ncid2: c_int,
typeid2: nc_type, equal: *mut c_int) -> c_int;
pub fn nc_def_grp(parent_ncid: c_int, name: *c_schar,
new_ncid: *mut c_int) -> c_int;
pub fn nc_def_compound(ncid: c_int, size: size_t, name: *c_schar,
typeidp: *mut nc_type) -> c_int;
pub fn nc_insert_compound(ncid: c_int, xtype: nc_type, name: *c_schar,
offset: size_t, field_typeid: nc_type) -> c_int;
pub fn nc_insert_array_compound(ncid: c_int, xtype: nc_type,
name: *c_schar, offset: size_t,
field_typeid: nc_type, ndims: c_int,
dim_sizes: *c_int) -> c_int;
pub fn nc_inq_type(ncid: c_int, xtype: nc_type, name: *mut c_schar,
size: *mut size_t) -> c_int;
pub fn nc_inq_typeid(ncid: c_int, name: *c_schar, typeidp: *mut nc_type)
-> c_int;
pub fn nc_inq_compound(ncid: c_int, xtype: nc_type, name: *mut c_schar,
sizep: *mut size_t, nfieldsp: *mut size_t) ->
c_int;
pub fn nc_inq_compound_name(ncid: c_int, xtype: nc_type,
name: *mut c_schar) -> c_int;
pub fn nc_inq_compound_size(ncid: c_int, xtype: nc_type,
sizep: *mut size_t) -> c_int;
pub fn nc_inq_compound_nfields(ncid: c_int, xtype: nc_type,
nfieldsp: *mut size_t) -> c_int;
pub fn nc_inq_compound_field(ncid: c_int, xtype: nc_type, fieldid: c_int,
name: *mut c_schar, offsetp: *mut size_t,
field_typeidp: *mut nc_type,
ndimsp: *mut c_int, dim_sizesp: *mut c_int)
-> c_int;
pub fn nc_inq_compound_fieldname(ncid: c_int, xtype: nc_type,
fieldid: c_int, name: *mut c_schar) ->
c_int;
pub fn nc_inq_compound_fieldindex(ncid: c_int, xtype: nc_type,
name: *c_schar, fieldidp: *mut c_int) ->
c_int;
pub fn nc_inq_compound_fieldoffset(ncid: c_int, xtype: nc_type,
fieldid: c_int, offsetp: *mut size_t)
-> c_int;
pub fn nc_inq_compound_fieldtype(ncid: c_int, xtype: nc_type,
fieldid: c_int,
field_typeidp: *mut nc_type) -> c_int;
pub fn nc_inq_compound_fieldndims(ncid: c_int, xtype: nc_type,
fieldid: c_int, ndimsp: *mut c_int) ->
c_int;
pub fn nc_inq_compound_fielddim_sizes(ncid: c_int, xtype: nc_type,
fieldid: c_int,
dim_sizes: *mut c_int) -> c_int;
pub fn nc_def_vlen(ncid: c_int, name: *c_schar, base_typeid: nc_type,
xtypep: *mut nc_type) -> c_int;
pub fn nc_inq_vlen(ncid: c_int, xtype: nc_type, name: *mut c_schar,
datum_sizep: *mut size_t, base_nc_typep: *mut nc_type)
-> c_int;
pub fn nc_free_vlen(vl: *mut nc_vlen_t) -> c_int;
pub fn nc_free_vlens(len: size_t, vlens: c_void) -> c_int;
pub fn nc_put_vlen_element(ncid: c_int, typeid1: c_int,
vlen_element: *mut c_void, len: size_t,
data: *c_void) -> c_int;
pub fn nc_get_vlen_element(ncid: c_int, typeid1: c_int,
vlen_element: *c_void, len: *mut size_t,
data: *mut c_void) -> c_int;
pub fn nc_free_string(len: size_t, data: *mut *mut c_schar) -> c_int;
pub fn nc_inq_user_type(ncid: c_int, xtype: nc_type, name: *mut c_schar,
size: *mut size_t, base_nc_typep: *mut nc_type,
nfieldsp: *mut size_t, classp: *mut c_int) ->
c_int;
pub fn nc_put_att(ncid: c_int, varid: c_int, name: *c_schar,
xtype: nc_type, len: size_t, op: *c_void) -> c_int;
pub fn nc_get_att(ncid: c_int, varid: c_int, name: *c_schar,
ip: *mut c_void) -> c_int;
pub fn nc_def_enum(ncid: c_int, base_typeid: nc_type, name: *c_schar,
typeidp: *mut nc_type) -> c_int;
pub fn nc_insert_enum(ncid: c_int, xtype: nc_type, name: *c_schar,
value: *c_void) -> c_int;
pub fn nc_inq_enum(ncid: c_int, xtype: nc_type, name: *mut c_schar,
base_nc_typep: *mut nc_type, base_sizep: *mut size_t,
num_membersp: *mut size_t) -> c_int;
pub fn nc_inq_enum_member(ncid: c_int, xtype: nc_type, idx: c_int,
name: *mut c_schar, value: *mut c_void) ->
c_int;
pub fn nc_inq_enum_ident(ncid: c_int, xtype: nc_type, value: c_longlong,
identifier: *mut c_schar) -> c_int;
pub fn nc_def_opaque(ncid: c_int, size: size_t, name: *c_schar,
xtypep: *mut nc_type) -> c_int;
pub fn nc_inq_opaque(ncid: c_int, xtype: nc_type, name: *mut c_schar,
sizep: *mut size_t) -> c_int;
pub fn nc_put_var(ncid: c_int, varid: c_int, op: *c_void) -> c_int;
pub fn nc_get_var(ncid: c_int, varid: c_int, ip: *mut c_void) -> c_int;
pub fn nc_put_var1(ncid: c_int, varid: c_int, indexp: *size_t,
op: *c_void) -> c_int;
pub fn nc_get_var1(ncid: c_int, varid: c_int, indexp: *size_t,
ip: *mut c_void) -> c_int;
pub fn nc_put_vara(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, op: *c_void) -> c_int;
pub fn nc_get_vara(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, ip: *mut c_void) -> c_int;
pub fn nc_put_vars(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t, op: *c_void) ->
c_int;
pub fn nc_get_vars(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t, ip: *mut c_void)
-> c_int;
pub fn nc_put_varm(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, op: *c_void) -> c_int;
pub fn nc_get_varm(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, ip: *mut c_void) -> c_int;
pub fn nc_def_var_deflate(ncid: c_int, varid: c_int, shuffle: c_int,
deflate: c_int, deflate_level: c_int) -> c_int;
pub fn nc_inq_var_deflate(ncid: c_int, varid: c_int, shufflep: *mut c_int,
deflatep: *mut c_int,
deflate_levelp: *mut c_int) -> c_int;
pub fn nc_inq_var_szip(ncid: c_int, varid: c_int,
options_maskp: *mut c_int,
pixels_per_blockp: *mut c_int) -> c_int;
pub fn nc_def_var_fletcher32(ncid: c_int, varid: c_int, fletcher32: c_int)
-> c_int;
pub fn nc_inq_var_fletcher32(ncid: c_int, varid: c_int,
fletcher32p: *mut c_int) -> c_int;
pub fn nc_def_var_chunking(ncid: c_int, varid: c_int, storage: c_int,
chunksizesp: *size_t) -> c_int;
pub fn nc_inq_var_chunking(ncid: c_int, varid: c_int,
storagep: *mut c_int, chunksizesp: *mut size_t)
-> c_int;
pub fn nc_def_var_fill(ncid: c_int, varid: c_int, no_fill: c_int,
fill_value: *c_void) -> c_int;
pub fn nc_inq_var_fill(ncid: c_int, varid: c_int, no_fill: *mut c_int,
fill_value: *mut c_void) -> c_int;
pub fn nc_def_var_endian(ncid: c_int, varid: c_int, endian: c_int) ->
c_int;
pub fn nc_inq_var_endian(ncid: c_int, varid: c_int, endianp: *mut c_int)
-> c_int;
pub fn nc_set_fill(ncid: c_int, fillmode: c_int, old_modep: *mut c_int) ->
c_int;
pub fn nc_set_default_format(format: c_int, old_formatp: *mut c_int) ->
c_int;
pub fn nc_set_chunk_cache(size: size_t, nelems: size_t,
preemption: c_float) -> c_int;
pub fn nc_get_chunk_cache(sizep: *mut size_t, nelemsp: *mut size_t,
preemptionp: *mut c_float) -> c_int;
pub fn nc_set_var_chunk_cache(ncid: c_int, varid: c_int, size: size_t,
nelems: size_t, preemption: c_float) ->
c_int;
pub fn nc_get_var_chunk_cache(ncid: c_int, varid: c_int,
sizep: *mut size_t, nelemsp: *mut size_t,
preemptionp: *mut c_float) -> c_int;
pub fn nc_redef(ncid: c_int) -> c_int;
pub fn nc__enddef(ncid: c_int, h_minfree: size_t, v_align: size_t,
v_minfree: size_t, r_align: size_t) -> c_int;
pub fn nc_enddef(ncid: c_int) -> c_int;
pub fn nc_sync(ncid: c_int) -> c_int;
pub fn nc_abort(ncid: c_int) -> c_int;
pub fn nc_close(ncid: c_int) -> c_int;
pub fn nc_inq(ncid: c_int, ndimsp: *mut c_int, nvarsp: *mut c_int,
nattsp: *mut c_int, unlimdimidp: *mut c_int) -> c_int;
pub fn nc_inq_ndims(ncid: c_int, ndimsp: *mut c_int) -> c_int;
pub fn nc_inq_nvars(ncid: c_int, nvarsp: *mut c_int) -> c_int;
pub fn nc_inq_natts(ncid: c_int, nattsp: *mut c_int) -> c_int;
pub fn nc_inq_unlimdim(ncid: c_int, unlimdimidp: *mut c_int) -> c_int;
pub fn nc_inq_unlimdims(ncid: c_int, nunlimdimsp: *mut c_int,
unlimdimidsp: *mut c_int) -> c_int;
pub fn nc_inq_format(ncid: c_int, formatp: *mut c_int) -> c_int;
pub fn nc_def_dim(ncid: c_int, name: *c_schar, len: size_t,
idp: *mut c_int) -> c_int;
pub fn nc_inq_dimid(ncid: c_int, name: *c_schar, idp: *mut c_int) ->
c_int;
pub fn nc_inq_dim(ncid: c_int, dimid: c_int, name: *mut c_schar,
lenp: *mut size_t) -> c_int;
pub fn nc_inq_dimname(ncid: c_int, dimid: c_int, name: *mut c_schar) ->
c_int;
pub fn nc_inq_dimlen(ncid: c_int, dimid: c_int, lenp: *mut size_t) ->
c_int;
pub fn nc_rename_dim(ncid: c_int, dimid: c_int, name: *c_schar) -> c_int;
pub fn nc_inq_att(ncid: c_int, varid: c_int, name: *c_schar,
xtypep: *mut nc_type, lenp: *mut size_t) -> c_int;
pub fn nc_inq_attid(ncid: c_int, varid: c_int, name: *c_schar,
idp: *mut c_int) -> c_int;
pub fn nc_inq_atttype(ncid: c_int, varid: c_int, name: *c_schar,
xtypep: *mut nc_type) -> c_int;
pub fn nc_inq_attlen(ncid: c_int, varid: c_int, name: *c_schar,
lenp: *mut size_t) -> c_int;
pub fn nc_inq_attname(ncid: c_int, varid: c_int, attnum: c_int,
name: *mut c_schar) -> c_int;
pub fn nc_copy_att(ncid_in: c_int, varid_in: c_int, name: *c_schar,
ncid_out: c_int, varid_out: c_int) -> c_int;
pub fn nc_rename_att(ncid: c_int, varid: c_int, name: *c_schar,
newname: *c_schar) -> c_int;
pub fn nc_del_att(ncid: c_int, varid: c_int, name: *c_schar) -> c_int;
pub fn nc_put_att_text(ncid: c_int, varid: c_int, name: *c_schar,
len: size_t, op: *c_schar) -> c_int;
pub fn nc_get_att_text(ncid: c_int, varid: c_int, name: *c_schar,
ip: *mut c_schar) -> c_int;
pub fn nc_put_att_uchar(ncid: c_int, varid: c_int, name: *c_schar,
xtype: nc_type, len: size_t, op: *c_uchar) ->
c_int;
pub fn nc_get_att_uchar(ncid: c_int, varid: c_int, name: *c_schar,
ip: *mut c_uchar) -> c_int;
pub fn nc_put_att_schar(ncid: c_int, varid: c_int, name: *c_schar,
xtype: nc_type, len: size_t, op: *c_schar) ->
c_int;
pub fn nc_get_att_schar(ncid: c_int, varid: c_int, name: *c_schar,
ip: *mut c_schar) -> c_int;
pub fn nc_put_att_short(ncid: c_int, varid: c_int, name: *c_schar,
xtype: nc_type, len: size_t, op: *c_short) ->
c_int;
pub fn nc_get_att_short(ncid: c_int, varid: c_int, name: *c_schar,
ip: *mut c_short) -> c_int;
pub fn nc_put_att_int(ncid: c_int, varid: c_int, name: *c_schar,
xtype: nc_type, len: size_t, op: *c_int) -> c_int;
pub fn nc_get_att_int(ncid: c_int, varid: c_int, name: *c_schar,
ip: *mut c_int) -> c_int;
pub fn nc_put_att_long(ncid: c_int, varid: c_int, name: *c_schar,
xtype: nc_type, len: size_t, op: *c_long) -> c_int;
pub fn nc_get_att_long(ncid: c_int, varid: c_int, name: *c_schar,
ip: *mut c_long) -> c_int;
pub fn nc_put_att_float(ncid: c_int, varid: c_int, name: *c_schar,
xtype: nc_type, len: size_t, op: *c_float) ->
c_int;
pub fn nc_get_att_float(ncid: c_int, varid: c_int, name: *c_schar,
ip: *mut c_float) -> c_int;
pub fn nc_put_att_double(ncid: c_int, varid: c_int, name: *c_schar,
xtype: nc_type, len: size_t, op: *c_double) ->
c_int;
pub fn nc_get_att_double(ncid: c_int, varid: c_int, name: *c_schar,
ip: *mut c_double) -> c_int;
pub fn nc_put_att_ushort(ncid: c_int, varid: c_int, name: *c_schar,
xtype: nc_type, len: size_t, op: *c_ushort) ->
c_int;
pub fn nc_get_att_ushort(ncid: c_int, varid: c_int, name: *c_schar,
ip: *mut c_ushort) -> c_int;
pub fn nc_put_att_uint(ncid: c_int, varid: c_int, name: *c_schar,
xtype: nc_type, len: size_t, op: *c_uint) -> c_int;
pub fn nc_get_att_uint(ncid: c_int, varid: c_int, name: *c_schar,
ip: *mut c_uint) -> c_int;
pub fn nc_put_att_longlong(ncid: c_int, varid: c_int, name: *c_schar,
xtype: nc_type, len: size_t, op: *c_longlong)
-> c_int;
pub fn nc_get_att_longlong(ncid: c_int, varid: c_int, name: *c_schar,
ip: *mut c_longlong) -> c_int;
pub fn nc_put_att_ulonglong(ncid: c_int, varid: c_int, name: *c_schar,
xtype: nc_type, len: size_t, op: *c_ulonglong)
-> c_int;
pub fn nc_get_att_ulonglong(ncid: c_int, varid: c_int, name: *c_schar,
ip: *mut c_ulonglong) -> c_int;
pub fn nc_put_att_string(ncid: c_int, varid: c_int, name: *c_schar,
len: size_t, op: *mut *c_schar) -> c_int;
pub fn nc_get_att_string(ncid: c_int, varid: c_int, name: *c_schar,
ip: *mut *mut c_schar) -> c_int;
pub fn nc_def_var(ncid: c_int, name: *c_schar, xtype: nc_type,
ndims: c_int, dimidsp: *c_int, varidp: *mut c_int) ->
c_int;
pub fn nc_inq_var(ncid: c_int, varid: c_int, name: *mut c_schar,
xtypep: *mut nc_type, ndimsp: *mut c_int,
dimidsp: *mut c_int, nattsp: *mut c_int) -> c_int;
pub fn nc_inq_varid(ncid: c_int, name: *c_schar, varidp: *mut c_int) ->
c_int;
pub fn nc_inq_varname(ncid: c_int, varid: c_int, name: *mut c_schar) ->
c_int;
pub fn nc_inq_vartype(ncid: c_int, varid: c_int, xtypep: *mut nc_type) ->
c_int;
pub fn nc_inq_varndims(ncid: c_int, varid: c_int, ndimsp: *mut c_int) ->
c_int;
pub fn nc_inq_vardimid(ncid: c_int, varid: c_int, dimidsp: *mut c_int) ->
c_int;
pub fn nc_inq_varnatts(ncid: c_int, varid: c_int, nattsp: *mut c_int) ->
c_int;
pub fn nc_rename_var(ncid: c_int, varid: c_int, name: *c_schar) -> c_int;
pub fn nc_copy_var(ncid_in: c_int, varid: c_int, ncid_out: c_int) ->
c_int;
pub fn nc_put_var1_text(ncid: c_int, varid: c_int, indexp: *size_t,
op: *c_schar) -> c_int;
pub fn nc_get_var1_text(ncid: c_int, varid: c_int, indexp: *size_t,
ip: *mut c_schar) -> c_int;
pub fn nc_put_var1_uchar(ncid: c_int, varid: c_int, indexp: *size_t,
op: *c_uchar) -> c_int;
pub fn nc_get_var1_uchar(ncid: c_int, varid: c_int, indexp: *size_t,
ip: *mut c_uchar) -> c_int;
pub fn nc_put_var1_schar(ncid: c_int, varid: c_int, indexp: *size_t,
op: *c_schar) -> c_int;
pub fn nc_get_var1_schar(ncid: c_int, varid: c_int, indexp: *size_t,
ip: *mut c_schar) -> c_int;
pub fn nc_put_var1_short(ncid: c_int, varid: c_int, indexp: *size_t,
op: *c_short) -> c_int;
pub fn nc_get_var1_short(ncid: c_int, varid: c_int, indexp: *size_t,
ip: *mut c_short) -> c_int;
pub fn nc_put_var1_int(ncid: c_int, varid: c_int, indexp: *size_t,
op: *c_int) -> c_int;
pub fn nc_get_var1_int(ncid: c_int, varid: c_int, indexp: *size_t,
ip: *mut c_int) -> c_int;
pub fn nc_put_var1_long(ncid: c_int, varid: c_int, indexp: *size_t,
op: *c_long) -> c_int;
pub fn nc_get_var1_long(ncid: c_int, varid: c_int, indexp: *size_t,
ip: *mut c_long) -> c_int;
pub fn nc_put_var1_float(ncid: c_int, varid: c_int, indexp: *size_t,
op: *c_float) -> c_int;
pub fn nc_get_var1_float(ncid: c_int, varid: c_int, indexp: *size_t,
ip: *mut c_float) -> c_int;
pub fn nc_put_var1_double(ncid: c_int, varid: c_int, indexp: *size_t,
op: *c_double) -> c_int;
pub fn nc_get_var1_double(ncid: c_int, varid: c_int, indexp: *size_t,
ip: *mut c_double) -> c_int;
pub fn nc_put_var1_ushort(ncid: c_int, varid: c_int, indexp: *size_t,
op: *c_ushort) -> c_int;
pub fn nc_get_var1_ushort(ncid: c_int, varid: c_int, indexp: *size_t,
ip: *mut c_ushort) -> c_int;
pub fn nc_put_var1_uint(ncid: c_int, varid: c_int, indexp: *size_t,
op: *c_uint) -> c_int;
pub fn nc_get_var1_uint(ncid: c_int, varid: c_int, indexp: *size_t,
ip: *mut c_uint) -> c_int;
pub fn nc_put_var1_longlong(ncid: c_int, varid: c_int, indexp: *size_t,
op: *c_longlong) -> c_int;
pub fn nc_get_var1_longlong(ncid: c_int, varid: c_int, indexp: *size_t,
ip: *mut c_longlong) -> c_int;
pub fn nc_put_var1_ulonglong(ncid: c_int, varid: c_int, indexp: *size_t,
op: *c_ulonglong) -> c_int;
pub fn nc_get_var1_ulonglong(ncid: c_int, varid: c_int, indexp: *size_t,
ip: *mut c_ulonglong) -> c_int;
pub fn nc_put_var1_string(ncid: c_int, varid: c_int, indexp: *size_t,
op: *mut *c_schar) -> c_int;
pub fn nc_get_var1_string(ncid: c_int, varid: c_int, indexp: *size_t,
ip: *mut *mut c_schar) -> c_int;
pub fn nc_put_vara_text(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, op: *c_schar) -> c_int;
pub fn nc_get_vara_text(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, ip: *mut c_schar) -> c_int;
pub fn nc_put_vara_uchar(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, op: *c_uchar) -> c_int;
pub fn nc_get_vara_uchar(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, ip: *mut c_uchar) -> c_int;
pub fn nc_put_vara_schar(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, op: *c_schar) -> c_int;
pub fn nc_get_vara_schar(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, ip: *mut c_schar) -> c_int;
pub fn nc_put_vara_short(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, op: *c_short) -> c_int;
pub fn nc_get_vara_short(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, ip: *mut c_short) -> c_int;
pub fn nc_put_vara_int(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, op: *c_int) -> c_int;
pub fn nc_get_vara_int(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, ip: *mut c_int) -> c_int;
pub fn nc_put_vara_long(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, op: *c_long) -> c_int;
pub fn nc_get_vara_long(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, ip: *mut c_long) -> c_int;
pub fn nc_put_vara_float(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, op: *c_float) -> c_int;
pub fn nc_get_vara_float(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, ip: *mut c_float) -> c_int;
pub fn nc_put_vara_double(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, op: *c_double) -> c_int;
pub fn nc_get_vara_double(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, ip: *mut c_double) -> c_int;
pub fn nc_put_vara_ushort(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, op: *c_ushort) -> c_int;
pub fn nc_get_vara_ushort(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, ip: *mut c_ushort) -> c_int;
pub fn nc_put_vara_uint(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, op: *c_uint) -> c_int;
pub fn nc_get_vara_uint(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, ip: *mut c_uint) -> c_int;
pub fn nc_put_vara_longlong(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, op: *c_longlong) -> c_int;
pub fn nc_get_vara_longlong(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, ip: *mut c_longlong) ->
c_int;
pub fn nc_put_vara_ulonglong(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, op: *c_ulonglong) -> c_int;
pub fn nc_get_vara_ulonglong(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, ip: *mut c_ulonglong) ->
c_int;
pub fn nc_put_vara_string(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, op: *mut *c_schar) -> c_int;
pub fn nc_get_vara_string(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, ip: *mut *mut c_schar) ->
c_int;
pub fn nc_put_vars_text(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
op: *c_schar) -> c_int;
pub fn nc_get_vars_text(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
ip: *mut c_schar) -> c_int;
pub fn nc_put_vars_uchar(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
op: *c_uchar) -> c_int;
pub fn nc_get_vars_uchar(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
ip: *mut c_uchar) -> c_int;
pub fn nc_put_vars_schar(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
op: *c_schar) -> c_int;
pub fn nc_get_vars_schar(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
ip: *mut c_schar) -> c_int;
pub fn nc_put_vars_short(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
op: *c_short) -> c_int;
pub fn nc_get_vars_short(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
ip: *mut c_short) -> c_int;
pub fn nc_put_vars_int(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t, op: *c_int)
-> c_int;
pub fn nc_get_vars_int(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
ip: *mut c_int) -> c_int;
pub fn nc_put_vars_long(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t, op: *c_long)
-> c_int;
pub fn nc_get_vars_long(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
ip: *mut c_long) -> c_int;
pub fn nc_put_vars_float(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
op: *c_float) -> c_int;
pub fn nc_get_vars_float(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
ip: *mut c_float) -> c_int;
pub fn nc_put_vars_double(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
op: *c_double) -> c_int;
pub fn nc_get_vars_double(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
ip: *mut c_double) -> c_int;
pub fn nc_put_vars_ushort(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
op: *c_ushort) -> c_int;
pub fn nc_get_vars_ushort(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
ip: *mut c_ushort) -> c_int;
pub fn nc_put_vars_uint(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t, op: *c_uint)
-> c_int;
pub fn nc_get_vars_uint(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
ip: *mut c_uint) -> c_int;
pub fn nc_put_vars_longlong(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
op: *c_longlong) -> c_int;
pub fn nc_get_vars_longlong(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
ip: *mut c_longlong) -> c_int;
pub fn nc_put_vars_ulonglong(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
op: *c_ulonglong) -> c_int;
pub fn nc_get_vars_ulonglong(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
ip: *mut c_ulonglong) -> c_int;
pub fn nc_put_vars_string(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
op: *mut *c_schar) -> c_int;
pub fn nc_get_vars_string(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
ip: *mut *mut c_schar) -> c_int;
pub fn nc_put_varm_text(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, op: *c_schar) -> c_int;
pub fn nc_get_varm_text(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, ip: *mut c_schar) -> c_int;
pub fn nc_put_varm_uchar(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, op: *c_uchar) -> c_int;
pub fn nc_get_varm_uchar(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, ip: *mut c_uchar) -> c_int;
pub fn nc_put_varm_schar(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, op: *c_schar) -> c_int;
pub fn nc_get_varm_schar(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, ip: *mut c_schar) -> c_int;
pub fn nc_put_varm_short(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, op: *c_short) -> c_int;
pub fn nc_get_varm_short(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, ip: *mut c_short) -> c_int;
pub fn nc_put_varm_int(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, op: *c_int) -> c_int;
pub fn nc_get_varm_int(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, ip: *mut c_int) -> c_int;
pub fn nc_put_varm_long(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, op: *c_long) -> c_int;
pub fn nc_get_varm_long(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, ip: *mut c_long) -> c_int;
pub fn nc_put_varm_float(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, op: *c_float) -> c_int;
pub fn nc_get_varm_float(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, ip: *mut c_float) -> c_int;
pub fn nc_put_varm_double(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, op: *c_double) -> c_int;
pub fn nc_get_varm_double(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, ip: *mut c_double) -> c_int;
pub fn nc_put_varm_ushort(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, op: *c_ushort) -> c_int;
pub fn nc_get_varm_ushort(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, ip: *mut c_ushort) -> c_int;
pub fn nc_put_varm_uint(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, op: *c_uint) -> c_int;
pub fn nc_get_varm_uint(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, ip: *mut c_uint) -> c_int;
pub fn nc_put_varm_longlong(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, op: *c_longlong) -> c_int;
pub fn nc_get_varm_longlong(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, ip: *mut c_longlong) ->
c_int;
pub fn nc_put_varm_ulonglong(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, op: *c_ulonglong) ->
c_int;
pub fn nc_get_varm_ulonglong(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, ip: *mut c_ulonglong) ->
c_int;
pub fn nc_put_varm_string(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, op: *mut *c_schar) -> c_int;
pub fn nc_get_varm_string(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, ip: *mut *mut c_schar) ->
c_int;
pub fn nc_put_var_text(ncid: c_int, varid: c_int, op: *c_schar) -> c_int;
pub fn nc_get_var_text(ncid: c_int, varid: c_int, ip: *mut c_schar) ->
c_int;
pub fn nc_put_var_uchar(ncid: c_int, varid: c_int, op: *c_uchar) -> c_int;
pub fn nc_get_var_uchar(ncid: c_int, varid: c_int, ip: *mut c_uchar) ->
c_int;
pub fn nc_put_var_schar(ncid: c_int, varid: c_int, op: *c_schar) -> c_int;
pub fn nc_get_var_schar(ncid: c_int, varid: c_int, ip: *mut c_schar) ->
c_int;
pub fn nc_put_var_short(ncid: c_int, varid: c_int, op: *c_short) -> c_int;
pub fn nc_get_var_short(ncid: c_int, varid: c_int, ip: *mut c_short) ->
c_int;
pub fn nc_put_var_int(ncid: c_int, varid: c_int, op: *c_int) -> c_int;
pub fn nc_get_var_int(ncid: c_int, varid: c_int, ip: *mut c_int) -> c_int;
pub fn nc_put_var_long(ncid: c_int, varid: c_int, op: *c_long) -> c_int;
pub fn nc_get_var_long(ncid: c_int, varid: c_int, ip: *mut c_long) ->
c_int;
pub fn nc_put_var_float(ncid: c_int, varid: c_int, op: *c_float) -> c_int;
pub fn nc_get_var_float(ncid: c_int, varid: c_int, ip: *mut c_float) ->
c_int;
pub fn nc_put_var_double(ncid: c_int, varid: c_int, op: *c_double) ->
c_int;
pub fn nc_get_var_double(ncid: c_int, varid: c_int, ip: *mut c_double) ->
c_int;
pub fn nc_put_var_ushort(ncid: c_int, varid: c_int, op: *c_ushort) ->
c_int;
pub fn nc_get_var_ushort(ncid: c_int, varid: c_int, ip: *mut c_ushort) ->
c_int;
pub fn nc_put_var_uint(ncid: c_int, varid: c_int, op: *c_uint) -> c_int;
pub fn nc_get_var_uint(ncid: c_int, varid: c_int, ip: *mut c_uint) ->
c_int;
pub fn nc_put_var_longlong(ncid: c_int, varid: c_int, op: *c_longlong) ->
c_int;
pub fn nc_get_var_longlong(ncid: c_int, varid: c_int, ip: *mut c_longlong)
-> c_int;
pub fn nc_put_var_ulonglong(ncid: c_int, varid: c_int, op: *c_ulonglong)
-> c_int;
pub fn nc_get_var_ulonglong(ncid: c_int, varid: c_int,
ip: *mut c_ulonglong) -> c_int;
pub fn nc_put_var_string(ncid: c_int, varid: c_int, op: *mut *c_schar) ->
c_int;
pub fn nc_get_var_string(ncid: c_int, varid: c_int, ip: *mut *mut c_schar)
-> c_int;
pub fn nc_put_att_ubyte(ncid: c_int, varid: c_int, name: *c_schar,
xtype: nc_type, len: size_t, op: *c_uchar) ->
c_int;
pub fn nc_get_att_ubyte(ncid: c_int, varid: c_int, name: *c_schar,
ip: *mut c_uchar) -> c_int;
pub fn nc_put_var1_ubyte(ncid: c_int, varid: c_int, indexp: *size_t,
op: *c_uchar) -> c_int;
pub fn nc_get_var1_ubyte(ncid: c_int, varid: c_int, indexp: *size_t,
ip: *mut c_uchar) -> c_int;
pub fn nc_put_vara_ubyte(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, op: *c_uchar) -> c_int;
pub fn nc_get_vara_ubyte(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, ip: *mut c_uchar) -> c_int;
pub fn nc_put_vars_ubyte(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
op: *c_uchar) -> c_int;
pub fn nc_get_vars_ubyte(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
ip: *mut c_uchar) -> c_int;
pub fn nc_put_varm_ubyte(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, op: *c_uchar) -> c_int;
pub fn nc_get_varm_ubyte(ncid: c_int, varid: c_int, startp: *size_t,
countp: *size_t, stridep: *ptrdiff_t,
imapp: *ptrdiff_t, ip: *mut c_uchar) -> c_int;
pub fn nc_put_var_ubyte(ncid: c_int, varid: c_int, op: *c_uchar) -> c_int;
pub fn nc_get_var_ubyte(ncid: c_int, varid: c_int, ip: *mut c_uchar) ->
c_int;
pub fn nc_show_metadata(ncid: c_int) -> c_int;
pub fn nc__create_mp(path: *c_schar, cmode: c_int, initialsz: size_t,
basepe: c_int, chunksizehintp: *mut size_t,
ncidp: *mut c_int) -> c_int;
pub fn nc__open_mp(path: *c_schar, mode: c_int, basepe: c_int,
chunksizehintp: *mut size_t, ncidp: *mut c_int) ->
c_int;
pub fn nc_delete(path: *c_schar) -> c_int;
pub fn nc_delete_mp(path: *c_schar, basepe: c_int) -> c_int;
pub fn nc_set_base_pe(ncid: c_int, pe: c_int) -> c_int;
pub fn nc_inq_base_pe(ncid: c_int, pe: *mut c_int) -> c_int;
pub fn nctypelen(datatype: nc_type) -> c_int;
pub fn nc_advise(cdf_routine_name: *c_schar, err: c_int,
fmt: *c_schar, ...);
pub fn nccreate(path: *c_schar, cmode: c_int) -> c_int;
pub fn ncopen(path: *c_schar, mode: c_int) -> c_int;
pub fn ncsetfill(ncid: c_int, fillmode: c_int) -> c_int;
pub fn ncredef(ncid: c_int) -> c_int;
pub fn ncendef(ncid: c_int) -> c_int;
pub fn ncsync(ncid: c_int) -> c_int;
pub fn ncabort(ncid: c_int) -> c_int;
pub fn ncclose(ncid: c_int) -> c_int;
pub fn ncinquire(ncid: c_int, ndimsp: *mut c_int, nvarsp: *mut c_int,
nattsp: *mut c_int, unlimdimp: *mut c_int) -> c_int;
pub fn ncdimdef(ncid: c_int, name: *c_schar, len: c_long) -> c_int;
pub fn ncdimid(ncid: c_int, name: *c_schar) -> c_int;
pub fn ncdiminq(ncid: c_int, dimid: c_int, name: *mut c_schar,
lenp: *mut c_long) -> c_int;
pub fn ncdimrename(ncid: c_int, dimid: c_int, name: *c_schar) -> c_int;
pub fn ncattput(ncid: c_int, varid: c_int, name: *c_schar, xtype: nc_type,
len: c_int, op: *c_void) -> c_int;
pub fn ncattinq(ncid: c_int, varid: c_int, name: *c_schar,
xtypep: *mut nc_type, lenp: *mut c_int) -> c_int;
pub fn ncattget(ncid: c_int, varid: c_int, name: *c_schar,
ip: *mut c_void) -> c_int;
pub fn ncattcopy(ncid_in: c_int, varid_in: c_int, name: *c_schar,
ncid_out: c_int, varid_out: c_int) -> c_int;
pub fn ncattname(ncid: c_int, varid: c_int, attnum: c_int,
name: *mut c_schar) -> c_int;
pub fn ncattrename(ncid: c_int, varid: c_int, name: *c_schar,
newname: *c_schar) -> c_int;
pub fn ncattdel(ncid: c_int, varid: c_int, name: *c_schar) -> c_int;
pub fn ncvardef(ncid: c_int, name: *c_schar, xtype: nc_type, ndims: c_int,
dimidsp: *c_int) -> c_int;
pub fn ncvarid(ncid: c_int, name: *c_schar) -> c_int;
pub fn ncvarinq(ncid: c_int, varid: c_int, name: *mut c_schar,
xtypep: *mut nc_type, ndimsp: *mut c_int,
dimidsp: *mut c_int, nattsp: *mut c_int) -> c_int;
pub fn ncvarput1(ncid: c_int, varid: c_int, indexp: *c_long, op: *c_void)
-> c_int;
pub fn ncvarget1(ncid: c_int, varid: c_int, indexp: *c_long,
ip: *mut c_void) -> c_int;
pub fn ncvarput(ncid: c_int, varid: c_int, startp: *c_long,
countp: *c_long, op: *c_void) -> c_int;
pub fn ncvarget(ncid: c_int, varid: c_int, startp: *c_long,
countp: *c_long, ip: *mut c_void) -> c_int;
pub fn ncvarputs(ncid: c_int, varid: c_int, startp: *c_long,
countp: *c_long, stridep: *c_long, op: *c_void) -> c_int;
pub fn ncvargets(ncid: c_int, varid: c_int, startp: *c_long,
countp: *c_long, stridep: *c_long, ip: *mut c_void) ->
c_int;
pub fn ncvarputg(ncid: c_int, varid: c_int, startp: *c_long,
countp: *c_long, stridep: *c_long, imapp: *c_long,
op: *c_void) -> c_int;
pub fn ncvargetg(ncid: c_int, varid: c_int, startp: *c_long,
countp: *c_long, stridep: *c_long, imapp: *c_long,
ip: *mut c_void) -> c_int;
pub fn ncvarrename(ncid: c_int, varid: c_int, name: *c_schar) -> c_int;
pub fn ncrecinq(ncid: c_int, nrecvarsp: *mut c_int,
recvaridsp: *mut c_int, recsizesp: *mut c_long) -> c_int;
pub fn ncrecget(ncid: c_int, recnum: c_long, datap: *mut *mut c_void) ->
c_int;
pub fn ncrecput(ncid: c_int, recnum: c_long, datap: **mut c_void) ->
c_int;
}
#[allow(non_camel_case_types)]
#[allow(dead_code)]
pub enum NetCDFConstants {
NC_NOWRITE = 0,
NC_WRITE = 0x0001
}
//extern crate green;
extern crate netcdf;
use std::libc::{c_int};
use std::c_str::CString;
use std::str;
use std::io::File;
use netcdf::{nc_inq_varid, nc_get_var, nc_open, nc_close, nc_strerror};
use netcdf::{NC_NOWRITE};
/*
#[start]
fn start(argc: int, argv: **u8) -> int { green::start(argc, argv, main) }
*/
fn dumpf32(data: &[f32], filename: &str) {
let mut fldf = File::create(&Path::new(filename));
// convert the data into a u8 because that's what write needs
unsafe {
std::slice::raw::buf_as_slice(data.as_ptr() as *u8,
data.len() * std::mem::size_of::<f32>(),
|buf| {
if fldf.write(buf).is_err() {
println!("error writing field {}!" ,
filename);
} });
}
if fldf.flush().is_err() { println!("couldn\'t flush {}" , filename); }
}
fn writefield(data: &mut [f32], ncdf: c_int, fieldname: CString,
filename: &str) {
let mut varid: c_int = 0;
unsafe {
let mut rvinq: c_int = 0;
fieldname.with_ref(|fname| {
rvinq = nc_inq_varid(ncdf, fname, &mut varid) });
if rvinq != 0 {
let errstr = CString::new(nc_strerror(rvinq), false);
println!("err inq ({}): {} ({})" , fieldname . as_str ( ) , str ::
from_utf8 ( errstr . as_bytes ( ) ) , rvinq);
return;
}
}
unsafe {
let rde =
nc_get_var(ncdf, varid, std::cast::transmute(data.as_mut_ptr()));
if rde != 0 {
let errstr = CString::new(nc_strerror(rde), false);
println!("err inq: {} ({})" , str :: from_utf8
( errstr . as_bytes ( ) ) , rde);
return;
}
}
dumpf32(data, filename);
}
fn main() {
println!("main!");
let mut hdl: c_int = 0;
let fname = "/home/tfogal/data/astrophysics/BURSc2198.nc".to_c_str();
unsafe {
let mut rvopen: c_int = 0;
fname.with_ref(|filename| {
rvopen = nc_open(filename, NC_NOWRITE as i32, &mut hdl)
});
println!("handle: {}, open: {}" , hdl , rvopen);
if rvopen != 0 {
let errstr = CString::new(nc_strerror(rvopen), false);
println!("err: {} ({})" , rvopen , str :: from_utf8
( errstr . as_bytes ( ) ));
}
};
let mut data = ~([0f32,..1000 * 1000 * 1000]);
writefield(*data, hdl, "XVelocity".to_c_str(), "xvelocity.raw.f32");
unsafe { nc_close(hdl); }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment