diff --git a/app/printinfo.c b/app/printinfo.c index 1fe76d4bdbad4c840f482ea03b5f1fa789a31ef7..91e17493b380445528c245347e9f834d96904735 100644 --- a/app/printinfo.c +++ b/app/printinfo.c @@ -116,7 +116,7 @@ printFiletype(int streamID, int vlistID) static void print_xvals(int gridID, int dig) { - size_t xsize = gridInqXsize(gridID); + SizeType xsize = gridInqXsize(gridID); if (xsize > 0 && gridInqXvals(gridID, NULL)) { char xname[CDI_MAX_NAME], xunits[CDI_MAX_NAME]; @@ -141,7 +141,7 @@ print_xvals(int gridID, int dig) static void print_yvals(int gridID, int dig) { - size_t ysize = gridInqYsize(gridID); + SizeType ysize = gridInqYsize(gridID); if (ysize > 0 && gridInqYvals(gridID, NULL)) { char yname[CDI_MAX_NAME], yunits[CDI_MAX_NAME]; diff --git a/examples/cdi_write_const.c b/examples/cdi_write_const.c index d5d42156faac22c2d4ec165049c2d794042b1092..58328bdbc0337c02f87222d569fad974ef0cde03 100644 --- a/examples/cdi_write_const.c +++ b/examples/cdi_write_const.c @@ -10,7 +10,7 @@ main(void) { int gridID, zaxisID1, zaxisID2; int vlistID, varID1, varID2, streamID; - size_t i, numMissVals = 0; + SizeType numMissVals = 0; double lons[nlon] = { 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330 }; double lats[nlat] = { -75, -45, -15, 15, 45, 75 }; double levs[nlev] = { 101300, 92500, 85000, 50000, 20000 }; @@ -67,8 +67,8 @@ main(void) streamDefTimestep(streamID, 0); // Init var1 and var2 - for (i = 0; i < nlon * nlat; i++) var1[i] = 1.1; - for (i = 0; i < nlon * nlat * nlev; i++) var2[i] = 2.2; + for (size_t i = 0; i < nlon * nlat; i++) var1[i] = 1.1; + for (size_t i = 0; i < nlon * nlat * nlev; i++) var2[i] = 2.2; // Write var1 and var2 streamWriteVar(streamID, varID1, var1, numMissVals); diff --git a/examples/cdi_write_local.c b/examples/cdi_write_local.c index 475ec0294b67e04a8cce1cc2a3386a732ebf20dc..d1442820ada38bc6a1f4b7a215ad96640467fb93 100644 --- a/examples/cdi_write_local.c +++ b/examples/cdi_write_local.c @@ -11,7 +11,7 @@ main(void) { int gridID, zaxisID1, zaxisID2, taxisID; int vlistID, varID1, varID2, streamID; - size_t numMissVals = 0; + SizeType numMissVals = 0; double lons[nlon] = { 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330 }; double lats[nlat] = { -75, -45, -15, 15, 45, 75 }; double levs[nlev] = { 101300, 92500, 85000, 50000, 20000 }; diff --git a/src/cdf_read.c b/src/cdf_read.c index 85b3f2f285654d6ff5ad91af255d32d9df0b3119..bb58c078a7e2e12174e263893c7aa50b32915172 100644 --- a/src/cdf_read.c +++ b/src/cdf_read.c @@ -456,7 +456,7 @@ cdfGetSliceSlapDescription(stream_t *streamptr, int tsID, int varID, int levelID int gridId = vlistInqVarGrid(vlistID, varID); int timetype = vlistInqVarTimetype(vlistID, varID); - size_t gridsize = gridInqSize(gridId); + SizeType gridsize = gridInqSize(gridId); streamptr->numvals += gridsize; @@ -973,11 +973,11 @@ cdfReadVarSliceDPPart(stream_t *streamptr, int varID, int levelID, int varType, cdfGetSliceSlapDescription(streamptr, streamptr->curTsID, varID, levelID, &swapxy, start, count); int gridId = vlistInqVarGrid(vlistID, varID); - size_t gridsize = gridInqSize(gridId); + SizeType gridsize = gridInqSize(gridId); unsigned int position = 0; for (int i = 0; i < MAX_DIMENSIONS; ++i) - if (count[i] == gridsize) position = i; + if (count[i] == (size_t)gridsize) position = i; start[position] = start[position] + startpoint; count[position] = length; @@ -1004,11 +1004,11 @@ cdfReadVarSliceSPPart(stream_t *streamptr, int varID, int levelID, int varType, cdfGetSliceSlapDescription(streamptr, streamptr->curTsID, varID, levelID, &swapxy, start, count); int gridId = vlistInqVarGrid(vlistID, varID); - size_t gridsize = gridInqSize(gridId); + SizeType gridsize = gridInqSize(gridId); unsigned int position = 0; for (int i = 0; i < MAX_DIMENSIONS; ++i) - if (count[i] == gridsize) position = i; + if (count[i] == (size_t)gridsize) position = i; start[position] = start[position] + startpoint; count[position] = length; diff --git a/src/cdipio.h b/src/cdipio.h index c1401954b50d34532c64686933ef115b9aceb2d6..362f1399f892423697743ee4e83e0066c0dbd449 100644 --- a/src/cdipio.h +++ b/src/cdipio.h @@ -12,6 +12,7 @@ //FINT_ON <--- don't change or remove this line!!! // Start of fortran interface for the following routines (make_fint.c) +#include <stdbool.h> #include <mpi.h> @@ -38,6 +39,8 @@ /* parallel IO routines */ #include <yaxt.h> +#include "cdi.h" + void pioEndDef(void); void pioEndTimestepping(void); void pioFinalize(void); @@ -47,7 +50,8 @@ void pioFinalize(void); void cdiPioNoPostCommSetup(void); /* pioInit: initialize I/O server processes and communication * Deprecated, use cdiPioInit instead! */ -MPI_Comm pioInit(MPI_Comm commSuper, int nProcsIO, int IOMode, int *pioNamespace, float partInflate, +MPI_Comm pioInit(MPI_Comm commSuper, int nProcsIO, int IOMode, + int *pioNamespace, float partInflate, void (*postCommSetupActions)(void)); /* cdiPioInit: initialize I/O server processes and communication */ MPI_Comm cdiPioInit(MPI_Comm commSuper, int confResH, int *pioNamespace); @@ -67,7 +71,9 @@ void cdiPioRDMAProgress(void); * conversion[varID] == CDI_DATATYPE_FLT64 or with streamWriteVarF * (i.e. as float) with conversion[varID] == CDI_DATATYPE_FLT32 */ -void cdiPioStreamDefDecomposedVlist(int streamID, int vlistID, const Xt_idxlist partDesc[], const int conversion[]); +void cdiPioStreamDefDecomposedVlist(int streamID, int vlistID, + const Xt_idxlist partDesc[], + const int conversion[]); /* streamWriteVarPart: Write part of the data making up variable varID * of stream streamID. @@ -80,14 +86,16 @@ void cdiPioStreamDefDecomposedVlist(int streamID, int vlistID, const Xt_idxlist * the corresponding array passed to streamWriteVar in the serial version. * The group of processes collectively calling streamWriteVarPart * must provide data for all indices or the behaviour is undefined. */ -void streamWriteVarPart(int streamID, int varID, const double *data, int numMissVals, Xt_idxlist partDesc); +void streamWriteVarPart(int streamID, int varID, const double *data, + SizeType numMissVals, Xt_idxlist partDesc); /* streamWriteVarPartF: Write part of the data making up variable * varID of stream streamID. * * Single-precision version of streamWriteVarPart. */ -void streamWriteVarPartF(int streamID, int varID, const float *data, int numMissVals, Xt_idxlist partDesc); +void streamWriteVarPartF(int streamID, int varID, const float *data, + SizeType numMissVals, Xt_idxlist partDesc); /* streamWriteScatteredVarPart: Write part of the data making up * variable varID of stream streamID. @@ -96,16 +104,20 @@ void streamWriteVarPartF(int streamID, int varID, const float *data, int numMiss * contiguous sequence but instead the numBlocks chunks of length * blocklengths[i] and starting displacements[i] each for i in [0,numBlocks) */ -void streamWriteScatteredVarPart(int streamID, int varID, const double *data, int numBlocks, const int blocklengths[], - const int displacements[], int numMissVals, Xt_idxlist partDesc); +void streamWriteScatteredVarPart(int streamID, int varID, const double *data, + int numBlocks, const int blocklengths[], + const int displacements[], + SizeType numMissVals, Xt_idxlist partDesc); /* streamWriteScatteredVarPartF: Write part of the data making up * variable varID of stream streamID. * * Single-precision version of streamWriteScatteredVarPart. */ -void streamWriteScatteredVarPartF(int streamID, int varID, const float *data, int numBlocks, const int blocklengths[], - const int displacements[], int numMissVals, Xt_idxlist partDesc); +void streamWriteScatteredVarPartF(int streamID, int varID, const float *data, + int numBlocks, const int blocklengths[], + const int displacements[], + SizeType numMissVals, Xt_idxlist partDesc); /* cdiPioCSRLastN: return role codes appropriate to use the last \textit{nProcsIO} tasks as I/O servers */ int cdiPioCSRLastN(MPI_Comm commSuper, int IOMode, int nProcsIO); @@ -156,7 +168,8 @@ int cdiPioConfGetCSRole(int confResH); * setup of client/server communications of configuration object. * Deprecated: use cdiPioConfSetCallBackActions with * trigger == CDIPIO_CALLBACK_POSTCOMMSETUP in new programs! */ -void cdiPioConfSetPostCommSetupActions(int confResH, void (*postCommSetupActions)(void)); +void cdiPioConfSetPostCommSetupActions(int confResH, + void (*postCommSetupActions)(void)); /* cdiPioConfGetPostCommSetupActions: get function to be called after * setup of client/server communications from configuration object. @@ -183,7 +196,8 @@ void (*cdiPioConfGetPostCommSetupActions(int confResH))(void); /* cdiPioConfSetCallBack: set function to be called at * indicated trigger of configuration object, action will be cast to * the appropriate type as indicated for the respective trigger */ -void cdiPioConfSetCallBackActions(int confResH, int trigger, void (*action)(void)); +void cdiPioConfSetCallBackActions(int confResH, int trigger, + void (*action)(void)); /* cdiPioConfGetCallBack: query function to be called at * indicated trigger of configuration object */ @@ -304,8 +318,10 @@ int cdiPioConfGetBatchedRMA(int confResH); * specify the part size of the y-dimension and chunk_decomposition[0][0] the x dimension start * index. For unstructured grids only the x-dimension applies. */ -int cdiPioDistGridCreate(int gridtype, int size, int xsize, int ysize, int nvertex, const int xy_decomposition_optional[][2], - Xt_idxlist partDesc2D, Xt_idxlist partDescX, Xt_idxlist partDescY); +int cdiPioDistGridCreate(int gridtype, int size, int xsize, int ysize, + int nvertex, const int xy_decomposition_optional[][2], + Xt_idxlist partDesc2D, Xt_idxlist partDescX, + Xt_idxlist partDescY); /* cdiPioDistGridEnableIndividualQueries: for the provided gridID, the * queries diff --git a/src/grb_write.c b/src/grb_write.c index f61138b49e7b787caeb694ad94e3cbe5b1b78770..e7cee6d2a0d33f599f557e43f5e60c75442beccb 100644 --- a/src/grb_write.c +++ b/src/grb_write.c @@ -25,7 +25,7 @@ static size_t grb_encode(int filetype, int memType, int datatype, int varID, int levelID, int vlistID, int gridID, int zaxisID, - CdiDateTime vDateTime, int tsteptype, int numavg, size_t datasize, const void *data, size_t numMissVals, + CdiDateTime vDateTime, int tsteptype, int numavg, SizeType datasize, const void *data, SizeType numMissVals, void **gribbuffer, int comptype, void *gribContainers) { size_t nbytes = 0; @@ -33,7 +33,7 @@ grb_encode(int filetype, int memType, int datatype, int varID, int levelID, int #ifdef HAVE_LIBCGRIBEX if (filetype == CDI_FILETYPE_GRB && !CDI_gribapi_grib1) { - size_t gribbuffersize = datasize * 4 + 3000; + size_t gribbuffersize = (size_t)datasize * 4 + 3000; *gribbuffer = Malloc(gribbuffersize); nbytes = cgribexEncode(memType, varID, levelID, vlistID, gridID, zaxisID, vDateTime, tsteptype, numavg, datasize, data, @@ -60,13 +60,13 @@ grb_encode(int filetype, int memType, int datatype, int varID, int levelID, int { // printf("gribapi write: convert float to double\n"); const float *dataf = (const float *) data; - double *datad = (double *) Malloc(datasize * sizeof(double)); - for (size_t i = 0; i < datasize; ++i) datad[i] = (double) dataf[i]; + double *datad = Malloc((size_t)datasize * sizeof(double)); + for (size_t i = 0; i < (size_t)datasize; ++i) datad[i] = (double) dataf[i]; datap = (const void *) datad; } size_t gribbuffersize; - nbytes = gribapiEncode(memTypeX, varID, levelID, vlistID, gridID, zaxisID, vDateTime, tsteptype, numavg, (long) datasize, + nbytes = gribapiEncode(memTypeX, varID, levelID, vlistID, gridID, zaxisID, vDateTime, tsteptype, numavg, (size_t) datasize, datap, numMissVals, gribbuffer, &gribbuffersize, comptype, gribContainer); if (!useFloatInterface && memType == MEMTYPE_FLOAT) Free((void *) datap); @@ -393,7 +393,7 @@ grb_write_var_slice(stream_t *streamptr, int varID, int levelID, int memtype, co if (CDI_Debug) Message("gridID = %d zaxisID = %d", gridID, zaxisID); - size_t datasize = gridInqSize(gridID); + SizeType datasize = gridInqSize(gridID); if (comptype != CDI_COMPRESS_JPEG && comptype != CDI_COMPRESS_SZIP && comptype != CDI_COMPRESS_AEC) comptype = CDI_COMPRESS_NONE; diff --git a/src/grid.c b/src/grid.c index 9d1eb1bff05ed25efad77ffc2598d409f48ea274..1a9f03eec6cfb5ce6351e0cc6315f0e98aed2a40 100644 --- a/src/grid.c +++ b/src/grid.c @@ -1056,14 +1056,17 @@ gridDefXsize(int gridID, SizeType xsize) { grid_t *gridptr = grid_to_pointer(gridID); - size_t gridSize = gridInqSize(gridID); - if ((size_t) xsize > gridSize) Error("xsize %zu is greater then gridsize %zu", (size_t) xsize, gridSize); + SizeType gridSize = gridInqSize(gridID); + if (xsize > gridSize) Error("xsize %lld is greater then gridsize %lld", + (long long) xsize, (long long)gridSize); int gridType = gridInqType(gridID); - if (gridType == GRID_UNSTRUCTURED && (size_t) xsize != gridSize) - Error("xsize %zu must be equal to gridsize %zu for gridtype: %s", (size_t) xsize, gridSize, gridNamePtr(gridType)); - if (gridType == GRID_GAUSSIAN_REDUCED && xsize != 2 && (size_t) xsize != gridSize) - Error("xsize %zu must be equal to gridsize %zu for gridtype: %s", (size_t) xsize, gridSize, gridNamePtr(gridType)); + if (gridType == GRID_UNSTRUCTURED && xsize != gridSize) + Error("xsize %lld must be equal to gridsize %lld for gridtype: %s", + (long long)xsize, (long long)gridSize, gridNamePtr(gridType)); + if (gridType == GRID_GAUSSIAN_REDUCED && xsize != 2 && xsize != gridSize) + Error("xsize %lld must be equal to gridsize %lld for gridtype: %s", + (long long)xsize, (long long)gridSize, gridNamePtr(gridType)); if (gridptr->x.size != (size_t) xsize) { @@ -1074,8 +1077,8 @@ gridDefXsize(int gridID, SizeType xsize) if (gridType != GRID_UNSTRUCTURED && gridType != GRID_GAUSSIAN_REDUCED && gridType != GRID_PROJECTION) { size_t axisproduct = gridptr->x.size * gridptr->y.size; - if (axisproduct > 0 && axisproduct != gridSize) - Error("Inconsistent grid declaration! (xsize=%zu ysize=%zu gridsize=%zu)", gridptr->x.size, gridptr->y.size, gridSize); + if (axisproduct > 0 && axisproduct != (size_t)gridSize) + Error("Inconsistent grid declaration! (xsize=%zu ysize=%zu gridsize=%zu)", gridptr->x.size, gridptr->y.size, (size_t)gridSize); } } @@ -1135,13 +1138,15 @@ gridDefYsize(int gridID, SizeType ysize) { grid_t *gridptr = grid_to_pointer(gridID); - size_t gridSize = gridInqSize(gridID); + SizeType gridSize = gridInqSize(gridID); - if ((size_t) ysize > gridSize) Error("ysize %zu is greater then gridsize %zu", (size_t) ysize, gridSize); + if (ysize > gridSize) Error("ysize %lld is greater then gridsize %lld", + (long long) ysize, (long long)gridSize); int gridType = gridInqType(gridID); - if (gridType == GRID_UNSTRUCTURED && (size_t) ysize != gridSize) - Error("ysize %zu must be equal gridsize %zu for gridtype: %s", gridNamePtr(gridType), (size_t) ysize, gridSize); + if (gridType == GRID_UNSTRUCTURED && ysize != gridSize) + Error("ysize %lld must be equal gridsize %lld for gridtype: %s", + (long long)ysize, (long long)gridSize, gridNamePtr(gridType)); if (gridptr->y.size != (size_t) ysize) { @@ -1152,8 +1157,9 @@ gridDefYsize(int gridID, SizeType ysize) if (gridType != GRID_UNSTRUCTURED && gridType != GRID_GAUSSIAN_REDUCED && gridType != GRID_PROJECTION) { size_t axisproduct = gridptr->x.size * gridptr->y.size; - if (axisproduct > 0 && axisproduct != gridSize) - Error("Inconsistent grid declaration! (xsize=%zu ysize=%zu gridsize=%zu)", gridptr->x.size, gridptr->y.size, gridSize); + if (axisproduct > 0 && axisproduct != (size_t)gridSize) + Error("Inconsistent grid declaration! (xsize=%zu ysize=%zu gridsize=%zu)", + gridptr->x.size, gridptr->y.size, (size_t)gridSize); } } @@ -2684,7 +2690,7 @@ grid_complete(grid_t *grid) case GRID_GAUSSIAN_REDUCED: { gridDefNP(gridID, grid->np); - gridDefYsize(gridID, grid->y.size); + gridDefYsize(gridID, (SizeType)grid->y.size); if (grid->x.flag == 2) { double xvals[2] = { grid->x.first, grid->x.last }; @@ -2749,7 +2755,7 @@ int gridGenerate(const grid_t *grid) { int gridtype = grid->type; - int gridID = gridCreate(gridtype, grid->size); + int gridID = gridCreate(gridtype, (SizeType)grid->size); grid_t *restrict gridptr = grid_to_pointer(gridID); cdiCopyVarKey(&grid->keys, CDI_KEY_DATATYPE, &gridptr->keys); gridptr->x.size = grid->x.size; diff --git a/src/pio_dist_grid.c b/src/pio_dist_grid.c index b31e1662c07859b9b5eb772e975309a9f13e78f6..6a5fc4c9fb7d4158a0223bcaefa95c765b7d2de1 100644 --- a/src/pio_dist_grid.c +++ b/src/pio_dist_grid.c @@ -1112,13 +1112,13 @@ cdiPioDistGridInqXorYVal(grid_t *gridptr, enum cdiPioGDsa saIdx, const double *v } static double -cdiPioDistGridInqXVal(grid_t *gridptr, int index) +cdiPioDistGridInqXVal(grid_t *gridptr, SizeType index) { return cdiPioDistGridInqXorYVal(gridptr, cdiPioGDsaXVals, gridptr->x.vals, index); } static double -cdiPioDistGridInqYVal(grid_t *gridptr, int index) +cdiPioDistGridInqYVal(grid_t *gridptr, SizeType index) { return cdiPioDistGridInqXorYVal(gridptr, cdiPioGDsaYVals, gridptr->y.vals, index); } diff --git a/src/pio_interface.c b/src/pio_interface.c index 26f6b1f6d3ea84f17c33392c55e7294cbdbf4dee..87d602de035c573e97742fa96699333a374ec3c0 100644 --- a/src/pio_interface.c +++ b/src/pio_interface.c @@ -764,13 +764,15 @@ cdiPioStreamWriteVarPart_(int streamID, int varID, int memtype, const void *data } void -streamWriteVarPart(int streamID, int varID, const double *data, int numMissVals, Xt_idxlist partDesc) +streamWriteVarPart(int streamID, int varID, const double *data, + SizeType numMissVals, Xt_idxlist partDesc) { cdiPioStreamWriteVarPart_(streamID, varID, MEMTYPE_DOUBLE, data, numMissVals, partDesc); } void -streamWriteVarPartF(int streamID, int varID, const float *data, int numMissVals, Xt_idxlist partDesc) +streamWriteVarPartF(int streamID, int varID, const float *data, + SizeType numMissVals, Xt_idxlist partDesc) { cdiPioStreamWriteVarPart_(streamID, varID, MEMTYPE_FLOAT, data, numMissVals, partDesc); } diff --git a/src/stream_cdf_o.c b/src/stream_cdf_o.c index e5c595dc1bf027c6b6f912122e7616632c8f0697..5b23b356ea5533481f35f92ab547795a50234732 100644 --- a/src/stream_cdf_o.c +++ b/src/stream_cdf_o.c @@ -98,7 +98,7 @@ struct idSearch }; static inline struct idSearch -cdfSearchIDBySize(size_t startIdx, size_t numIDs, ncgrid_t ncgrid[/*numIDs*/], int ncIDType, int searchType, int searchSize, +cdfSearchIDBySize(size_t startIdx, size_t numIDs, const ncgrid_t ncgrid[/*numIDs*/], int ncIDType, int searchType, SizeType searchSize, int (*typeInq)(int id), SizeType (*sizeInq)(int id)) { int numNonMatching = 0, foundID = CDI_UNDEFID; @@ -110,7 +110,7 @@ cdfSearchIDBySize(size_t startIdx, size_t numIDs, ncgrid_t ncgrid[/*numIDs*/], i int id0 = ncgrid[index].gridID, id0Type = typeInq(id0); if (id0Type == searchType) { - int size0 = sizeInq(id0); + SizeType size0 = sizeInq(id0); if (searchSize == size0) { foundID = ncgrid[index].ncIDs[ncIDType]; @@ -135,10 +135,10 @@ cdfDefSPorFC(stream_t *streamptr, int gridID, int gridIndex, char *axisname, siz { ncgrid_t *ncgrid = streamptr->ncgrid; - size_t dimlen = gridInqSize(gridID) / 2; + SizeType dimlen = gridInqSize(gridID) / 2; struct idSearch search - = cdfSearchIDBySize(0, (size_t) gridIndex, ncgrid, CDF_DIMID_Y, gridRefType, (int) dimlen, gridInqType, cdfGridInqHalfSize); + = cdfSearchIDBySize(0, (size_t) gridIndex, ncgrid, CDF_DIMID_Y, gridRefType, dimlen, gridInqType, cdfGridInqHalfSize); int dimID = search.foundID; int iz = search.numNonMatching; @@ -155,7 +155,7 @@ cdfDefSPorFC(stream_t *streamptr, int gridID, int gridIndex, char *axisname, siz cdf_redef(fileID); } - cdf_def_dim(fileID, axisname, dimlen, &dimID); + cdf_def_dim(fileID, axisname, (size_t)dimlen, &dimID); if (switchNCMode) { @@ -258,7 +258,7 @@ cdfDefTrajLatLon(stream_t *streamptr, int gridID, int gridIndex, const struct cd nc_type xtype = grid_inq_xtype(gridID); ncgrid_t *ncgrid = streamptr->ncgrid; - size_t dimlen = inqs->axisSize(gridID); + SizeType dimlen = inqs->axisSize(gridID); if (dimlen != 1) Error("%c size isn't 1 for %s grid!", inqs->axisSym, gridNamePtr(gridInqType(gridID))); int ncvarid = ncgrid[gridIndex].ncIDs[inqs->dimIdx]; @@ -553,10 +553,10 @@ cdfGridCompress(int fileID, int ncvarid, size_t gridsize, int filetype, int comp static struct cdfPostDefActionList * cdfDefAxisCommon(stream_t *streamptr, int gridID, int gridIndex, int ndims, bool addVarToGrid, const struct cdfDefGridAxisInqs *gridAxisInq, int axisKey, char axisLetter, - void (*finishCyclicBounds)(double *pbounds, size_t dimlen, const double *pvals)) + void (*finishCyclicBounds)(double *pbounds, SizeType dimlen, const double *pvals)) { int dimID = CDI_UNDEFID; - size_t dimlen = gridAxisInq->axisSize(gridID); + SizeType dimlen = gridAxisInq->axisSize(gridID); nc_type xtype = grid_inq_xtype(gridID); ncgrid_t *ncgrid = streamptr->ncgrid; @@ -574,7 +574,7 @@ cdfDefAxisCommon(stream_t *streamptr, int gridID, int gridIndex, int ndims, bool int gridtype0 = gridInqType(gridID0); if (gridtype0 == GRID_GAUSSIAN || gridtype0 == GRID_LONLAT || gridtype0 == GRID_PROJECTION || gridtype0 == GRID_GENERIC) { - size_t dimlen0 = gridAxisInq->axisSize(gridID0); + SizeType dimlen0 = gridAxisInq->axisSize(gridID0); char dimname0[CDI_MAX_NAME]; dimname0[0] = 0; length = sizeof(dimname0); @@ -584,7 +584,8 @@ cdfDefAxisCommon(stream_t *streamptr, int gridID, int gridIndex, int ndims, bool { double (*inqVal)(int gridID, SizeType index) = gridAxisInq->axisVal; if (IS_EQUAL(inqVal(gridID0, 0), inqVal(gridID, 0)) - && IS_EQUAL(inqVal(gridID0, dimlen - 1), inqVal(gridID, dimlen - 1))) + && IS_EQUAL(inqVal(gridID0, dimlen - 1), + inqVal(gridID, dimlen - 1))) { dimID = ncgrid[index].ncIDs[(axisLetter == 'X') ? CDF_DIMID_X : CDF_DIMID_Y]; break; @@ -616,9 +617,9 @@ cdfDefAxisCommon(stream_t *streamptr, int gridID, int gridIndex, int ndims, bool if (ndims) { if (dimname[0] == 0) strcpy(dimname, axisname); - dimID = checkDimName(fileID, dimlen, dimname); + dimID = checkDimName(fileID, (size_t)dimlen, dimname); - if (dimID == CDI_UNDEFID) cdf_def_dim(fileID, dimname, dimlen, &dimID); + if (dimID == CDI_UNDEFID) cdf_def_dim(fileID, dimname, (size_t)dimlen, &dimID); } if (hasVals) @@ -633,8 +634,8 @@ cdfDefAxisCommon(stream_t *streamptr, int gridID, int gridIndex, int ndims, bool if (chunkType == CDI_CHUNK_GRID && dimlen > ChunkSizeLim) chunkType = CDI_CHUNK_LINES; - size_t chunk = calc_chunksize_x(chunkType, chunkSize, dimlen, true); - cdfGridCompress(fileID, ncvarid, dimlen, streamptr->filetype, streamptr->comptype, &chunk); + size_t chunk = calc_chunksize_x(chunkType, chunkSize, (size_t)dimlen, true); + cdfGridCompress(fileID, ncvarid, (size_t)dimlen, streamptr->filetype, streamptr->comptype, &chunk); cdfPutGridStdAtts(fileID, ncvarid, gridID, axisLetter); { @@ -654,8 +655,8 @@ cdfDefAxisCommon(stream_t *streamptr, int gridID, int gridIndex, int ndims, bool const double *pvals = gridAxisInq->axisValsPtr(gridID); genBounds = true; nvertex = 2; - pbounds = (double *) Malloc(2 * dimlen * sizeof(double)); - for (size_t i = 0; i < dimlen - 1; ++i) + pbounds = Malloc(2 * (size_t)dimlen * sizeof(double)); + for (size_t i = 0; i < (size_t)dimlen - 1; ++i) { pbounds[i * 2 + 1] = (pvals[i] + pvals[i + 1]) * 0.5; pbounds[i * 2 + 2] = (pvals[i] + pvals[i + 1]) * 0.5; @@ -701,14 +702,14 @@ cdfDefAxisCommon(stream_t *streamptr, int gridID, int gridIndex, int ndims, bool } static void -finishCyclicXBounds(double *pbounds, size_t dimlen, const double *pvals) +finishCyclicXBounds(double *pbounds, SizeType dimlen, const double *pvals) { pbounds[0] = (pvals[0] + pvals[dimlen - 1] - 360) * 0.5; pbounds[2 * dimlen - 1] = (pvals[dimlen - 1] + pvals[0] + 360) * 0.5; } static void -finishCyclicYBounds(double *pbounds, size_t dimlen, const double *pvals) +finishCyclicYBounds(double *pbounds, SizeType dimlen, const double *pvals) { pbounds[0] = copysign(90.0, pvals[0]); pbounds[2 * dimlen - 1] = copysign(90.0, pvals[dimlen - 1]); @@ -902,9 +903,9 @@ cdfDefIrregularGridCommon(stream_t *streamptr, int gridID, size_t xsize, size_t struct cdfPostDefActionList *delayed = NULL; int ncxvarid - = cdfDefIrregularGridAxisSetup(streamptr, gridID, xtype, CDI_XAXIS, gridsize, ndims, dimIDs, chunks, &gridInqsX, &delayed); + = cdfDefIrregularGridAxisSetup(streamptr, gridID, xtype, CDI_XAXIS, gridsize, ndims, dimIDs, chunks, &gridInqsX, &delayed); int ncyvarid - = cdfDefIrregularGridAxisSetup(streamptr, gridID, xtype, CDI_YAXIS, gridsize, ndims, dimIDs, chunks, &gridInqsY, &delayed); + = cdfDefIrregularGridAxisSetup(streamptr, gridID, xtype, CDI_YAXIS, gridsize, ndims, dimIDs, chunks, &gridInqsY, &delayed); int ncavarid = CDI_UNDEFID; if (gridInqPropPresence(gridID, GRID_PROP_AREA)) @@ -940,9 +941,9 @@ cdfDefCurvilinear(stream_t *streamptr, int gridID, int gridIndex) { ncgrid_t *ncgrid = streamptr->ncgrid; - size_t dimlen = gridInqSize(gridID); - size_t xdimlen = gridInqXsize(gridID); - size_t ydimlen = gridInqYsize(gridID); + SizeType dimlen = gridInqSize(gridID); + SizeType xdimlen = gridInqXsize(gridID); + SizeType ydimlen = gridInqYsize(gridID); int xdimID = CDI_UNDEFID, ydimID = CDI_UNDEFID; int ncxvarid = CDI_UNDEFID, ncyvarid = CDI_UNDEFID, ncavarid = CDI_UNDEFID; @@ -950,16 +951,18 @@ cdfDefCurvilinear(stream_t *streamptr, int gridID, int gridIndex) size_t ofs = 0; do { - struct idSearch search = cdfSearchIDBySize(ofs, (size_t) gridIndex, ncgrid, CDF_DIMID_X, GRID_CURVILINEAR, (int) dimlen, + struct idSearch search = cdfSearchIDBySize(ofs, (size_t) gridIndex, ncgrid, CDF_DIMID_X, GRID_CURVILINEAR, dimlen, gridInqType, gridInqSize); size_t index = search.foundIdx; if (index != SIZE_MAX) { int gridID0 = ncgrid[index].gridID; if (IS_EQUAL(gridInqXval(gridID0, 0), gridInqXval(gridID, 0)) - && IS_EQUAL(gridInqXval(gridID0, dimlen - 1), gridInqXval(gridID, dimlen - 1)) + && IS_EQUAL(gridInqXval(gridID0, dimlen - 1), + gridInqXval(gridID, dimlen - 1)) && IS_EQUAL(gridInqYval(gridID0, 0), gridInqYval(gridID, 0)) - && IS_EQUAL(gridInqYval(gridID0, dimlen - 1), gridInqYval(gridID, dimlen - 1))) + && IS_EQUAL(gridInqYval(gridID0, dimlen - 1), + gridInqYval(gridID, dimlen - 1))) { xdimID = ncgrid[index].ncIDs[CDF_DIMID_X]; ydimID = ncgrid[index].ncIDs[CDF_DIMID_Y]; @@ -977,7 +980,7 @@ cdfDefCurvilinear(stream_t *streamptr, int gridID, int gridIndex) if (xdimID == CDI_UNDEFID || ydimID == CDI_UNDEFID) { struct cdfDefIrregularGridCommonIDs createdIDs = cdfDefIrregularGridCommon( - streamptr, gridID, xdimlen, ydimlen, 3, "x", 4, "nv4", + streamptr, gridID, (size_t)xdimlen, (size_t)ydimlen, 3, "x", 4, "nv4", gridInqPropPresence(gridID, GRID_PROP_XBOUNDS) || gridInqPropPresence(gridID, GRID_PROP_YBOUNDS)); xdimID = createdIDs.xdimID; ydimID = createdIDs.ydimID; @@ -1001,7 +1004,7 @@ cdfDefUnstructured(stream_t *streamptr, int gridID, int gridIndex) { ncgrid_t *ncgrid = streamptr->ncgrid; - size_t dimlen = gridInqSize(gridID); + SizeType dimlen = gridInqSize(gridID); int dimID = CDI_UNDEFID; int ncxvarid = CDI_UNDEFID, ncyvarid = CDI_UNDEFID, ncavarid = CDI_UNDEFID; @@ -1009,7 +1012,7 @@ cdfDefUnstructured(stream_t *streamptr, int gridID, int gridIndex) size_t ofs = 0; do { - struct idSearch search = cdfSearchIDBySize(ofs, (size_t) gridIndex, ncgrid, CDF_DIMID_X, GRID_UNSTRUCTURED, (int) dimlen, + struct idSearch search = cdfSearchIDBySize(ofs, (size_t) gridIndex, ncgrid, CDF_DIMID_X, GRID_UNSTRUCTURED, dimlen, gridInqType, gridInqSize); size_t index = search.foundIdx; if (index != SIZE_MAX) @@ -1037,7 +1040,7 @@ cdfDefUnstructured(stream_t *streamptr, int gridID, int gridIndex) { size_t nvertex = (size_t) gridInqNvertex(gridID); struct cdfDefIrregularGridCommonIDs createdIDs - = cdfDefIrregularGridCommon(streamptr, gridID, dimlen, 1, 2, "ncells", nvertex, "vertices", nvertex > 0); + = cdfDefIrregularGridCommon(streamptr, gridID, (size_t)dimlen, 1, 2, "ncells", nvertex, "vertices", nvertex > 0); dimID = createdIDs.xdimID; ncxvarid = createdIDs.ncxvarid; ncyvarid = createdIDs.ncyvarid; @@ -1881,7 +1884,7 @@ cdfDefCharacter(stream_t *streamptr, int gridID, int gridIndex, int cdiAxisID, i bool isXaxis = (cdiAxisID == CDI_XAXIS); - size_t dimlen = isXaxis ? gridInqXsize(gridID) : gridInqYsize(gridID); + SizeType dimlen = isXaxis ? gridInqXsize(gridID) : gridInqYsize(gridID); ncgrid_t *ncgrid = streamptr->ncgrid; // Check for all grids up to gridIndex whether it already is defined @@ -1892,9 +1895,9 @@ cdfDefCharacter(stream_t *streamptr, int gridID, int gridIndex, int cdiAxisID, i int gridtype0 = gridInqType(gridID0); if (gridtype0 == GRID_CHARXY) { - if (gridInqXIsc(gridID0) == strlen && (size_t) gridInqXsize(gridID0) == dimlen) + if (gridInqXIsc(gridID0) == strlen && gridInqXsize(gridID0) == dimlen) return; - else if (gridInqYIsc(gridID0) == strlen && (size_t) gridInqYsize(gridID0) == dimlen) + else if (gridInqYIsc(gridID0) == strlen && gridInqYsize(gridID0) == dimlen) return; } } @@ -1913,8 +1916,8 @@ cdfDefCharacter(stream_t *streamptr, int gridID, int gridIndex, int cdiAxisID, i memcpy(dimname, "region", 7); dimname[6] = 0; } - int dimID = checkDimName(fileID, dimlen, dimname); - if (dimID == CDI_UNDEFID) cdf_def_dim(fileID, dimname, dimlen, &dimID); + int dimID = checkDimName(fileID, (size_t)dimlen, dimname); + if (dimID == CDI_UNDEFID) cdf_def_dim(fileID, dimname, (size_t)dimlen, &dimID); // Define strlength dim @@ -1929,8 +1932,8 @@ cdfDefCharacter(stream_t *streamptr, int gridID, int gridIndex, int cdiAxisID, i dimIDs[1] = strlenID; char axisname[CDI_MAX_NAME]; - char **cvals = (char **) Malloc(dimlen * sizeof(char *)); - for (size_t i = 0; i < dimlen; i++) cvals[i] = (char *) Malloc(strlen * sizeof(char)); + char **cvals = (char **) Malloc((size_t)dimlen * sizeof(char *)); + for (size_t i = 0; i < (size_t)dimlen; i++) cvals[i] = (char *) Malloc(strlen * sizeof(char)); int ncaxisid; length = CDI_MAX_NAME; cdiInqKeyString(gridID, cdiAxisID, CDI_KEY_NAME, axisname, &length); @@ -1947,7 +1950,7 @@ cdfDefCharacter(stream_t *streamptr, int gridID, int gridIndex, int cdiAxisID, i // Write Var size_t start[2] = { 0, 0 }, count[2] = { 1, strlen }; - for (size_t i = 0; i < dimlen; i++) + for (size_t i = 0; i < (size_t)dimlen; i++) { start[0] = i; (void) nc_put_vara_text(fileID, ncaxisid, start, count, cvals[i]); @@ -1968,9 +1971,9 @@ cdfDefReducedGrid(stream_t *streamptr, int gridID, int gridIndex) ncgrid[gridIndex].gridID = gridID; { - size_t dimlen = gridInqSize(gridID); + SizeType dimlen = gridInqSize(gridID); - struct idSearch search = cdfSearchIDBySize(0, (size_t) gridIndex, ncgrid, CDF_DIMID_X, GRID_GAUSSIAN_REDUCED, (int) dimlen, + struct idSearch search = cdfSearchIDBySize(0, (size_t) gridIndex, ncgrid, CDF_DIMID_X, GRID_GAUSSIAN_REDUCED, dimlen, gridInqType, gridInqSize); int iz = search.numNonMatching; int dimID = search.foundID; @@ -1990,7 +1993,7 @@ cdfDefReducedGrid(stream_t *streamptr, int gridID, int gridIndex) cdf_redef(fileID); } - cdf_def_dim(fileID, axisname, dimlen, &dimID); + cdf_def_dim(fileID, axisname, (size_t)dimlen, &dimID); if (switchNCMode) { @@ -2003,9 +2006,9 @@ cdfDefReducedGrid(stream_t *streamptr, int gridID, int gridIndex) } { - size_t dimlen = gridInqYsize(gridID); + SizeType dimlen = gridInqYsize(gridID); - struct idSearch search = cdfSearchIDBySize(0, (size_t) gridIndex, ncgrid, CDF_DIMID_RP, GRID_GAUSSIAN_REDUCED, (int) dimlen, + struct idSearch search = cdfSearchIDBySize(0, (size_t) gridIndex, ncgrid, CDF_DIMID_RP, GRID_GAUSSIAN_REDUCED, dimlen, gridInqType, gridInqSize); int iz = search.numNonMatching; int dimID = search.foundID; @@ -2020,7 +2023,7 @@ cdfDefReducedGrid(stream_t *streamptr, int gridID, int gridIndex) if (streamptr->ncmode == 2) cdf_redef(fileID); - cdf_def_dim(fileID, axisname, dimlen, &dimID); + cdf_def_dim(fileID, axisname, (size_t)dimlen, &dimID); int ncvarid = CDI_UNDEFID; cdf_def_var(fileID, axisname, NC_INT, 1, &dimID, &ncvarid); @@ -2028,7 +2031,7 @@ cdfDefReducedGrid(stream_t *streamptr, int gridID, int gridIndex) cdf_enddef(fileID, streamptr->self); streamptr->ncmode = 2; - int *reducedPoints = (int *) Malloc(dimlen * sizeof(int)); + int *reducedPoints = Malloc((size_t)dimlen * sizeof(int)); gridInqReducedPoints(gridID, reducedPoints); cdf_put_var_int(fileID, ncvarid, reducedPoints); Free(reducedPoints); @@ -2046,19 +2049,19 @@ cdf_define_generic_dim(stream_t *streamptr, int gridID, int gridIndex) ncgrid_t *ncgrid = streamptr->ncgrid; int dimID = CDI_UNDEFID; - size_t dimlen = gridInqSize(gridID); + SizeType dimlen = gridInqSize(gridID); if (gridInqYsize(gridID) == 0) { struct idSearch search - = cdfSearchIDBySize(0, (size_t) gridIndex, ncgrid, CDF_DIMID_X, GRID_GENERIC, (int) dimlen, gridInqType, gridInqSize); + = cdfSearchIDBySize(0, (size_t) gridIndex, ncgrid, CDF_DIMID_X, GRID_GENERIC, dimlen, gridInqType, gridInqSize); dimID = search.foundID; } if (gridInqXsize(gridID) == 0) { struct idSearch search - = cdfSearchIDBySize(0, (size_t) gridIndex, ncgrid, CDF_DIMID_Y, GRID_GENERIC, (int) dimlen, gridInqType, gridInqSize); + = cdfSearchIDBySize(0, (size_t) gridIndex, ncgrid, CDF_DIMID_Y, GRID_GENERIC, dimlen, gridInqType, gridInqSize); dimID = search.foundID; } @@ -2070,7 +2073,7 @@ cdf_define_generic_dim(stream_t *streamptr, int gridID, int gridIndex) cdiInqKeyString(gridID, CDI_GLOBAL, CDI_KEY_DIMNAME, dimname, &length); if (dimname[0] == 0) strcpy(dimname, "gsize"); - dimID = checkDimName(fileID, dimlen, dimname); + dimID = checkDimName(fileID, (size_t)dimlen, dimname); if (dimID == CDI_UNDEFID) { @@ -2081,7 +2084,7 @@ cdf_define_generic_dim(stream_t *streamptr, int gridID, int gridIndex) cdf_redef(fileID); } - cdf_def_dim(fileID, dimname, dimlen, &dimID); + cdf_def_dim(fileID, dimname, (size_t)dimlen, &dimID); if (switchNCMode) { @@ -2103,7 +2106,7 @@ cdf_define_grid(stream_t *streamptr, int gridID, int gridIndex) if (streamptr->ncgrid[gridIndex].ncIDs[CDF_DIMID_X] != CDI_UNDEFID) return delayed; int gridtype = gridInqType(gridID); - size_t size = gridInqSize(gridID); + SizeType size = gridInqSize(gridID); if (CDI_Debug) Message("gridtype = %d size = %zu", gridtype, size); @@ -2116,8 +2119,8 @@ cdf_define_grid(stream_t *streamptr, int gridID, int gridIndex) if (gridtype == GRID_GAUSSIAN || gridtype == GRID_LONLAT || gridtype == GRID_PROJECTION) { int ndims = !(gridtype == GRID_LONLAT && size == 1 && !gridInqHasDims(gridID)); - size_t xsize = gridInqXsize(gridID); - size_t ysize = gridInqYsize(gridID); + SizeType xsize = gridInqXsize(gridID); + SizeType ysize = gridInqYsize(gridID); if (xsize) { @@ -2141,15 +2144,15 @@ cdf_define_grid(stream_t *streamptr, int gridID, int gridIndex) } else if (gridtype == GRID_GENERIC) { - if (size == 1 && gridInqXsize(gridID) == 0 && gridInqYsize(gridID) == 0) + SizeType xsize = gridInqXsize(gridID); + SizeType ysize = gridInqYsize(gridID); + if (size == 1 && xsize == 0 && ysize == 0) { // no grid information streamptr->ncgrid[gridIndex].gridID = gridID; } else { - size_t xsize = gridInqXsize(gridID); - size_t ysize = gridInqYsize(gridID); if (xsize > 0) { diff --git a/src/stream_cgribex.c b/src/stream_cgribex.c index 2442e6203d9a3bbe41ac03079daeabe2133714b8..b937d27152c47bd6bf765db5fde6ac450a8d047e 100644 --- a/src/stream_cgribex.c +++ b/src/stream_cgribex.c @@ -1827,7 +1827,7 @@ cgribexDefGrid(int *isec1, int *isec2, double *fsec2, int *isec4, int gridID, in ISEC2_Reduced = false; ISEC2_ScanFlag = 0; - int gridsize = (int) gridInqSize(gridID); + SizeType gridsize = gridInqSize(gridID); bool gridIsRotated = false; bool gridIsCurvilinear = false; int gridtype = grbGetGridtype(&gridID, gridsize, &gridIsRotated, &gridIsCurvilinear); @@ -2067,7 +2067,7 @@ cgribexDefEnsembleVar(int *isec1, int vlistID, int varID) size_t cgribexEncode(int memtype, int varID, int levelID, int vlistID, int gridID, int zaxisID, CdiDateTime vDateTime, int tsteptype, - int numavg, size_t datasize, const void *data, size_t numMissVals, void *gribbuffer, size_t gribbuffersize) + int numavg, SizeType datasize, const void *data, SizeType numMissVals, void *gribbuffer, size_t gribbuffersize) { cgribexrec_t *cgribexp = (cgribexrec_t *) cgribexNew(); diff --git a/src/stream_cgribex.h b/src/stream_cgribex.h index 60ed867ed10b33b6b09b3b077c5d4775b925526c..cb8391a637bd8966f6bd868718be05ef1351bd31 100644 --- a/src/stream_cgribex.h +++ b/src/stream_cgribex.h @@ -12,7 +12,7 @@ int cgribexDecode(int memtype, void *cgribexp, void *gribbuffer, size_t gribsize size_t *numMissVals, double missval); size_t cgribexEncode(int memtype, int varID, int levelID, int vlistID, int gridID, int zaxisID, CdiDateTime vDateTime, - int tsteptype, int numavg, size_t datasize, const void *data, size_t numMissVals, void *gribbuffer, + int tsteptype, int numavg, SizeType datasize, const void *data, SizeType numMissVals, void *gribbuffer, size_t gribbuffersize); void *cgribex_handle_new_from_meassage(void *gribbuffer, size_t recsize); diff --git a/src/stream_grb.c b/src/stream_grb.c index 0e9a29f777f3a6677d8d74cf0fe06a5df87e60da..a78e191caa1ae643a527c61dec7ad2c215bf5483 100644 --- a/src/stream_grb.c +++ b/src/stream_grb.c @@ -437,7 +437,7 @@ streamInqGRIBinfo(int streamID, int *intnum, float *fltnum, off_t *bignum) } int -grbGetGridtype(int *gridID, size_t gridsize, bool *gridIsRotated, bool *gridIsCurvilinear) +grbGetGridtype(int *gridID, SizeType gridsize, bool *gridIsRotated, bool *gridIsCurvilinear) { int gridtype = gridInqType(*gridID); diff --git a/src/stream_grb.h b/src/stream_grb.h index a007c9ca93721b2a6cb2039403413fbfb102acaf..afc50208140a0bed5d7586383f41bdd721cd14be 100644 --- a/src/stream_grb.h +++ b/src/stream_grb.h @@ -49,7 +49,7 @@ int grib2ltypeToZaxisType(int grib_ltype); int zaxisTypeToGrib1ltype(int zaxistype); int zaxisTypeToGrib2ltype(int zaxistype); -int grbGetGridtype(int *gridID, size_t gridsize, bool *gridIsRotated, bool *gridIsCurvilinear); +int grbGetGridtype(int *gridID, SizeType gridsize, bool *gridIsRotated, bool *gridIsCurvilinear); struct cdiGribParamChange { diff --git a/src/stream_gribapi.c b/src/stream_gribapi.c index cd324725252537ca0333c7899fed886512bc246b..3151fc0a3e02de05d859420f31cbe1c6bae07463 100644 --- a/src/stream_gribapi.c +++ b/src/stream_gribapi.c @@ -2220,8 +2220,8 @@ gribapiDefGridRegular(grib_handle *gh, int gridID, int gridtype, bool gridIsRota double xfirst = 0.0, xlast = 0.0, xinc = 0.0; double yfirst = 0.0, ylast = 0.0, yinc = 0.0; - size_t nlon = gridInqXsize(gridID); - size_t nlat = gridInqYsize(gridID); + SizeType nlon = gridInqXsize(gridID), + nlat = gridInqYsize(gridID); if (gridtype == GRID_GAUSSIAN_REDUCED) { @@ -2230,8 +2230,8 @@ gribapiDefGridRegular(grib_handle *gh, int gridID, int gridtype, bool gridIsRota nlon = 0; - int *reducedPoints = (int *) Malloc(nlat * sizeof(int)); - long *pl = (long *) Malloc(nlat * sizeof(long)); + int *reducedPoints = Malloc((size_t)nlat * sizeof(int)); + long *pl = Malloc((size_t)nlat * sizeof(long)); gridInqReducedPoints(gridID, reducedPoints); for (size_t i = 0; i < nlat; ++i) pl[i] = reducedPoints[i]; @@ -2542,7 +2542,7 @@ gribapiDefGridSpectral(grib_handle *gh, int gridID) } static void -gribapiDefPackingType(grib_handle *gh, bool lieee, bool lspectral, bool lcomplex, int comptype, size_t gridsize) +gribapiDefPackingType(grib_handle *gh, bool lieee, bool lspectral, bool lcomplex, int comptype, SizeType gridsize) { static const char mesg_spectral_complex[] = "spectral_complex"; static const char mesg_spectral_simple[] = "spectral_simple"; @@ -2576,7 +2576,7 @@ gribapiDefPackingType(grib_handle *gh, bool lieee, bool lspectral, bool lcomplex static void gribapiDefGrid(int editionNumber, grib_handle *gh, int gridID, int comptype, int datatype, int uvRelativeToGrid) { - size_t gridsize = gridInqSize(gridID); + SizeType gridsize = gridInqSize(gridID); bool gridIsRotated = false; bool gridIsCurvilinear = false; int gridtype = grbGetGridtype(&gridID, gridsize, &gridIsRotated, &gridIsCurvilinear); @@ -3322,7 +3322,7 @@ gribapiSetExtMode(grib_handle *gh, int gridID, size_t datasize, const void *data size_t gribapiEncode(int memType, int varID, int levelID, int vlistID, int gridID, int zaxisID, CdiDateTime vDateTime, int tsteptype, - int numavg, size_t datasize, const void *data, size_t numMissVals, void **gribbuffer, size_t *gribbuffersize, + int numavg, SizeType datasize, const void *data, SizeType numMissVals, void **gribbuffer, size_t *gribbuffersize, int comptype, void *gribContainer) { long editionNumber = 2; diff --git a/src/stream_gribapi.h b/src/stream_gribapi.h index 130530e08b013a44c945357c8f85c314ef24aa31..d41dcbe3673ef8c2aabcb968c4d80fa6feeade2c 100644 --- a/src/stream_gribapi.h +++ b/src/stream_gribapi.h @@ -7,15 +7,15 @@ int fdbScanTimesteps(stream_t *streamptr); -int gribapiScanTimestep1(stream_t *streamptr); -int gribapiScanTimestep2(stream_t *streamptr); -int gribapiScanTimestep(stream_t *streamptr); +long gribapiScanTimestep1(stream_t *streamptr); +long gribapiScanTimestep2(stream_t *streamptr); +long gribapiScanTimestep(stream_t *streamptr); int gribapiDecode(int memType, void *gribbuffer, size_t gribsize, void *data, size_t datasize, int unreduced, size_t *numMissVals, double missval); size_t gribapiEncode(int memType, int varID, int levelID, int vlistID, int gridID, int zaxisID, CdiDateTime vDateTime, - int tsteptype, int numavg, size_t datasize, const void *data, size_t numMissVals, void **gribbuffer, + int tsteptype, int numavg, SizeType datasize, const void *data, SizeType numMissVals, void **gribbuffer, size_t *gribbuffersize, int ljpeg, void *gribContainer); int gribapiGetScanningMode(grib_handle *gh); diff --git a/src/stream_ieg.c b/src/stream_ieg.c index e83d0c1ace0837a1843d6c6502473e953e0bfb67..306b88cde5a6fb959aebf2dc671e8033e413f40c 100644 --- a/src/stream_ieg.c +++ b/src/stream_ieg.c @@ -183,8 +183,8 @@ iegDefGrid(int *gdb, int gridID) int projtype = CDI_UNDEFID; if (gridtype == GRID_PROJECTION && gridInqProjType(gridID) == CDI_PROJ_RLL) projtype = CDI_PROJ_RLL; - size_t xsize = gridInqXsize(gridID); - size_t ysize = gridInqYsize(gridID); + SizeType xsize = gridInqXsize(gridID); + SizeType ysize = gridInqYsize(gridID); cdi_check_gridsize_int_limit("IEG", xsize * ysize); diff --git a/src/stream_srv.c b/src/stream_srv.c index 67c3795ba8b81be538830ced34cce387f6aa3ad7..5e7363c14bca627cc0e69abb81c1aaaaeae43935 100644 --- a/src/stream_srv.c +++ b/src/stream_srv.c @@ -93,9 +93,9 @@ srv_read_recordSP(stream_t *streamptr, float *data, size_t *numMissVals) srvInqDataFP32(srvp, data); double missval = vlistInqVarMissval(vlistID, varID); - size_t size = gridInqSize(vlistInqVarGrid(vlistID, varID)); + SizeType size = gridInqSize(vlistInqVarGrid(vlistID, varID)); - *numMissVals = get_num_missvalsSP(size, data, (float) missval); + *numMissVals = get_num_missvalsSP((size_t)size, data, (float) missval); streamptr->numvals += size; } @@ -122,9 +122,9 @@ srv_read_recordDP(stream_t *streamptr, double *data, size_t *numMissVals) srvInqDataFP64(srvp, data); double missval = vlistInqVarMissval(vlistID, varID); - size_t size = gridInqSize(vlistInqVarGrid(vlistID, varID)); + SizeType size = gridInqSize(vlistInqVarGrid(vlistID, varID)); - *numMissVals = get_num_missvalsDP(size, data, missval); + *numMissVals = get_num_missvalsDP((size_t)size, data, missval); streamptr->numvals += size; } @@ -159,14 +159,14 @@ srvDefRecord(stream_t *streamptr) header[3] = record->vtime; int gridID = record->gridID; - size_t xsize = gridInqXsize(gridID), ysize = gridInqYsize(gridID); + SizeType xsize = gridInqXsize(gridID), ysize = gridInqYsize(gridID); if (xsize == 0 || ysize == 0) { xsize = gridInqSize(gridID); ysize = 1; } if (gridInqType(gridID) == GRID_UNSTRUCTURED) ysize = 1; - if ((size_t) gridInqSize(gridID) != xsize * ysize) Error("Internal problem with gridsize!"); + if (gridInqSize(gridID) != xsize * ysize) Error("Internal problem with gridsize!"); cdi_check_gridsize_int_limit("SERVICE", gridInqSize(gridID)); @@ -584,9 +584,9 @@ srvReadVarSliceDP(stream_t *streamptr, int varID, int levID, double *data, size_ fileSetPos(fileID, currentfilepos, SEEK_SET); double missval = vlistInqVarMissval(vlistID, varID); - size_t size = gridInqSize(vlistInqVarGrid(vlistID, varID)); + SizeType size = gridInqSize(vlistInqVarGrid(vlistID, varID)); - *numMissVals = get_num_missvalsDP(size, data, missval); + *numMissVals = get_num_missvalsDP((size_t)size, data, missval); } void @@ -622,20 +622,20 @@ srvWriteVarSliceDP(stream_t *streamptr, int varID, int levID, const double *data header[2] = (int) cdiDate_get(vDateTime.date); header[3] = cdiTime_get(vDateTime.time); - size_t xsize = gridInqXsize(gridID); - size_t ysize = gridInqYsize(gridID); + SizeType xsize = gridInqXsize(gridID), + ysize = gridInqYsize(gridID); if (xsize == 0 || ysize == 0) { xsize = gridInqSize(gridID); ysize = 1; } if (gridInqType(gridID) == GRID_UNSTRUCTURED) ysize = 1; - if ((size_t) gridInqSize(gridID) != xsize * ysize) Error("Internal problem with gridsize!"); + if (gridInqSize(gridID) != xsize * ysize) Error("Internal problem with gridsize!"); cdi_check_gridsize_int_limit("SERVICE", gridInqSize(gridID)); - header[4] = xsize; - header[5] = ysize; + header[4] = (int)xsize; + header[5] = (int)ysize; header[6] = 0; header[7] = 0; @@ -655,10 +655,11 @@ srvWriteVarDP(stream_t *streamptr, int varID, const double *data) if (CDI_Debug) Message("streamID = %d varID = %d", streamptr->self, varID); int vlistID = streamptr->vlistID; - size_t gridsize = gridInqSize(vlistInqVarGrid(vlistID, varID)); - size_t nlevs = (size_t) zaxisInqSize(vlistInqVarZaxis(vlistID, varID)); + SizeType gridsize = gridInqSize(vlistInqVarGrid(vlistID, varID)); + int nlevs = zaxisInqSize(vlistInqVarZaxis(vlistID, varID)); - for (size_t levID = 0; levID < nlevs; levID++) srvWriteVarSliceDP(streamptr, varID, (int) levID, &data[levID * gridsize]); + for (int levID = 0; levID < nlevs; levID++) + srvWriteVarSliceDP(streamptr, varID, levID, data + (size_t)levID*(size_t)gridsize); } #endif /* HAVE_LIBSERVICE */ diff --git a/src/vlist.c b/src/vlist.c index d5a0a120b7f1cabe2d0d51f3672d557c56342022..b0820c01141c7c23ef72aad23b838906a4a0d2b2 100644 --- a/src/vlist.c +++ b/src/vlist.c @@ -826,8 +826,8 @@ vlistMerge(int vlistID2, int vlistID1) char name1[CDI_MAX_NAME], name2[CDI_MAX_NAME]; for (varID = 0; varID < nvars2; varID++) { - size_t ngp1 = gridInqSize(vars1[varID].gridID); - size_t ngp2 = gridInqSize(vars2[varID].gridID); + SizeType ngp1 = gridInqSize(vars1[varID].gridID); + SizeType ngp2 = gridInqSize(vars2[varID].gridID); if (ngp1 != ngp2) break; int length = CDI_MAX_NAME;