diff --git a/app/cdi.c b/app/cdi.c index a9c6599764b8af667df5509837bfb68064b6a2c0..4e1b322933c5081cc14565f492eaec9b4bd4a743 100644 --- a/app/cdi.c +++ b/app/cdi.c @@ -252,9 +252,7 @@ void printInfo(int vdate, int vtime, char *varname, double level, else { int nvals_r = 0, nvals_i = 0; - double arrsum_r, arrsum_i, arrmean_r = 0, arrmean_i = 0; - arrsum_r = 0; - arrsum_i = 0; + double arrsum_r = 0, arrsum_i = 0, arrmean_r = 0, arrmean_i = 0; for ( i = 0; i < datasize; i++ ) { @@ -331,16 +329,8 @@ static void printShortinfo(int streamID, int vlistID, int vardis) { int varID; - int gridsize = 0; - int gridID, zaxisID, param; - int vdate, vtime; - int ntsteps; - int levelsize; - int tsteptype, taxisID; char tmpname[CDI_MAX_NAME]; char varname[CDI_MAX_NAME]; - const char *modelptr, *instptr; - int datatype; int year, month, day, hour, minute, second; char pstr[4]; char paramstr[32]; @@ -365,28 +355,28 @@ void printShortinfo(int streamID, int vlistID, int vardis) for ( varID = 0; varID < nvars; varID++ ) { - param = vlistInqVarParam(vlistID, varID); - gridID = vlistInqVarGrid(vlistID, varID); - zaxisID = vlistInqVarZaxis(vlistID, varID); + int param = vlistInqVarParam(vlistID, varID); + int gridID = vlistInqVarGrid(vlistID, varID); + int zaxisID = vlistInqVarZaxis(vlistID, varID); fprintf(stdout, "%6d : ", varID + 1); /* institute info */ - instptr = institutInqNamePtr(vlistInqVarInstitut(vlistID, varID)); + const char *instptr = institutInqNamePtr(vlistInqVarInstitut(vlistID, varID)); strcpy(tmpname, "unknown"); if ( instptr ) strncpy(tmpname, instptr, CDI_MAX_NAME); limit_string_length(tmpname, CDI_MAX_NAME); fprintf(stdout, "%-8s ", tmpname); /* source info */ - modelptr = modelInqNamePtr(vlistInqVarModel(vlistID, varID)); + const char *modelptr = modelInqNamePtr(vlistInqVarModel(vlistID, varID)); strcpy(tmpname, "unknown"); if ( modelptr ) strncpy(tmpname, modelptr, CDI_MAX_NAME); limit_string_length(tmpname, CDI_MAX_NAME); fprintf(stdout, "%-8s ", tmpname); /* tsteptype */ - tsteptype = vlistInqVarTsteptype(vlistID, varID); + int tsteptype = vlistInqVarTsteptype(vlistID, varID); if ( tsteptype == TSTEP_CONSTANT ) fprintf(stdout, "%-8s ", "constant"); else if ( tsteptype == TSTEP_INSTANT ) fprintf(stdout, "%-8s ", "instant"); else if ( tsteptype == TSTEP_INSTANT2 ) fprintf(stdout, "%-8s ", "instant"); @@ -408,17 +398,17 @@ void printShortinfo(int streamID, int vlistID, int vardis) } /* layer info */ - levelsize = zaxisInqSize(zaxisID); + int levelsize = zaxisInqSize(zaxisID); fprintf(stdout, "%6d ", levelsize); fprintf(stdout, "%3d ", vlistZaxisIndex(vlistID, zaxisID) + 1); /* grid info */ - gridsize = gridInqSize(gridID); + int gridsize = gridInqSize(gridID); fprintf(stdout, "%9d ", gridsize); fprintf(stdout, "%3d ", vlistGridIndex(vlistID, gridID) + 1); /* datatype */ - datatype = vlistInqVarDatatype(vlistID, varID); + int datatype = vlistInqVarDatatype(vlistID, varID); if ( datatype == CDI_DATATYPE_PACK ) strcpy(pstr, "P0"); else if ( datatype > 0 && datatype <= 32 ) sprintf(pstr, "P%d", datatype); else if ( datatype == CDI_DATATYPE_CPX32 ) strcpy(pstr, "C32"); @@ -445,7 +435,7 @@ void printShortinfo(int streamID, int vlistID, int vardis) cdiParamToString(param, paramstr, sizeof(paramstr)); - if (vardis) + if ( vardis ) { vlistInqVarName(vlistID, varID, varname); fprintf(stdout, "%-14s", varname); @@ -474,8 +464,8 @@ void printShortinfo(int streamID, int vlistID, int vardis) printSubtypeInfo(vlistID); } - taxisID = vlistInqTaxis(vlistID); - ntsteps = vlistNtsteps(vlistID); + int taxisID = vlistInqTaxis(vlistID); + int ntsteps = vlistNtsteps(vlistID); if ( ntsteps != 0 ) { @@ -488,10 +478,8 @@ void printShortinfo(int streamID, int vlistID, int vardis) { if ( taxisInqType(taxisID) == TAXIS_RELATIVE ) { - int calendar, tunits; - - vdate = taxisInqRdate(taxisID); - vtime = taxisInqRtime(taxisID); + int vdate = taxisInqRdate(taxisID); + int vtime = taxisInqRtime(taxisID); cdiDecodeDate(vdate, &year, &month, &day); cdiDecodeTime(vtime, &hour, &minute, &second); @@ -499,10 +487,10 @@ void printShortinfo(int streamID, int vlistID, int vardis) fprintf(stdout, " RefTime = %4.4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d", year, month, day, hour, minute, second); - tunits = taxisInqTunit(taxisID); + int tunits = taxisInqTunit(taxisID); if ( tunits != CDI_UNDEFID ) fprintf(stdout, " Units = %s", tunit2str(tunits)); - calendar = taxisInqCalendar(taxisID); + int calendar = taxisInqCalendar(taxisID); if ( calendar != CDI_UNDEFID ) fprintf(stdout, " Calendar = %s", calendar2str(calendar)); if ( taxisHasBounds(taxisID) ) @@ -703,7 +691,7 @@ int handle_error(int cdiErrno, const char *fmt, ...) fprintf(stderr, "%s\n", cdiStringError(cdiErrno)); - return (cdiErrno); + return cdiErrno; } static @@ -844,33 +832,25 @@ int main(int argc, char *argv[]) if ( fname1 ) { - double *data = NULL; - double missval; - double level; int nmiss; int number; int datasize = 0; - int streamID1 = CDI_UNDEFID; int streamID2 = CDI_UNDEFID; int filetype; int gridID, zaxisID; int param; - int vdate, vtime; - int nrecs, nvars; + int nrecs; int levelID, levelsize; int nts = 0; int gridsize = 0; int recID; - int tsID; - int ntsteps = 0; - int taxisID1, taxisID2 = CDI_UNDEFID; - int vlistID1, vlistID2 = CDI_UNDEFID; + int taxisID2 = CDI_UNDEFID; + int vlistID2 = CDI_UNDEFID; - streamID1 = streamOpenRead(fname1); - if ( streamID1 < 0 ) - return (handle_error(streamID1, "Open failed on %s", fname1)); + int streamID1 = streamOpenRead(fname1); + if ( streamID1 < 0 ) return handle_error(streamID1, "Open failed on %s", fname1); - vlistID1 = streamInqVlist(streamID1); + int vlistID1 = streamInqVlist(streamID1); if ( Longinfo ) { @@ -878,17 +858,16 @@ int main(int argc, char *argv[]) vlistPrint(vlistID1); ngrids = vlistNgrids(vlistID1); nzaxis = vlistNzaxis(vlistID1); - for ( gridID = 0; gridID < ngrids; gridID++ ) gridPrint(gridID, gridID, 1); - for ( zaxisID = 0; zaxisID < nzaxis; zaxisID++ ) zaxisPrint(zaxisID, zaxisID); + for ( int index = 0; index < ngrids; index++ ) gridPrint(vlistGrid(vlistID1, index), index, 1); + for ( int index = 0; index < nzaxis; index++ ) zaxisPrint(vlistZaxis(vlistID1, index), index); } - nvars = vlistNvars(vlistID1); - taxisID1 = vlistInqTaxis(vlistID1); - ntsteps = vlistNtsteps(vlistID1); + int nvars = vlistNvars(vlistID1); + int taxisID1 = vlistInqTaxis(vlistID1); + int ntsteps = vlistNtsteps(vlistID1); - if (Debug) - fprintf(stderr, "nvars = %d\n" - "ntsteps = %d\n", nvars, ntsteps); + if ( Debug ) + fprintf(stderr, "nvars = %d\nntsteps = %d\n", nvars, ntsteps); if ( fname2 ) { @@ -919,7 +898,7 @@ int main(int argc, char *argv[]) streamID2 = streamOpenWrite(fname2, filetype); if ( streamID2 < 0 ) - return (handle_error(streamID2, "Open failed on %s", fname2)); + return handle_error(streamID2, "Open failed on %s", fname2); if ( DefaultByteorder != CDI_UNDEFID ) streamDefByteorder(streamID2, DefaultByteorder); @@ -936,14 +915,13 @@ int main(int argc, char *argv[]) } if ( vlistNumber(vlistID1) != CDI_REAL ) datasize *= 2; - data = (double *) malloc((size_t)datasize * sizeof (double)); + double *data = (double *) malloc((size_t)datasize * sizeof (double)); /* nts = cdiInqTimeSize(streamID1); */ - if (Debug) - printf("nts = %d streamID1 = %d, streamID2 = %d\n", - nts, streamID1, streamID2); + if ( Debug ) + printf("nts = %d streamID1 = %d, streamID2 = %d\n", nts, streamID1, streamID2); if ( Shortinfo ) { @@ -951,7 +929,7 @@ int main(int argc, char *argv[]) printShortinfo(streamID1, vlistID1, Vardis); } - tsID = 0; + int tsID = 0; if ( Info || fname2 ) while ( (nrecs = streamInqTimestep(streamID1, tsID)) > 0 ) { @@ -960,8 +938,8 @@ int main(int argc, char *argv[]) taxisCopyTimestep(taxisID2, taxisID1); streamDefTimestep(streamID2, tsID); } - vdate = taxisInqVdate(taxisID1); - vtime = taxisInqVtime(taxisID1); + int vdate = taxisInqVdate(taxisID1); + int vtime = taxisInqVtime(taxisID1); if ( Debug ) fprintf(stdout, "tsID = %d nrecs = %d date = %d time = %d\n", tsID, nrecs, vdate, vtime); @@ -987,8 +965,8 @@ int main(int argc, char *argv[]) varID, param, gridID, zaxisID, levelID); */ gridsize = gridInqSize(gridID); - level = zaxisInqLevels(zaxisID, NULL) ? zaxisInqLevel(zaxisID, levelID) : levelID+1; - missval = vlistInqVarMissval(vlistID1, varID); + double level = zaxisInqLevels(zaxisID, NULL) ? zaxisInqLevel(zaxisID, levelID) : levelID+1; + double missval = vlistInqVarMissval(vlistID1, varID); if ( Info ) printInfo(vdate, vtime, varname, level, gridsize, number, nmiss, missval, data, Vardis); @@ -1024,12 +1002,12 @@ int main(int argc, char *argv[]) varID, param, gridID, zaxisID); gridsize = gridInqSize(gridID); - missval = vlistInqVarMissval(vlistID1, varID); + double missval = vlistInqVarMissval(vlistID1, varID); levelsize = zaxisInqSize(zaxisID); for ( levelID = 0; levelID < levelsize; levelID++ ) { - level = zaxisInqLevels(zaxisID, NULL) ? zaxisInqLevel(zaxisID, levelID) : levelID+1; + double level = zaxisInqLevels(zaxisID, NULL) ? zaxisInqLevel(zaxisID, levelID) : levelID+1; streamReadVarSlice(streamID1, varID, levelID, data, &nmiss); if ( Info ) @@ -1040,6 +1018,7 @@ int main(int argc, char *argv[]) } } } + tsID++; } @@ -1059,7 +1038,7 @@ int main(int argc, char *argv[]) if ( wTable ) tableWrite(wTable, itableID); - return (0); + return 0; } /* * Local Variables: