Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
mpim-sw
cdo
Commits
7f1a9b52
Commit
7f1a9b52
authored
Jun 13, 2010
by
Uwe Schulzweida
Browse files
Added module command
parent
4718765c
Changes
6
Hide whitespace changes
Inline
Side-by-side
.gitattributes
View file @
7f1a9b52
...
...
@@ -273,6 +273,7 @@ src/Cat.c -text
src/Change.c -text
src/Change_e5slm.c -text
src/Cloudlayer.c -text
src/Command.c -text
src/Comp.c -text
src/Compc.c -text
src/Complextorect.c -text
...
...
src/CDItest.c
View file @
7f1a9b52
...
...
@@ -2,7 +2,7 @@
This file is part of CDO. CDO is a collection of Operators to
manipulate and analyse Climate model Data.
Copyright (C) 2003-200
8
Uwe Schulzweida, Uwe.Schulzweida@zmaw.de
Copyright (C) 2003-20
1
0 Uwe Schulzweida, Uwe.Schulzweida@zmaw.de
See COPYING file for copying and redistribution conditions.
This program is free software; you can redistribute it and/or modify
...
...
@@ -20,8 +20,6 @@
*/
#include
<string.h>
#include
"cdi.h"
#include
"cdo.h"
#include
"cdo_int.h"
...
...
src/Command.c
0 → 100644
View file @
7f1a9b52
/*
This file is part of CDO. CDO is a collection of Operators to
manipulate and analyse Climate model Data.
Copyright (C) 2003-2010 Uwe Schulzweida, Uwe.Schulzweida@zmaw.de
See COPYING file for copying and redistribution conditions.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
*/
/*
This module contains the following operators:
*/
#include
<ctype.h>
/* isspace */
#include
"cdi.h"
#include
"cdo.h"
#include
"cdo_int.h"
int
streamID
=
0
;
int
vlistID
=
0
;
int
varID
=
0
;
int
levelID
=
0
;
int
tsID
=
0
;
double
*
array
=
NULL
;
#define MAX_LINE 256
int
Done
=
0
;
int
com_help
(
char
*
);
int
com_list
(
char
*
);
int
com_quit
(
char
*
);
int
com_stat
(
char
*
);
int
com_vars
(
char
*
);
//int com_stat(char *);
typedef
struct
{
char
*
name
;
/* User printable name of the function. */
int
(
*
func
)(
char
*
);
/* Function to call to do the job. */
char
*
doc
;
/* Documentation for this function. */
}
command_t
;
command_t
commands
[]
=
{
{
"help"
,
com_help
,
"Display this text"
},
{
"?"
,
com_help
,
"Synonym for 'help'"
},
{
"list"
,
com_list
,
"List files in DIR"
},
{
"quit"
,
com_quit
,
"Quit using CDO"
},
{
"stat"
,
com_stat
,
"Statistic for selected field"
},
{
"vars"
,
com_vars
,
"list variables"
},
// { "stat", com_stat, "Print out statistics on FILE" },
{
NULL
,
NULL
,
NULL
}
};
/* Return non-zero if ARG is a valid argument for CALLER, else print
an error message and return zero. */
int
valid_argument
(
char
*
caller
,
char
*
arg
)
{
if
(
!
arg
||
!*
arg
)
{
fprintf
(
stderr
,
"%s: Argument required.
\n
"
,
caller
);
return
(
0
);
}
return
(
1
);
}
/* Print out help for ARG, or for all of the commands if ARG is not present. */
int
com_help
(
char
*
arg
)
{
int
i
;
int
printed
=
0
;
for
(
i
=
0
;
commands
[
i
].
name
;
i
++
)
{
if
(
!*
arg
||
(
strcmp
(
arg
,
commands
[
i
].
name
)
==
0
))
{
printf
(
"%s
\t\t
%s.
\n
"
,
commands
[
i
].
name
,
commands
[
i
].
doc
);
printed
++
;
}
}
if
(
!
printed
)
{
printf
(
"No commands match â%sâ. Possibilties are:
\n
"
,
arg
);
for
(
i
=
0
;
commands
[
i
].
name
;
i
++
)
{
/* Print in six columns. */
if
(
printed
==
6
)
{
printed
=
0
;
printf
(
"
\n
"
);
}
printf
(
"%s
\t
"
,
commands
[
i
].
name
);
printed
++
;
}
if
(
printed
)
printf
(
"
\n
"
);
}
return
(
0
);
}
/* List the file(s) named in arg. */
int
com_list
(
char
*
arg
)
{
if
(
!
arg
)
arg
=
""
;
return
(
0
);
}
/* The user wishes to quit using this program. Just set DONE non-zero. */
int
com_quit
(
char
*
arg
)
{
Done
=
1
;
return
(
0
);
}
int
com_stat
(
char
*
arg
)
{
int
nrecs
;
nrecs
=
streamInqTimestep
(
streamID
,
tsID
);
if
(
nrecs
==
0
)
{
fprintf
(
stderr
,
"Timestep %d out of range!
\n
"
,
tsID
);
}
else
{
int
i
;
int
nmiss
;
int
gridsize
;
double
fmin
=
1.e50
,
fmax
=
-
1.e50
,
fmean
=
0
;
streamReadVarSlice
(
streamID
,
varID
,
levelID
,
array
,
&
nmiss
);
gridsize
=
gridInqSize
(
vlistInqVarGrid
(
vlistID
,
varID
));
for
(
i
=
0
;
i
<
gridsize
;
++
i
)
{
if
(
array
[
i
]
<
fmin
)
fmin
=
array
[
i
];
if
(
array
[
i
]
>
fmax
)
fmax
=
array
[
i
];
fmean
+=
array
[
i
];
}
fmean
/=
gridsize
;
fprintf
(
stdout
,
"%g %g %g
\n
"
,
fmin
,
fmean
,
fmax
);
}
return
(
0
);
}
int
com_vars
(
char
*
arg
)
{
int
varID
;
int
nvars
=
vlistNvars
(
vlistID
);
if
(
!
arg
)
arg
=
""
;
printf
(
"com_vars: %s %d
\n
"
,
arg
,
nvars
);
for
(
varID
=
0
;
varID
<
nvars
;
++
varID
)
{
fprintf
(
stdout
,
"varID %d
\n
"
,
varID
);
}
return
(
0
);
}
/* Look up NAME as the name of a command, and return a pointer to that
command. Return a NULL pointer if NAME isn't a command name. */
command_t
*
find_command
(
char
*
name
)
{
int
i
;
for
(
i
=
0
;
commands
[
i
].
name
;
i
++
)
if
(
strcmp
(
name
,
commands
[
i
].
name
)
==
0
)
return
(
&
commands
[
i
]);
return
((
command_t
*
)
NULL
);
}
/* Execute a command line. */
int
execute_line
(
char
*
line
)
{
int
i
;
command_t
*
command
;
char
*
word
;
/* Isolate the command word. */
i
=
0
;
while
(
line
[
i
]
&&
isspace
(
line
[
i
]))
i
++
;
word
=
line
+
i
;
while
(
line
[
i
]
&&
!
isspace
(
line
[
i
]))
i
++
;
if
(
line
[
i
]
)
line
[
i
++
]
=
'\0'
;
command
=
find_command
(
word
);
if
(
!
command
)
{
fprintf
(
stderr
,
"%s: No such command!
\n
"
,
word
);
return
(
-
1
);
}
/* Get argument to command, if any. */
while
(
isspace
(
line
[
i
])
)
i
++
;
word
=
line
+
i
;
/* Call the function. */
return
((
*
(
command
->
func
))
(
word
));
}
/* Strip isspace from the start and end of STRING. Return a pointer into STRING. */
char
*
stripwhite
(
char
*
string
)
{
char
*
s
,
*
t
;
for
(
s
=
string
;
isspace
(
*
s
);
s
++
)
;
if
(
*
s
==
0
)
return
(
s
);
t
=
s
+
strlen
(
s
)
-
1
;
while
(
t
>
s
&&
isspace
(
*
t
))
t
--
;
*++
t
=
'\0'
;
return
s
;
}
void
readcmd
(
const
char
*
prompt
,
char
*
line
,
int
size
)
{
fputs
(
prompt
,
stdout
);
fflush
(
stdout
);
*
line
=
'\0'
;
if
(
fgets
(
line
,
size
,
stdin
)
)
{
char
*
newline
=
strchr
(
line
,
'\n'
);
/* check for trailing '\n' */
if
(
newline
)
*
newline
=
'\0'
;
/* overwrite the '\n' with a terminating null */
}
}
void
*
Command
(
void
*
argument
)
{
static
char
func
[]
=
"Command"
;
int
nrecs
;
int
tsID
,
recID
,
varID
,
levelID
;
int
gridsize
;
int
nmiss
;
int
taxisID
;
double
s_utime
,
s_stime
;
double
e_utime
,
e_stime
;
double
c_cputime
=
0
,
c_usertime
=
0
,
c_systime
=
0
;
char
line
[
MAX_LINE
];
char
*
s
;
cdoInitialize
(
argument
);
processStartTime
(
&
s_utime
,
&
s_stime
);
streamID
=
streamOpenRead
(
cdoStreamName
(
0
));
if
(
streamID
<
0
)
cdiError
(
streamID
,
"Open failed on %s"
,
cdoStreamName
(
0
));
vlistID
=
streamInqVlist
(
streamID
);
taxisID
=
vlistInqTaxis
(
vlistID
);
gridsize
=
vlistGridsizeMax
(
vlistID
);
array
=
(
double
*
)
malloc
(
gridsize
*
sizeof
(
double
));
/* Loop reading and executing lines until the user quits. */
while
(
!
Done
)
{
readcmd
(
"cdo cmd> "
,
line
,
MAX_LINE
);
/* Remove leading and trailing whitespace from the line.
Then, if there is anything left, add it to the history list
and execute it. */
s
=
stripwhite
(
line
);
if
(
*
s
)
execute_line
(
s
);
}
/*
while ( readline(stdin, line, MAX_LINE) )
{
linep = line;
if ( strcmp(linep, "exit") == 0 ) break;
else if ( strcmp(linep, "vars") == 0 )
{
int varID;
int nvars = vlistNvars(vlistID);
for ( varID = 0; varID < nvars; ++nvars )
{
fprintf(stdout,"varID %d\n", varID);
}
}
}
*/
/*
tsID = 0;
while ( (nrecs = streamInqTimestep(streamID, tsID)) )
{
for ( recID = 0; recID < nrecs; recID++ )
{
streamInqRecord(streamID, &varID, &levelID);
streamReadRecord(streamID, array, &nmiss);
}
tsID++;
}
*/
streamClose
(
streamID
);
if
(
array
)
free
(
array
);
cdoProcessTime
(
&
e_utime
,
&
e_stime
);
c_usertime
=
e_utime
-
s_utime
;
c_systime
=
e_stime
-
s_stime
;
c_cputime
=
c_usertime
+
c_systime
;
s_utime
=
e_utime
;
s_stime
=
e_stime
;
cdoPrint
(
"%.2fs %.2fs %.2fs"
,
c_usertime
,
c_systime
,
c_cputime
);
cdoFinish
();
return
(
0
);
}
src/Makefile.am
View file @
7f1a9b52
...
...
@@ -13,13 +13,14 @@ cdo_SOURCES = Arith.c \
Change.c
\
Change_e5slm.c
\
Cloudlayer.c
\
Command.c
\
Comp.c
\
Compc.c
\
Complextorect.c
\
Cond.c
\
Cond2.c
\
Condc.c
\
Consecstat.c
\
Complextorect.c
\
Copy.c
\
Deltime.c
\
Detrend.c
\
...
...
src/Makefile.in
View file @
7f1a9b52
...
...
@@ -68,72 +68,73 @@ PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
am_cdo_OBJECTS
=
Arith.
$(OBJEXT)
Arithc.
$(OBJEXT)
Arithdays.
$(OBJEXT)
\
Arithlat.
$(OBJEXT)
Cat.
$(OBJEXT)
CDItest.
$(OBJEXT)
\
Change.
$(OBJEXT)
Change_e5slm.
$(OBJEXT)
Cloudlayer.
$(OBJEXT)
\
Comp.
$(OBJEXT)
Compc.
$(OBJEXT)
Cond.
$(OBJEXT)
Cond2.
$(OBJEXT)
\
Condc.
$(OBJEXT)
Consecstat.
$(OBJEXT)
Complextorect.
$(OBJEXT)
\
Copy.
$(OBJEXT)
Deltime.
$(OBJEXT)
Detrend.
$(OBJEXT)
\
Diff.
$(OBJEXT)
Echam5ini.
$(OBJEXT)
Enlarge.
$(OBJEXT)
\
Enlargegrid.
$(OBJEXT)
Ensstat.
$(OBJEXT)
Eofcoeff.
$(OBJEXT)
\
EOFs.
$(OBJEXT)
Exprf.
$(OBJEXT)
Filedes.
$(OBJEXT)
\
Fillmiss.
$(OBJEXT)
Filter.
$(OBJEXT)
Fldrms.
$(OBJEXT)
\
Fldstat.
$(OBJEXT)
Fldstat2.
$(OBJEXT)
Fourier.
$(OBJEXT)
\
Gengrid.
$(OBJEXT)
Gradsdes.
$(OBJEXT)
Gridboxstat.
$(OBJEXT)
\
Gridcell.
$(OBJEXT)
Harmonic.
$(OBJEXT)
Histogram.
$(OBJEXT)
\
Importamsr.
$(OBJEXT)
Importbinary.
$(OBJEXT)
\
Importcmsaf.
$(OBJEXT)
Importobs.
$(OBJEXT)
Info.
$(OBJEXT)
\
Input.
$(OBJEXT)
Intgrid.
$(OBJEXT)
Intgridtraj.
$(OBJEXT)
\
Intlevel.
$(OBJEXT)
Inttime.
$(OBJEXT)
Intntime.
$(OBJEXT)
\
Intyear.
$(OBJEXT)
Invert.
$(OBJEXT)
Invertlev.
$(OBJEXT)
\
Log.
$(OBJEXT)
Maskbox.
$(OBJEXT)
Mastrfu.
$(OBJEXT)
\
Math.
$(OBJEXT)
Merge.
$(OBJEXT)
Mergegrid.
$(OBJEXT)
\
Mergetime.
$(OBJEXT)
Merstat.
$(OBJEXT)
Monarith.
$(OBJEXT)
\
Mrotuv.
$(OBJEXT)
Mrotuvb.
$(OBJEXT)
Ninfo.
$(OBJEXT)
\
Nmltest.
$(OBJEXT)
Output.
$(OBJEXT)
Outputgmt.
$(OBJEXT)
\
Pinfo.
$(OBJEXT)
Pressure.
$(OBJEXT)
Regres.
$(OBJEXT)
\
Remap.
$(OBJEXT)
Remapeta.
$(OBJEXT)
Replace.
$(OBJEXT)
\
Rotuv.
$(OBJEXT)
Runpctl.
$(OBJEXT)
Runstat.
$(OBJEXT)
\
Seascount.
$(OBJEXT)
Seaspctl.
$(OBJEXT)
Seasstat.
$(OBJEXT)
\
Selbox.
$(OBJEXT)
Select.
$(OBJEXT)
Selvar.
$(OBJEXT)
\
Seloperator.
$(OBJEXT)
Selrec.
$(OBJEXT)
Seltime.
$(OBJEXT)
\
Set.
$(OBJEXT)
Setbox.
$(OBJEXT)
Setgatt.
$(OBJEXT)
\
Setgrid.
$(OBJEXT)
Sethalo.
$(OBJEXT)
Setmiss.
$(OBJEXT)
\
Setrange.
$(OBJEXT)
Setrcaname.
$(OBJEXT)
Settime.
$(OBJEXT)
\
Setzaxis.
$(OBJEXT)
Showinfo.
$(OBJEXT)
Sinfo.
$(OBJEXT)
\
Smooth9.
$(OBJEXT)
Sort.
$(OBJEXT)
Sorttimestamp.
$(OBJEXT)
\
Specinfo.
$(OBJEXT)
Spectral.
$(OBJEXT)
Spectrum.
$(OBJEXT)
\
Split.
$(OBJEXT)
Splitrec.
$(OBJEXT)
Splitsel.
$(OBJEXT)
\
Splittime.
$(OBJEXT)
Splityear.
$(OBJEXT)
Subtrend.
$(OBJEXT)
\
Templates.
$(OBJEXT)
Test.
$(OBJEXT)
Tests.
$(OBJEXT)
\
Timcount.
$(OBJEXT)
Timpctl.
$(OBJEXT)
Timsort.
$(OBJEXT)
\
Timselpctl.
$(OBJEXT)
Timselstat.
$(OBJEXT)
Timstat.
$(OBJEXT)
\
Timstat2.
$(OBJEXT)
Timstat3.
$(OBJEXT)
Tinfo.
$(OBJEXT)
\
Tocomplex.
$(OBJEXT)
Transpose.
$(OBJEXT)
Trend.
$(OBJEXT)
\
Trms.
$(OBJEXT)
Tstepcount.
$(OBJEXT)
Vardup.
$(OBJEXT)
\
Vargen.
$(OBJEXT)
Varrms.
$(OBJEXT)
Vertint.
$(OBJEXT)
\
Vertstat.
$(OBJEXT)
Vertwind.
$(OBJEXT)
Wind.
$(OBJEXT)
\
Writegrid.
$(OBJEXT)
Writerandom.
$(OBJEXT)
Yhourstat.
$(OBJEXT)
\
Ydaypctl.
$(OBJEXT)
Ydaystat.
$(OBJEXT)
Ydrunpctl.
$(OBJEXT)
\
Ydrunstat.
$(OBJEXT)
Ymonarith.
$(OBJEXT)
Ymonpctl.
$(OBJEXT)
\
Ymonstat.
$(OBJEXT)
Yseaspctl.
$(OBJEXT)
Yseasstat.
$(OBJEXT)
\
Zonstat.
$(OBJEXT)
cdilib.
$(OBJEXT)
commandline.
$(OBJEXT)
\
exception.
$(OBJEXT)
expr_yacc.
$(OBJEXT)
expr_lex.
$(OBJEXT)
\
expr.
$(OBJEXT)
cdo.
$(OBJEXT)
cdo_pthread.
$(OBJEXT)
\
cdo_vlist.
$(OBJEXT)
field.
$(OBJEXT)
fieldc.
$(OBJEXT)
\
field2.
$(OBJEXT)
fieldmer.
$(OBJEXT)
fieldzon.
$(OBJEXT)
\
fieldmem.
$(OBJEXT)
gradsdeslib.
$(OBJEXT)
grid.
$(OBJEXT)
\
grid_gme.
$(OBJEXT)
grid_lcc.
$(OBJEXT)
grid_rot.
$(OBJEXT)
\
griddes.
$(OBJEXT)
griddes_nc.
$(OBJEXT)
griddes_h5.
$(OBJEXT)
\
hetaeta.
$(OBJEXT)
history.
$(OBJEXT)
institution.
$(OBJEXT)
\
interpol.
$(OBJEXT)
job.
$(OBJEXT)
modules.
$(OBJEXT)
\
namelist.
$(OBJEXT)
normal.
$(OBJEXT)
pipe.
$(OBJEXT)
\
process.
$(OBJEXT)
remaplib.
$(OBJEXT)
timer.
$(OBJEXT)
\
realtime.
$(OBJEXT)
pstream.
$(OBJEXT)
table.
$(OBJEXT)
\
userlog.
$(OBJEXT)
util.
$(OBJEXT)
legendre.
$(OBJEXT)
\
fouriertrans.
$(OBJEXT)
specspace.
$(OBJEXT)
readline.
$(OBJEXT)
\
juldate.
$(OBJEXT)
vinterp.
$(OBJEXT)
zaxis.
$(OBJEXT)
\
par_io.
$(OBJEXT)
pthread_debug.
$(OBJEXT)
color.
$(OBJEXT)
\
list.
$(OBJEXT)
percentiles.
$(OBJEXT)
nth_element.
$(OBJEXT)
\
ecacore.
$(OBJEXT)
ecautil.
$(OBJEXT)
EcaIndices.
$(OBJEXT)
\
Hi.
$(OBJEXT)
Wct.
$(OBJEXT)
statistic.
$(OBJEXT)
Command.
$(OBJEXT)
Comp.
$(OBJEXT)
Compc.
$(OBJEXT)
\
Complextorect.
$(OBJEXT)
Cond.
$(OBJEXT)
Cond2.
$(OBJEXT)
\
Condc.
$(OBJEXT)
Consecstat.
$(OBJEXT)
Copy.
$(OBJEXT)
\
Deltime.
$(OBJEXT)
Detrend.
$(OBJEXT)
Diff.
$(OBJEXT)
\
Echam5ini.
$(OBJEXT)
Enlarge.
$(OBJEXT)
Enlargegrid.
$(OBJEXT)
\
Ensstat.
$(OBJEXT)
Eofcoeff.
$(OBJEXT)
EOFs.
$(OBJEXT)
\
Exprf.
$(OBJEXT)
Filedes.
$(OBJEXT)
Fillmiss.
$(OBJEXT)
\
Filter.
$(OBJEXT)
Fldrms.
$(OBJEXT)
Fldstat.
$(OBJEXT)
\
Fldstat2.
$(OBJEXT)
Fourier.
$(OBJEXT)
Gengrid.
$(OBJEXT)
\
Gradsdes.
$(OBJEXT)
Gridboxstat.
$(OBJEXT)
Gridcell.
$(OBJEXT)
\
Harmonic.
$(OBJEXT)
Histogram.
$(OBJEXT)
Importamsr.
$(OBJEXT)
\
Importbinary.
$(OBJEXT)
Importcmsaf.
$(OBJEXT)
\
Importobs.
$(OBJEXT)
Info.
$(OBJEXT)
Input.
$(OBJEXT)
\
Intgrid.
$(OBJEXT)
Intgridtraj.
$(OBJEXT)
Intlevel.
$(OBJEXT)
\
Inttime.
$(OBJEXT)
Intntime.
$(OBJEXT)
Intyear.
$(OBJEXT)
\
Invert.
$(OBJEXT)
Invertlev.
$(OBJEXT)
Log.
$(OBJEXT)
\
Maskbox.
$(OBJEXT)
Mastrfu.
$(OBJEXT)
Math.
$(OBJEXT)
\
Merge.
$(OBJEXT)
Mergegrid.
$(OBJEXT)
Mergetime.
$(OBJEXT)
\
Merstat.
$(OBJEXT)
Monarith.
$(OBJEXT)
Mrotuv.
$(OBJEXT)
\
Mrotuvb.
$(OBJEXT)
Ninfo.
$(OBJEXT)
Nmltest.
$(OBJEXT)
\
Output.
$(OBJEXT)
Outputgmt.
$(OBJEXT)
Pinfo.
$(OBJEXT)
\
Pressure.
$(OBJEXT)
Regres.
$(OBJEXT)
Remap.
$(OBJEXT)
\
Remapeta.
$(OBJEXT)
Replace.
$(OBJEXT)
Rotuv.
$(OBJEXT)
\
Runpctl.
$(OBJEXT)
Runstat.
$(OBJEXT)
Seascount.
$(OBJEXT)
\
Seaspctl.
$(OBJEXT)
Seasstat.
$(OBJEXT)
Selbox.
$(OBJEXT)
\
Select.
$(OBJEXT)
Selvar.
$(OBJEXT)
Seloperator.
$(OBJEXT)
\
Selrec.
$(OBJEXT)
Seltime.
$(OBJEXT)
Set.
$(OBJEXT)
\
Setbox.
$(OBJEXT)
Setgatt.
$(OBJEXT)
Setgrid.
$(OBJEXT)
\
Sethalo.
$(OBJEXT)
Setmiss.
$(OBJEXT)
Setrange.
$(OBJEXT)
\
Setrcaname.
$(OBJEXT)
Settime.
$(OBJEXT)
Setzaxis.
$(OBJEXT)
\
Showinfo.
$(OBJEXT)
Sinfo.
$(OBJEXT)
Smooth9.
$(OBJEXT)
\
Sort.
$(OBJEXT)
Sorttimestamp.
$(OBJEXT)
Specinfo.
$(OBJEXT)
\
Spectral.
$(OBJEXT)
Spectrum.
$(OBJEXT)
Split.
$(OBJEXT)
\
Splitrec.
$(OBJEXT)
Splitsel.
$(OBJEXT)
Splittime.
$(OBJEXT)
\
Splityear.
$(OBJEXT)
Subtrend.
$(OBJEXT)
Templates.
$(OBJEXT)
\
Test.
$(OBJEXT)
Tests.
$(OBJEXT)
Timcount.
$(OBJEXT)
\
Timpctl.
$(OBJEXT)
Timsort.
$(OBJEXT)
Timselpctl.
$(OBJEXT)
\
Timselstat.
$(OBJEXT)
Timstat.
$(OBJEXT)
Timstat2.
$(OBJEXT)
\
Timstat3.
$(OBJEXT)
Tinfo.
$(OBJEXT)
Tocomplex.
$(OBJEXT)
\
Transpose.
$(OBJEXT)
Trend.
$(OBJEXT)
Trms.
$(OBJEXT)
\
Tstepcount.
$(OBJEXT)
Vardup.
$(OBJEXT)
Vargen.
$(OBJEXT)
\
Varrms.
$(OBJEXT)
Vertint.
$(OBJEXT)
Vertstat.
$(OBJEXT)
\
Vertwind.
$(OBJEXT)
Wind.
$(OBJEXT)
Writegrid.
$(OBJEXT)
\
Writerandom.
$(OBJEXT)
Yhourstat.
$(OBJEXT)
Ydaypctl.
$(OBJEXT)
\
Ydaystat.
$(OBJEXT)
Ydrunpctl.
$(OBJEXT)
Ydrunstat.
$(OBJEXT)
\
Ymonarith.
$(OBJEXT)
Ymonpctl.
$(OBJEXT)
Ymonstat.
$(OBJEXT)
\
Yseaspctl.
$(OBJEXT)
Yseasstat.
$(OBJEXT)
Zonstat.
$(OBJEXT)
\
cdilib.
$(OBJEXT)
commandline.
$(OBJEXT)
exception.
$(OBJEXT)
\
expr_yacc.
$(OBJEXT)
expr_lex.
$(OBJEXT)
expr.
$(OBJEXT)
\
cdo.
$(OBJEXT)
cdo_pthread.
$(OBJEXT)
cdo_vlist.
$(OBJEXT)
\
field.
$(OBJEXT)
fieldc.
$(OBJEXT)
field2.
$(OBJEXT)
\
fieldmer.
$(OBJEXT)
fieldzon.
$(OBJEXT)
fieldmem.
$(OBJEXT)
\
gradsdeslib.
$(OBJEXT)
grid.
$(OBJEXT)
grid_gme.
$(OBJEXT)
\
grid_lcc.
$(OBJEXT)
grid_rot.
$(OBJEXT)
griddes.
$(OBJEXT)
\
griddes_nc.
$(OBJEXT)
griddes_h5.
$(OBJEXT)
hetaeta.
$(OBJEXT)
\
history.
$(OBJEXT)
institution.
$(OBJEXT)
interpol.
$(OBJEXT)
\
job.
$(OBJEXT)
modules.
$(OBJEXT)
namelist.
$(OBJEXT)
\
normal.
$(OBJEXT)
pipe.
$(OBJEXT)
process.
$(OBJEXT)
\
remaplib.
$(OBJEXT)
timer.
$(OBJEXT)
realtime.
$(OBJEXT)
\
pstream.
$(OBJEXT)
table.
$(OBJEXT)
userlog.
$(OBJEXT)
\
util.
$(OBJEXT)
legendre.
$(OBJEXT)
fouriertrans.
$(OBJEXT)
\
specspace.
$(OBJEXT)
readline.
$(OBJEXT)
juldate.
$(OBJEXT)
\
vinterp.
$(OBJEXT)
zaxis.
$(OBJEXT)
par_io.
$(OBJEXT)
\
pthread_debug.
$(OBJEXT)
color.
$(OBJEXT)
list.
$(OBJEXT)
\
percentiles.
$(OBJEXT)
nth_element.
$(OBJEXT)
ecacore.
$(OBJEXT)
\
ecautil.
$(OBJEXT)
EcaIndices.
$(OBJEXT)
Hi.
$(OBJEXT)
\
Wct.
$(OBJEXT)
statistic.
$(OBJEXT)
cdo_OBJECTS
=
$(am_cdo_OBJECTS)
cdo_DEPENDENCIES
=
am_cdotest_OBJECTS
=
cdilib.
$(OBJEXT)
cdotest.
$(OBJEXT)
...
...
@@ -288,13 +289,14 @@ cdo_SOURCES = Arith.c \
Change.c
\
Change_e5slm.c
\
Cloudlayer.c
\
Command.c
\
Comp.c
\
Compc.c
\
Complextorect.c
\
Cond.c
\
Cond2.c
\
Condc.c
\
Consecstat.c
\
Complextorect.c
\
Copy.c
\
Deltime.c
\
Detrend.c
\
...
...
@@ -653,6 +655,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@
@am__quote@./$(DEPDIR)/Change.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@./$(DEPDIR)/Change_e5slm.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@./$(DEPDIR)/Cloudlayer.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@./$(DEPDIR)/Command.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@./$(DEPDIR)/Comp.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@./$(DEPDIR)/Compc.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@./$(DEPDIR)/Complextorect.Po@am__quote@
...
...
src/modules.c
View file @
7f1a9b52
...
...
@@ -47,12 +47,13 @@ void *CDItest(void *argument);
void
*
Change
(
void
*
argument
);
void
*
Change_e5slm
(
void
*
argument
);
void
*
Cloudlayer
(
void
*
argument
);
void
*
Command
(
void
*
argument
);
void
*
Comp
(
void
*
argument
);
void
*
Compc
(
void
*
argument
);
void
*
Complextorect
(
void
*
argument
);
void
*
Cond
(
void
*
argument
);
void
*
Cond2
(
void
*
argument
);
void
*
Condc
(
void
*
argument
);
void
*
Complextorect
(
void
*
argument
);
void
*
Consecstat
(
void
*
argument
);
void
*
Copy
(
void
*
argument
);
void
*
Deltime
(
void
*
argument
);
...
...
@@ -245,12 +246,13 @@ void *Wct(void *argument);
#define ChangeOperators {"chcode", "chtabnum", "chname", "chlevel", "chlevelc", "chlevelv", "chltype"}
#define Change_e5slmOperators {"change_e5slm", "change_e5lsm", "change_e5mask"}
#define CloudlayerOperators {"cloudlayer"}
#define CommandOperators {"command", "com", "cmd"}
#define CompOperators {"eq", "ne", "le", "lt", "ge", "gt"}
#define CompcOperators {"eqc", "nec", "lec", "ltc", "gec", "gtc"}
#define ComplextorectOperators {"complextorect"}
#define CondOperators {"ifthen", "ifnotthen"}
#define Cond2Operators {"ifthenelse"}
#define CondcOperators {"ifthenc", "ifnotthenc"}
#define ComplextorectOperators {"complextorect"}
#define ConsecstatOperators {"consects", "consecsum"}
#define CopyOperators {"copy", "selall"}
#define DeltimeOperators {"delday", "del29feb"}
...
...
@@ -479,12 +481,13 @@ static modules_t Modules[] =
{
Change
,
ChangeHelp
,
ChangeOperators
,
CDI_REAL
,
1
,
1
},
{
Change_e5slm
,
NULL
,
Change_e5slmOperators
,
CDI_REAL
,
1
,
1
},
{
Cloudlayer
,
NULL
,
CloudlayerOperators
,
CDI_REAL
,
1
,
1
},
{
Command
,
NULL
,
CommandOperators
,
CDI_REAL
,
1
,
0
},
{
Comp
,
CompHelp
,
CompOperators
,
CDI_REAL
,
2
,
1
},
{
Compc
,
CompcHelp
,
CompcOperators
,
CDI_REAL
,
1
,
1
},
{
Complextorect
,
NULL
,
ComplextorectOperators
,
CDI_COMP
,
1
,
2
},
{
Cond
,
CondHelp
,
CondOperators
,
CDI_REAL
,
2
,
1
},
{
Cond2
,
Cond2Help
,
Cond2Operators
,
CDI_REAL
,
3
,
1
},
{
Condc
,
CondcHelp
,
CondcOperators
,
CDI_REAL
,
1
,
1
},
{
Complextorect
,
NULL
,
ComplextorectOperators
,
CDI_COMP
,
1
,
2
},
{
Consecstat
,
ConsecstatHelp
,
ConsecstatOperators
,
CDI_REAL
,
1
,
1
},
{
Copy
,
CopyHelp
,
CopyOperators
,
CDI_REAL
,
-
1
,
1
},
{
Deltime
,
NULL
,
DeltimeOperators
,
CDI_REAL
,
1
,
1
},
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment