This commit is contained in:
Russ Rew 2014-04-01 12:05:06 -06:00
commit ca7cbdfee8
5 changed files with 130 additions and 62 deletions

3
cf
View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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
View 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"