mirror of
https://github.com/Unidata/netcdf-c.git
synced 2025-02-23 16:59:54 +08:00
Merge branch 'master' of https://github.com/Unidata/netcdf-c
This commit is contained in:
commit
ca7cbdfee8
3
cf
3
cf
@ -24,6 +24,7 @@ CFLAGS=""
|
||||
FORCE="-i"
|
||||
|
||||
#INSTALL=1
|
||||
#PREFIX=/usr/local
|
||||
PREFIX=/usr/local
|
||||
|
||||
if test "x$cmds" = x ; then
|
||||
@ -170,7 +171,7 @@ FLAGS="$FLAGS --enable-dap-auth-tests"
|
||||
#valgrind => not shared
|
||||
#FLAGS="$FLAGS --enable-valgrind-tests"
|
||||
|
||||
FLAGS="$FLAGS --disable-shared"
|
||||
#FLAGS="$FLAGS --disable-shared"
|
||||
#FLAGS="$FLAGS --enable-shared"
|
||||
|
||||
if test "x$HDF5" = "x" ; then
|
||||
|
@ -5147,7 +5147,7 @@ NC3_get_vara(int ncid, int varid,
|
||||
/* If this is a record variable, then we have to
|
||||
substitute the number of records into dimension 0. */
|
||||
if(varp->shape[0] == 0) {
|
||||
memcpy((void*)modedges,(void*)varp->shape,
|
||||
(void*)memcpy((void*)modedges,(void*)varp->shape,
|
||||
sizeof(size_t)*varp->ndims);
|
||||
modedges[0] = NC_get_numrecs(nc3);
|
||||
edges = modedges;
|
||||
@ -5280,7 +5280,7 @@ NC3_put_vara(int ncid, int varid,
|
||||
/* If this is a record variable, then we have to
|
||||
substitute the number of records into dimension 0. */
|
||||
if(varp->shape[0] == 0) {
|
||||
memcpy((void*)modedges,(void*)varp->shape,
|
||||
(void*)memcpy((void*)modedges,(void*)varp->shape,
|
||||
sizeof(size_t)*varp->ndims);
|
||||
modedges[0] = NC_get_numrecs(nc3);
|
||||
edges = modedges;
|
||||
|
@ -156,16 +156,17 @@ nc_inq_dimid2(int ncid, const char *dimname, int *dimidp) {
|
||||
}
|
||||
#ifdef USE_NETCDF4
|
||||
else { /* Parse group name out and get dimid using that */
|
||||
size_t grp_namelen = sp - dimname;
|
||||
char *grpname = emalloc(grp_namelen + 1);
|
||||
int grpid;
|
||||
strncpy(grpname, dimname, grp_namelen);
|
||||
grpname[grp_namelen] = '\0';
|
||||
ret = nc_inq_grp_full_ncid(ncid, grpname, &grpid);
|
||||
if(ret == NC_NOERR) {
|
||||
ret = nc_inq_dimid(grpid, dimname, dimidp);
|
||||
}
|
||||
free(grpname);
|
||||
size_t grp_namelen = sp - dimname;
|
||||
char *grpname = emalloc(grp_namelen+1);
|
||||
|
||||
int grpid;
|
||||
strncpy(grpname, dimname, grp_namelen+1);
|
||||
grpname[grp_namelen] = '\0';
|
||||
ret = nc_inq_grp_full_ncid(ncid, grpname, &grpid);
|
||||
if(ret == NC_NOERR) {
|
||||
ret = nc_inq_dimid(grpid, dimname, dimidp);
|
||||
}
|
||||
free(grpname);
|
||||
}
|
||||
#endif /* USE_NETCDF4 */
|
||||
return ret;
|
||||
|
111
ncgen3/load.c
111
ncgen3/load.c
@ -9,6 +9,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <assert.h>
|
||||
#include <netcdf.h>
|
||||
#include "generic.h"
|
||||
#include "ncgen.h"
|
||||
@ -60,12 +61,12 @@ gen_load_c(
|
||||
)
|
||||
{
|
||||
int idim, ival;
|
||||
char *val_string;
|
||||
char *charvalp;
|
||||
short *shortvalp;
|
||||
int *intvalp;
|
||||
float *floatvalp;
|
||||
double *doublevalp;
|
||||
char *val_string = NULL;
|
||||
char *charvalp = NULL;
|
||||
short *shortvalp = NULL;
|
||||
int *intvalp = NULL;
|
||||
float *floatvalp = NULL;
|
||||
double *doublevalp = NULL;
|
||||
char stmnt[C_MAX_STMNT];
|
||||
size_t stmnt_len;
|
||||
char s2[C_MAX_STMNT] = {'\0'};
|
||||
@ -123,21 +124,26 @@ gen_load_c(
|
||||
for (ival = 0; ival < var_len-1; ival++) {
|
||||
switch (vars[varnum].type) {
|
||||
case NC_BYTE:
|
||||
sprintf(s2, "%d, ", *charvalp++);
|
||||
assert(charvalp != NULL);
|
||||
sprintf(s2, "%d, ", *charvalp++);
|
||||
break;
|
||||
case NC_SHORT:
|
||||
sprintf(s2, "%d, ", *shortvalp++);
|
||||
assert(shortvalp != NULL);
|
||||
sprintf(s2, "%d, ", *shortvalp++);
|
||||
break;
|
||||
case NC_INT:
|
||||
sprintf(s2, "%ld, ", (long)*intvalp++);
|
||||
assert(intvalp != NULL);
|
||||
sprintf(s2, "%ld, ", (long)*intvalp++);
|
||||
break;
|
||||
case NC_FLOAT:
|
||||
sprintf(s2, "%.8g, ", *floatvalp++);
|
||||
assert(floatvalp != NULL);
|
||||
sprintf(s2, "%.8g, ", *floatvalp++);
|
||||
break;
|
||||
case NC_DOUBLE:
|
||||
sprintf(s2, "%#.16g", *doublevalp++);
|
||||
tztrim(s2);
|
||||
strcat(s2, ", ");
|
||||
assert(doublevalp != NULL);
|
||||
sprintf(s2, "%#.16g", *doublevalp++);
|
||||
tztrim(s2);
|
||||
strcat(s2, ", ");
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
@ -151,33 +157,38 @@ gen_load_c(
|
||||
}
|
||||
}
|
||||
for (;ival < var_len; ival++) {
|
||||
switch (vars[varnum].type) {
|
||||
case NC_BYTE:
|
||||
sprintf(s2, "%d", *charvalp);
|
||||
break;
|
||||
case NC_SHORT:
|
||||
sprintf(s2, "%d", *shortvalp);
|
||||
break;
|
||||
case NC_INT:
|
||||
sprintf(s2, "%ld", (long)*intvalp);
|
||||
break;
|
||||
case NC_FLOAT:
|
||||
sprintf(s2, "%.8g", *floatvalp);
|
||||
break;
|
||||
case NC_DOUBLE:
|
||||
sprintf(s2, "%#.16g", *doublevalp++);
|
||||
tztrim(s2);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
stmnt_len += strlen(s2);
|
||||
if (stmnt_len < C_MAX_STMNT)
|
||||
strcat(stmnt, s2);
|
||||
else {
|
||||
cline(stmnt);
|
||||
strcpy(stmnt,s2);
|
||||
stmnt_len = strlen(stmnt);
|
||||
}
|
||||
switch (vars[varnum].type) {
|
||||
case NC_BYTE:
|
||||
assert(charvalp != NULL);
|
||||
sprintf(s2, "%d", *charvalp);
|
||||
break;
|
||||
case NC_SHORT:
|
||||
assert(shortvalp != NULL);
|
||||
sprintf(s2, "%d", *shortvalp);
|
||||
break;
|
||||
case NC_INT:
|
||||
assert(intvalp != NULL);
|
||||
sprintf(s2, "%ld", (long)*intvalp);
|
||||
break;
|
||||
case NC_FLOAT:
|
||||
assert(floatvalp != NULL);
|
||||
sprintf(s2, "%.8g", *floatvalp);
|
||||
break;
|
||||
case NC_DOUBLE:
|
||||
assert(doublevalp != NULL);
|
||||
sprintf(s2, "%#.16g", *doublevalp++);
|
||||
tztrim(s2);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
stmnt_len += strlen(s2);
|
||||
if (stmnt_len < C_MAX_STMNT)
|
||||
strcat(stmnt, s2);
|
||||
else {
|
||||
cline(stmnt);
|
||||
strcpy(stmnt,s2);
|
||||
stmnt_len = strlen(stmnt);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -289,15 +300,17 @@ fstrcat(
|
||||
size_t *slenp /* pointer to length of source string */
|
||||
)
|
||||
{
|
||||
*slenp += strlen(t);
|
||||
if (*slenp >= FORT_MAX_STMNT) {
|
||||
derror("FORTRAN statement too long: %s",s);
|
||||
fline(s);
|
||||
strcpy(s, t);
|
||||
*slenp = strlen(s);
|
||||
} else {
|
||||
strcat(s, t);
|
||||
}
|
||||
|
||||
*slenp += strlen(t);
|
||||
|
||||
if (*slenp >= FORT_MAX_STMNT) {
|
||||
derror("FORTRAN statement too long: %s",s);
|
||||
fline(s);
|
||||
strncpy(s, t, FORT_MAX_STMNT);
|
||||
*slenp = strlen(s);
|
||||
} else {
|
||||
strncat(s, t, strlen(t));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
53
wjna
Normal file
53
wjna
Normal file
@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
|
||||
JNADIR="c:/Users/dmh/opt/jna"
|
||||
|
||||
PREFIX="${JNADIR}"
|
||||
|
||||
# CMAKE Prefix Path
|
||||
CPP="${JNADIR}"
|
||||
|
||||
CMP="${CPP}/deps/shared/share/cmake"
|
||||
|
||||
INCLUDES="${JNADIR}/deps/shared/include"
|
||||
|
||||
FLAGS=""
|
||||
|
||||
# Why does this not work?
|
||||
#FLAGS="-DHDF5_LIBRARY=${CPP} ${FLAGS}"
|
||||
#FLAGS="-DHDF5_INCLUDE_DIR=${INCLUDES} ${FLAGS}"
|
||||
|
||||
# But this does
|
||||
#CPP="${CPP};${CMP}"
|
||||
|
||||
FLAGS="-DCMAKE_INSTALL_PREFIX=${PREFIX} ${FLAGS}"
|
||||
#FLAGS="-DCMAKE_PREFIX_PATH=${CPP} ${FLAGS}"
|
||||
|
||||
FLAGS="-DHDF5_LIB=${CPP}/hdf5.dll ${FLAGS}"
|
||||
FLAGS="-DHDF5_HL_LIB=${CPP}/hdf5_hl.dll ${FLAGS}"
|
||||
FLAGS="-DHDF5_INCLUDE_DIR=${INCLUDES} ${FLAGS}"
|
||||
|
||||
FLAGS="-DZLIB_LIBRARY=${CPP}/zlib.dll ${FLAGS}"
|
||||
FLAGS="-DZLIB_INCLUDE_DIR=${INCLUDES} ${FLAGS}"
|
||||
|
||||
FLAGS="-DCURL_LIBRARY=${CPP}/libcurl.dll ${FLAGS}"
|
||||
FLAGS="-DCURL_INCLUDE_DIR=${INCLUDES} ${FLAGS}"
|
||||
|
||||
FLAGS="-ENABLE_CONVERSION_WARNINGS=OFF ${FLAGS}"
|
||||
FLAGS="-DBUILD_UTILITIES=OFF ${FLAGS}"
|
||||
FLAGS="-DENABLE_EXAMPLES=OFF ${FLAGS}"
|
||||
FLAGS="-BUILD_V2=OFF ${FLAGS}"
|
||||
|
||||
rm -fr ./build
|
||||
mkdir build
|
||||
pushd build
|
||||
cmake -G"Visual Studio 10" ${FLAGS} ..
|
||||
cmake --build . --config Release
|
||||
popd
|
||||
|
||||
exit
|
||||
|
||||
# heap
|
||||
#FLAGS="-DHDF5_LIBRARY=${CPP} ${FLAGS}"
|
||||
#FLAGS="-DHDF5_INCLUDE_DIRS=/usr/local/include ${FLAGS}"
|
||||
#CPP="${JNADIR}/deps/shared/share/cmake"
|
Loading…
Reference in New Issue
Block a user