Commit 58fbbd96 authored by Uwe Schulzweida's avatar Uwe Schulzweida

Version 1.0.2 released

parent a1af3c38
......@@ -23,6 +23,7 @@ Operator catalog:
Ninfo ntime Number of time steps
Showinfo showcode Show codes
Showinfo showvar Show variable names
Showinfo showstdname Show standard names
Showinfo showlevel Show levels
Showinfo showyear Show years
Showinfo showmon Show months
......@@ -57,6 +58,7 @@ Operator catalog:
Select delcode Delete codes
Select selvar Select variables
Select delvar Delete variables
Select selstdname Select standard names
Select sellevel Select levels
Select selgrid Select grids
Select selgridname Select grids by name
......@@ -132,8 +134,8 @@ Operator catalog:
Invert invertlondata Invert longitude data
Maskbox masklonlatbox Mask a longitude/latitude box
Maskbox maskindexbox Mask an index box
Setcbox setclonlatbox Set a longitude/latitude box to constant
Setcbox setcindexbox Set an index box to constant
Setbox setclonlatbox Set a longitude/latitude box to constant
Setbox setcindexbox Set an index box to constant
Enlarge enlarge Enlarge fields
Setmiss setmissval Set a new missing value
Setmiss setctomiss Set constant to missing value
......@@ -145,6 +147,8 @@ Operator catalog:
Exprf expr Evaluate expressions
Exprf exprf Evaluate expressions from script file
Math abs Absolute value
Math int Integer value
Math nint Nearest integer value
Math sqr Square
Math sqrt Square root
Math exp Exponential
......@@ -262,16 +266,19 @@ Operator catalog:
Seasstat seasstd Seasonally standard deviation
Ydaystat ydaymin Multi-year daily minimum
Ydaystat ydaymax Multi-year daily maximum
Ydaystat ydaysum Multi-year daily sum
Ydaystat ydaymean Multi-year daily mean
Ydaystat ydayavg Multi-year daily average
Ydaystat ydaystd Multi-year daily standard deviation
Ymonstat ymonmin Multi-year monthly minimum
Ymonstat ymonmax Multi-year monthly maximum
Ymonstat ymonsum Multi-year monthly sum
Ymonstat ymonmean Multi-year monthly mean
Ymonstat ymonavg Multi-year monthly average
Ymonstat ymonstd Multi-year monthly standard deviation
Yseasstat yseasmin Multi-year seasonally minimum
Yseasstat yseasmax Multi-year seasonally maximum
Yseasstat yseassum Multi-year seasonally sum
Yseasstat yseasmean Multi-year seasonally mean
Yseasstat yseasavg Multi-year seasonally average
Yseasstat yseasstd Multi-year seasonally standard deviation
......@@ -328,7 +335,7 @@ Operator catalog:
Vargen random Create a field with random values
Vardup vardup Duplicate variables
Vardup varmul Multiply variables
Gradsdes gradsdes GrADS data descriptor file
Gradsdes gradsdes2 GrADS data descriptor file (version 2 map)
Gradsdes gradsdes1 GrADS data descriptor file (version 1 GRIB map)
Gradsdes gradsdes2 GrADS data descriptor file (version 2 GRIB map)
Rotuv rotuvb Backward rotation
Mastrfu mastrfu Mass stream function
......@@ -97,12 +97,14 @@ case "${HOSTNAME}" in
ecgate)
./configure --prefix=$HOME/local \
--with-netcdf=/home/ms/spdekplb/hmk/local/AIX \
CPPFLAGS="-DHAVE_LIBSZ -I$HOME/local/include" LIBS=$HOME/local/lib/libsz.a \
CC=xlc_r CFLAGS="-O -q64 -qMAXMEM=-1 -qarch=auto -DHAVE_MMAP -D_LARGE_FILES=1"
;;
# powerpc-ibm-aix5.3.0.0
hpc*)
./configure --prefix=$HOME/local \
--with-netcdf=/usr/local/lib/netcdf-3.5.0/LP64 \
CPPFLAGS="-DHAVE_LIBSZ -I$HOME/local/include" LIBS=$HOME/local/lib/libsz.a \
CC=xlc_r CFLAGS="-O3 -q64 -qstrict -qarch=auto -qtune=auto -DHAVE_MMAP -D_LARGE_FILES=1"
;;
# powerpc-ibm-aix5.2.0.0
......
No preview for this file type
......@@ -125,11 +125,10 @@ void *Input(void *argument)
cdoPrint("Enter all %d elements of record %d!\n", gridsize, nrecs+1);
rval = input_darray(gridsize, array);
if ( feof(stdin) && nrecs == 0 )
if ( rval != gridsize )
cdoAbort("To few input elements (%d of %d)!", rval, gridsize);
if ( feof(stdin) ) break;
if ( rval != gridsize ) cdoAbort("Invalid data input!");
}
else if ( operatorID == INPUTEXT )
{
......
......@@ -64,7 +64,7 @@ void *Setrcaname(void *argument)
{
while ( readline(fp, line, MAX_LINE_LEN) )
{
fscanf(fp, "%d\t%d\t%d\t%s\t%s\t%s", &scode, &sltype, &slevel, sname, sdescription, sunits);
sscanf(line, "%d\t%d\t%d\t%s\t%s\t%s", &scode, &sltype, &slevel, sname, sdescription, sunits);
/*
printf("%s\n", line);
printf("%d:%d:%d:%s:%s:%s\n", scode, sltype, slevel, sname, sdescription, sunits);
......@@ -84,7 +84,7 @@ void *Setrcaname(void *argument)
{
if ( nlev != 1 )
{
cdoWarning("Number of levels must be 1 for level type 105!");
cdoWarning("Number of levels should be 1 for level type 105!");
cdoWarning("Maybe environment variable SPLIT_LTYPE_105 is not set.");
continue;
}
......
......@@ -76,6 +76,8 @@
#define PIH HALF*PI
double intlin(double x, double y1, double x1, double y2, double x2);
extern int timer_remap, timer_remap_con, timer_remap_con2, timer_remap_con3;
......@@ -385,40 +387,6 @@ void remapGridInit(int map_type, int gridID1, int gridID2, REMAPGRID *rg)
((gridInqType(gridID1) == GRID_LONLAT && gridIsRotated(gridID1)) ||
(gridInqType(gridID1) == GRID_LONLAT && rg->non_global)) )
{
/*
int gridIDnew;
int nx, ny, nxp2, nyp2;
double *xvals, *yvals;
nx = gridInqXsize(gridID1);
ny = gridInqYsize(gridID1);
nxp2 = nx+2;
nyp2 = ny+2;
xvals = (double *) malloc(nxp2*sizeof(double));
yvals = (double *) malloc(nyp2*sizeof(double));
gridInqXvals(gridID1, xvals+1);
gridInqYvals(gridID1, yvals+1);
gridIDnew = gridCreate(GRID_LONLAT, nxp2*nyp2);
gridDefXsize(gridIDnew, nxp2);
gridDefYsize(gridIDnew, nyp2);
xvals[0] = xvals[1] - gridInqXinc(gridID1);
xvals[nxp2-1] = xvals[nx] + gridInqXinc(gridID1);
yvals[0] = yvals[1] - gridInqYinc(gridID1);
yvals[nyp2-1] = yvals[ny] + gridInqYinc(gridID1);
gridDefXvals(gridIDnew, xvals);
gridDefYvals(gridIDnew, yvals);
free(xvals);
free(yvals);
gridDefXpole(gridIDnew, gridInqXpole(gridID1));
gridDefYpole(gridIDnew, gridInqYpole(gridID1));
*/
int gridIDnew;
int nx, ny, nxp4, nyp4;
double *xvals, *yvals;
......@@ -471,7 +439,6 @@ void remapGridInit(int map_type, int gridID1, int gridID2, REMAPGRID *rg)
int gridIDnew;
int gridsize, gridsize_new;
int nx, ny, nxp4, nyp4;
double xinc, yinc;
double *xvals, *yvals;
gridsize = gridInqSize(gridID1);
......@@ -500,44 +467,30 @@ void remapGridInit(int map_type, int gridID1, int gridID2, REMAPGRID *rg)
for ( j = 2; j < nyp4-2; j++ )
{
xinc = xvals[j*nxp4+3] - xvals[j*nxp4+2];
yinc = yvals[j*nxp4+3] - yvals[j*nxp4+2];
xinc = 0;
yinc = 0;
xvals[j*nxp4+0] = xvals[j*nxp4+2] - xinc*2;
xvals[j*nxp4+1] = xvals[j*nxp4+2] - xinc;
yvals[j*nxp4+0] = yvals[j*nxp4+2] - yinc*2;
yvals[j*nxp4+1] = yvals[j*nxp4+2] - yinc;
xinc = xvals[j*nxp4+nxp4-4] - xvals[j*nxp4+nxp4-3];
yinc = yvals[j*nxp4+nxp4-4] - yvals[j*nxp4+nxp4-3];
xinc = 0;
yinc = 0;
xvals[j*nxp4+nxp4-2] = xvals[j*nxp4+nxp4-3] - xinc;
xvals[j*nxp4+nxp4-1] = xvals[j*nxp4+nxp4-3] - xinc*2;
yvals[j*nxp4+nxp4-2] = yvals[j*nxp4+nxp4-3] - yinc;
yvals[j*nxp4+nxp4-1] = yvals[j*nxp4+nxp4-3] - yinc*2;
xvals[j*nxp4+0] = intlin(3.0, xvals[j*nxp4+3], 0.0, xvals[j*nxp4+2], 1.0);
xvals[j*nxp4+1] = intlin(2.0, xvals[j*nxp4+3], 0.0, xvals[j*nxp4+2], 1.0);
yvals[j*nxp4+0] = intlin(3.0, yvals[j*nxp4+3], 0.0, yvals[j*nxp4+2], 1.0);
yvals[j*nxp4+1] = intlin(2.0, yvals[j*nxp4+3], 0.0, yvals[j*nxp4+2], 1.0);
xvals[j*nxp4+nxp4-2] = intlin(2.0, xvals[j*nxp4+nxp4-4], 0.0, xvals[j*nxp4+nxp4-3], 1.0);
xvals[j*nxp4+nxp4-1] = intlin(3.0, xvals[j*nxp4+nxp4-4], 0.0, xvals[j*nxp4+nxp4-3], 1.0);
yvals[j*nxp4+nxp4-2] = intlin(2.0, yvals[j*nxp4+nxp4-4], 0.0, yvals[j*nxp4+nxp4-3], 1.0);
yvals[j*nxp4+nxp4-1] = intlin(3.0, yvals[j*nxp4+nxp4-4], 0.0, yvals[j*nxp4+nxp4-3], 1.0);
}
for ( i = 0; i < nxp4; i++ )
{
xinc = xvals[3*nxp4+i] - xvals[2*nxp4+i];
yinc = yvals[3*nxp4+i] - yvals[2*nxp4+i];
xinc = 0;
yinc = 0;
xvals[0*nxp4+i] = xvals[2*nxp4+i] - xinc*2;
xvals[1*nxp4+i] = xvals[2*nxp4+i] - xinc;
yvals[0*nxp4+i] = yvals[2*nxp4+i] - yinc*2;
yvals[1*nxp4+i] = yvals[2*nxp4+i] - yinc;
xinc = xvals[(nyp4-4)*nxp4+i] - xvals[(nyp4-3)*nxp4+i];
yinc = yvals[(nyp4-4)*nxp4+i] - yvals[(nyp4-3)*nxp4+i];
xinc = 0;
yinc = 0;
xvals[(nyp4-2)*nxp4+i] = xvals[(nyp4-3)*nxp4+i] - xinc;
xvals[(nyp4-1)*nxp4+i] = xvals[(nyp4-3)*nxp4+i] - xinc*2;
yvals[(nyp4-2)*nxp4+i] = yvals[(nyp4-3)*nxp4+i] - yinc;
yvals[(nyp4-1)*nxp4+i] = yvals[(nyp4-3)*nxp4+i] - yinc*2;
xvals[0*nxp4+i] = intlin(3.0, xvals[3*nxp4+i], 0.0, xvals[2*nxp4+i], 1.0);
xvals[1*nxp4+i] = intlin(2.0, xvals[3*nxp4+i], 0.0, xvals[2*nxp4+i], 1.0);
yvals[0*nxp4+i] = intlin(3.0, yvals[3*nxp4+i], 0.0, yvals[2*nxp4+i], 1.0);
yvals[1*nxp4+i] = intlin(2.0, yvals[3*nxp4+i], 0.0, yvals[2*nxp4+i], 1.0);
xvals[(nyp4-2)*nxp4+i] = intlin(2.0, xvals[(nyp4-4)*nxp4+i], 0.0, xvals[(nyp4-3)*nxp4+i], 1.0);
xvals[(nyp4-1)*nxp4+i] = intlin(3.0, xvals[(nyp4-4)*nxp4+i], 0.0, xvals[(nyp4-3)*nxp4+i], 1.0);
yvals[(nyp4-2)*nxp4+i] = intlin(2.0, yvals[(nyp4-4)*nxp4+i], 0.0, yvals[(nyp4-3)*nxp4+i], 1.0);
yvals[(nyp4-1)*nxp4+i] = intlin(3.0, yvals[(nyp4-4)*nxp4+i], 0.0, yvals[(nyp4-3)*nxp4+i], 1.0);
}
/*
{
FILE *fp;
fp = fopen("xvals.asc", "w");
......@@ -547,7 +500,7 @@ void remapGridInit(int map_type, int gridID1, int gridID2, REMAPGRID *rg)
for ( i = 0; i < gridsize_new; i++ ) fprintf(fp, "%g\n", yvals[i]);
fclose(fp);
}
*/
gridDefXvals(gridIDnew, xvals);
gridDefYvals(gridIDnew, yvals);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment