Skip to content
GitLab
Menu
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
9c0b5a46
Commit
9c0b5a46
authored
Oct 15, 2006
by
Uwe Schulzweida
Browse files
New operator: inttime2
parent
bc0f0864
Changes
6
Hide whitespace changes
Inline
Side-by-side
.gitattributes
View file @
9c0b5a46
...
...
@@ -172,6 +172,7 @@ src/Input.c -text
src/Intgrid.c -text
src/Intgridtraj.c -text
src/Inttime.c -text
src/Inttime2.c -text
src/Intyear.c -text
src/Invert.c -text
src/Makefile.am -text
...
...
ChangeLog
View file @
9c0b5a46
2006-11-?? Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* using CDI library version 1.0.3
* New operator: inttime2 [request: Michael Boettinger]
* inttime: extention for months and years [request: Holger Goettel]
* remaplib.sort_add: don't sort if num_links <= 1
* remaplib.remap_bi?: check that src_add is valid
...
...
src/Inttime2.c
0 → 100644
View file @
9c0b5a46
/*
This file is part of CDO. CDO is a collection of Operators to
manipulate and analyse Climate model Data.
Copyright (C) 2003-2006 Uwe Schulzweida, schulzweida@dkrz.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:
Inttime2 inttime2 Time interpolation
*/
#include
<string.h>
#include
<ctype.h>
/* isdigit */
#include
"cdi.h"
#include
"cdo.h"
#include
"cdo_int.h"
#include
"pstream.h"
#include
"interpol.h"
void
*
Inttime2
(
void
*
argument
)
{
static
char
func
[]
=
"Inttime2"
;
int
streamID1
,
streamID2
;
int
nrecs
,
nvars
,
nlevel
;
int
i
,
nrecords
;
int
tsID
,
tsIDo
,
recID
,
varID
,
levelID
;
int
gridsize
;
int
vlistID1
,
vlistID2
;
int
taxisID1
,
taxisID2
;
int
vdate
,
vtime
;
int
vdate1
,
vtime1
;
int
vdate2
,
vtime2
;
int
offset
;
int
dpy
,
calendar
;
int
numts
,
it
;
int
year
,
month
,
day
,
hour
,
minute
;
int
*
recVarID
,
*
recLevelID
;
int
**
nmiss1
,
**
nmiss2
,
nmiss3
;
double
missval1
,
missval2
;
double
julval1
,
julval2
,
julval
;
double
fac1
,
fac2
;
double
*
array
,
*
single1
,
*
single2
;
double
**
vardata1
,
**
vardata2
,
*
vardatap
;
cdoInitialize
(
argument
);
operatorInputArg
(
"number of timesteps between 2 timesteps"
);
if
(
operatorArgc
()
<
1
)
cdoAbort
(
"Not enough arguments!"
);
numts
=
atoi
(
operatorArgv
()[
0
]);
if
(
numts
<
2
)
cdoAbort
(
"parameter must be greater than 1!"
);
streamID1
=
streamOpenRead
(
cdoStreamName
(
0
));
if
(
streamID1
<
0
)
cdiError
(
streamID1
,
"Open failed on %s"
,
cdoStreamName
(
0
));
vlistID1
=
streamInqVlist
(
streamID1
);
vlistID2
=
vlistDuplicate
(
vlistID1
);
nvars
=
vlistNvars
(
vlistID1
);
nrecords
=
vlistNrecs
(
vlistID1
);
recVarID
=
(
int
*
)
malloc
(
nrecords
*
sizeof
(
int
));
recLevelID
=
(
int
*
)
malloc
(
nrecords
*
sizeof
(
int
));
gridsize
=
vlistGridsizeMax
(
vlistID1
);
array
=
(
double
*
)
malloc
(
gridsize
*
sizeof
(
double
));
nmiss1
=
(
int
**
)
malloc
(
nvars
*
sizeof
(
int
*
));
nmiss2
=
(
int
**
)
malloc
(
nvars
*
sizeof
(
int
*
));
vardata1
=
(
double
**
)
malloc
(
nvars
*
sizeof
(
double
*
));
vardata2
=
(
double
**
)
malloc
(
nvars
*
sizeof
(
double
*
));
for
(
varID
=
0
;
varID
<
nvars
;
varID
++
)
{
gridsize
=
gridInqSize
(
vlistInqVarGrid
(
vlistID1
,
varID
));
nlevel
=
zaxisInqSize
(
vlistInqVarZaxis
(
vlistID1
,
varID
));
nmiss1
[
varID
]
=
(
int
*
)
malloc
(
nlevel
*
sizeof
(
int
));
nmiss2
[
varID
]
=
(
int
*
)
malloc
(
nlevel
*
sizeof
(
int
));
vardata1
[
varID
]
=
(
double
*
)
malloc
(
gridsize
*
nlevel
*
sizeof
(
double
));
vardata2
[
varID
]
=
(
double
*
)
malloc
(
gridsize
*
nlevel
*
sizeof
(
double
));
}
taxisID1
=
vlistInqTaxis
(
vlistID1
);
taxisID2
=
taxisDuplicate
(
taxisID1
);
vlistDefTaxis
(
vlistID2
,
taxisID2
);
streamID2
=
streamOpenWrite
(
cdoStreamName
(
1
),
cdoFiletype
());
if
(
streamID2
<
0
)
cdiError
(
streamID2
,
"Open failed on %s"
,
cdoStreamName
(
1
));
streamDefVlist
(
streamID2
,
vlistID2
);
calendar
=
taxisInqCalendar
(
taxisID1
);
dpy
=
calendar_dpy
(
calendar
);
tsID
=
0
;
tsIDo
=
0
;
nrecs
=
streamInqTimestep
(
streamID1
,
tsID
++
);
vdate1
=
taxisInqVdate
(
taxisID1
);
vtime1
=
taxisInqVtime
(
taxisID1
);
julval1
=
encode_julval
(
dpy
,
vdate1
,
vtime1
);
taxisCopyTimestep
(
taxisID2
,
taxisID1
);
streamDefTimestep
(
streamID2
,
tsIDo
++
);
for
(
recID
=
0
;
recID
<
nrecs
;
recID
++
)
{
streamInqRecord
(
streamID1
,
&
varID
,
&
levelID
);
gridsize
=
gridInqSize
(
vlistInqVarGrid
(
vlistID1
,
varID
));
offset
=
gridsize
*
levelID
;
single1
=
vardata1
[
varID
]
+
offset
;
streamReadRecord
(
streamID1
,
single1
,
&
nmiss1
[
varID
][
levelID
]);
streamDefRecord
(
streamID2
,
varID
,
levelID
);
streamWriteRecord
(
streamID2
,
single1
,
nmiss1
[
varID
][
levelID
]);
}
while
(
(
nrecs
=
streamInqTimestep
(
streamID1
,
tsID
++
))
)
{
vdate2
=
taxisInqVdate
(
taxisID1
);
vtime2
=
taxisInqVtime
(
taxisID1
);
julval2
=
encode_julval
(
dpy
,
vdate2
,
vtime2
);
for
(
recID
=
0
;
recID
<
nrecs
;
recID
++
)
{
streamInqRecord
(
streamID1
,
&
varID
,
&
levelID
);
recVarID
[
recID
]
=
varID
;
recLevelID
[
recID
]
=
levelID
;
gridsize
=
gridInqSize
(
vlistInqVarGrid
(
vlistID1
,
varID
));
offset
=
gridsize
*
levelID
;
single2
=
vardata2
[
varID
]
+
offset
;
streamReadRecord
(
streamID1
,
single2
,
&
nmiss2
[
varID
][
levelID
]);
}
for
(
it
=
1
;
it
<
numts
;
it
++
)
{
julval
=
julval1
+
it
*
(
julval2
-
julval1
)
/
numts
;
decode_julval
(
dpy
,
julval
,
&
vdate
,
&
vtime
);
if
(
cdoVerbose
)
{
/*
cdoPrint("julval1 %f", julval1);
cdoPrint("julval %f", julval);
cdoPrint("julval2 %f", julval2);
*/
decode_date
(
vdate
,
&
year
,
&
month
,
&
day
);
decode_time
(
vtime
,
&
hour
,
&
minute
);
cdoPrint
(
"%4.4d-%2.2d-%2.2d %2.2d:%2.2d"
,
year
,
month
,
day
,
hour
,
minute
);
}
taxisDefVdate
(
taxisID2
,
vdate
);
taxisDefVtime
(
taxisID2
,
vtime
);
streamDefTimestep
(
streamID2
,
tsIDo
++
);
fac1
=
(
julval2
-
julval
)
/
(
julval2
-
julval1
);
fac2
=
(
julval
-
julval1
)
/
(
julval2
-
julval1
);
for
(
recID
=
0
;
recID
<
nrecs
;
recID
++
)
{
varID
=
recVarID
[
recID
];
levelID
=
recLevelID
[
recID
];
gridsize
=
gridInqSize
(
vlistInqVarGrid
(
vlistID1
,
varID
));
offset
=
gridsize
*
levelID
;
single1
=
vardata1
[
varID
]
+
offset
;
single2
=
vardata2
[
varID
]
+
offset
;
nmiss3
=
0
;
if
(
nmiss1
[
varID
][
levelID
]
>
0
||
nmiss2
[
varID
][
levelID
]
>
0
)
{
missval1
=
vlistInqVarMissval
(
vlistID1
,
varID
);
missval2
=
vlistInqVarMissval
(
vlistID2
,
varID
);
for
(
i
=
0
;
i
<
gridsize
;
i
++
)
{
if
(
!
DBL_IS_EQUAL
(
single1
[
i
],
missval1
)
&&
!
DBL_IS_EQUAL
(
single2
[
i
],
missval2
)
)
array
[
i
]
=
single1
[
i
]
*
fac1
+
single2
[
i
]
*
fac2
;
else
if
(
DBL_IS_EQUAL
(
single1
[
i
],
missval1
)
&&
!
DBL_IS_EQUAL
(
single2
[
i
],
missval2
)
&&
fac2
>=
0
.
5
)
array
[
i
]
=
single2
[
i
];
else
if
(
DBL_IS_EQUAL
(
single2
[
i
],
missval2
)
&&
!
DBL_IS_EQUAL
(
single1
[
i
],
missval1
)
&&
fac1
>=
0
.
5
)
array
[
i
]
=
single1
[
i
];
else
{
array
[
i
]
=
missval1
;
nmiss3
++
;
}
}
}
else
{
for
(
i
=
0
;
i
<
gridsize
;
i
++
)
array
[
i
]
=
single1
[
i
]
*
fac1
+
single2
[
i
]
*
fac2
;
}
streamDefRecord
(
streamID2
,
varID
,
levelID
);
streamWriteRecord
(
streamID2
,
array
,
nmiss3
);
}
}
taxisDefVdate
(
taxisID2
,
vdate2
);
taxisDefVtime
(
taxisID2
,
vtime2
);
streamDefTimestep
(
streamID2
,
tsIDo
++
);
for
(
recID
=
0
;
recID
<
nrecs
;
recID
++
)
{
varID
=
recVarID
[
recID
];
levelID
=
recLevelID
[
recID
];
gridsize
=
gridInqSize
(
vlistInqVarGrid
(
vlistID2
,
varID
));
offset
=
gridsize
*
levelID
;
single2
=
vardata2
[
varID
]
+
offset
;
streamDefRecord
(
streamID2
,
varID
,
levelID
);
streamWriteRecord
(
streamID2
,
single2
,
nmiss2
[
varID
][
levelID
]);
}
for
(
varID
=
0
;
varID
<
nvars
;
varID
++
)
{
vardatap
=
vardata1
[
varID
];
vardata1
[
varID
]
=
vardata2
[
varID
];
vardata2
[
varID
]
=
vardatap
;
}
vdate1
=
vdate2
;
vtime1
=
vtime2
;
julval1
=
julval2
;
}
for
(
varID
=
0
;
varID
<
nvars
;
varID
++
)
{
free
(
nmiss1
[
varID
]);
free
(
nmiss2
[
varID
]);
free
(
vardata1
[
varID
]);
free
(
vardata2
[
varID
]);
}
free
(
nmiss1
);
free
(
nmiss2
);
free
(
vardata1
);
free
(
vardata2
);
if
(
array
)
free
(
array
);
streamClose
(
streamID2
);
streamClose
(
streamID1
);
cdoFinish
();
return
(
0
);
}
src/Makefile.am
View file @
9c0b5a46
...
...
@@ -31,6 +31,7 @@ cdo_SOURCES = Arith.c \
Intgrid.c
\
Intgridtraj.c
\
Inttime.c
\
Inttime2.c
\
Intyear.c
\
Invert.c
\
Maskbox.c
\
...
...
src/Makefile.in
View file @
9c0b5a46
...
...
@@ -111,6 +111,7 @@ cdo_SOURCES = Arith.c \
Intgrid.c
\
Intgridtraj.c
\
Inttime.c
\
Inttime2.c
\
Intyear.c
\
Invert.c
\
Maskbox.c
\
...
...
@@ -239,6 +240,7 @@ cdo_SOURCES = Arith.c \
vinterp.h
\
namelist.h
\
util.h
\
etopo.h
\
cdi.h
#
...
...
@@ -261,41 +263,41 @@ am_cdo_OBJECTS = Arith.$(OBJEXT) Arithc.$(OBJEXT) Arithdays.$(OBJEXT) \
Fldrms.
$(OBJEXT)
Fldstat.
$(OBJEXT)
Gradsdes.
$(OBJEXT)
\
Histogram.
$(OBJEXT)
Info.
$(OBJEXT)
Input.
$(OBJEXT)
\
Intgrid.
$(OBJEXT)
Intgridtraj.
$(OBJEXT)
Inttime.
$(OBJEXT)
\
Intyear.
$(OBJEXT)
Invert.
$(OBJEXT)
Maskbox.
$(OBJEXT)
\
Mastrfu.
$(OBJEXT)
Math.
$(OBJEXT)
Merge.
$(OBJEXT)
\
Mergegrid.
$(OBJEXT)
Mergetime.
$(OBJEXT)
Merstat.
$(OBJEXT)
\
Ninfo.
$(OBJEXT)
Nmltest.
$(OBJEXT)
Output.
$(OBJEXT)
\
Outputgmt.
$(OBJEXT)
Pinfo.
$(OBJEXT)
Remap.
$(OBJEXT)
\
Replace.
$(OBJEXT)
Rotuv.
$(OBJEXT)
Runstat.
$(OBJEXT)
\
Seasstat.
$(OBJEXT)
Selbox.
$(OBJEXT)
Select.
$(OBJEXT)
\
Seloperator.
$(OBJEXT)
Selrec.
$(OBJEXT)
Selstat.
$(OBJEXT)
\
Seltime.
$(OBJEXT)
Set.
$(OBJEXT)
Setbox.
$(OBJEXT)
\
Setgatt.
$(OBJEXT)
Setgrid.
$(OBJEXT)
Sethalo.
$(OBJEXT)
\
Setmiss.
$(OBJEXT)
Setrcaname.
$(OBJEXT)
Settime.
$(OBJEXT)
\
Setzaxis.
$(OBJEXT)
Showinfo.
$(OBJEXT)
Sinfo.
$(OBJEXT)
\
Sort.
$(OBJEXT)
Specinfo.
$(OBJEXT)
Spectral.
$(OBJEXT)
\
Split.
$(OBJEXT)
Splitrec.
$(OBJEXT)
Splittime.
$(OBJEXT)
\
Splityear.
$(OBJEXT)
Subtrend.
$(OBJEXT)
Templates.
$(OBJEXT)
\
Tes
t
.
$(OBJEXT)
T
imsor
t.
$(OBJEXT)
Tims
ta
t.
$(OBJEXT)
\
Trend.
$(OBJEXT)
Trms.
$(OBJEXT)
Vardup.
$(OBJEXT)
\
Vargen.
$(OBJEXT)
Varrms.
$(OBJEXT)
Vertint.
$(OBJEXT)
\
Vert
sta
t.
$(OBJEXT)
Wind
.
$(OBJEXT)
W
ritegr
id.
$(OBJEXT)
\
Writerandom.
$(OBJEXT)
Ydaystat.
$(OBJEXT)
Ymonarith.
$(OBJEXT)
\
Ymonstat.
$(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)
grid.
$(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)
fourier.
$(OBJEXT)
\
specspace.
$(OBJEXT)
readline.
$(OBJEXT)
julian.
$(OBJEXT)
\
vinterp
.
$(OBJEXT)
zaxis
.
$(OBJEXT)
pthread_debug
.
$(OBJEXT)
\
color.
$(OBJEXT)
list.
$(OBJEXT)
Inttime2.
$(OBJEXT)
Intyear.
$(OBJEXT)
Invert.
$(OBJEXT)
\
Maskbox.
$(OBJEXT)
Mastrfu.
$(OBJEXT)
Math.
$(OBJEXT)
\
Merge.
$(OBJEXT)
Mergegrid.
$(OBJEXT)
Mergetime.
$(OBJEXT)
\
Merstat.
$(OBJEXT)
Ninfo.
$(OBJEXT)
Nmltest.
$(OBJEXT)
\
Output.
$(OBJEXT)
Outputgmt.
$(OBJEXT)
Pinfo.
$(OBJEXT)
\
Remap.
$(OBJEXT)
Replace.
$(OBJEXT)
Rotuv.
$(OBJEXT)
\
Runstat.
$(OBJEXT)
Seasstat.
$(OBJEXT)
Selbox.
$(OBJEXT)
\
Select.
$(OBJEXT)
Seloperator.
$(OBJEXT)
Selrec.
$(OBJEXT)
\
Selstat.
$(OBJEXT)
Seltime.
$(OBJEXT)
Set.
$(OBJEXT)
\
Setbox.
$(OBJEXT)
Setgatt.
$(OBJEXT)
Setgrid.
$(OBJEXT)
\
Sethalo.
$(OBJEXT)
Setmiss.
$(OBJEXT)
Setrcaname.
$(OBJEXT)
\
Settime.
$(OBJEXT)
Setzaxis.
$(OBJEXT)
Showinfo.
$(OBJEXT)
\
Sinfo.
$(OBJEXT)
Sort.
$(OBJEXT)
Specinfo.
$(OBJEXT)
\
Spectral.
$(OBJEXT)
Split.
$(OBJEXT)
Splitrec.
$(OBJEXT)
\
Splittime.
$(OBJEXT)
Splityear.
$(OBJEXT)
Subtrend.
$(OBJEXT)
\
Te
mplate
s.
$(OBJEXT)
T
es
t.
$(OBJEXT)
Tims
or
t.
$(OBJEXT)
\
Timstat.
$(OBJEXT)
Trend.
$(OBJEXT)
Trms.
$(OBJEXT)
\
Vardup.
$(OBJEXT)
Vargen.
$(OBJEXT)
Varrms.
$(OBJEXT)
\
Vert
in
t.
$(OBJEXT)
Vertstat
.
$(OBJEXT)
Wi
n
d.
$(OBJEXT)
\
Writegrid.
$(OBJEXT)
Writerandom.
$(OBJEXT)
Ydaystat.
$(OBJEXT)
\
Ymonarith.
$(OBJEXT)
Ymonstat.
$(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)
\
grid.
$(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)
\
fourier.
$(OBJEXT)
specspace.
$(OBJEXT)
readline.
$(OBJEXT)
\
julian
.
$(OBJEXT)
vinterp
.
$(OBJEXT)
zaxis
.
$(OBJEXT)
\
pthread_debug.
$(OBJEXT)
color.
$(OBJEXT)
list.
$(OBJEXT)
cdo_OBJECTS
=
$(am_cdo_OBJECTS)
cdo_DEPENDENCIES
=
cdo_LDFLAGS
=
...
...
@@ -320,54 +322,54 @@ am__depfiles_maybe = depfiles
@AMDEP_TRUE@ ./
$(DEPDIR)
/Gradsdes.Po ./
$(DEPDIR)
/Histogram.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Info.Po ./
$(DEPDIR)
/Input.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Intgrid.Po ./
$(DEPDIR)
/Intgridtraj.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Inttime.Po ./
$(DEPDIR)
/Int
year
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/In
vert
.Po ./
$(DEPDIR)
/
Maskbox
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Mas
trfu
.Po ./
$(DEPDIR)
/Ma
th
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/M
erge
.Po ./
$(DEPDIR)
/Merge
grid
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Merge
time
.Po ./
$(DEPDIR)
/Mer
stat
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
Ninfo
.Po ./
$(DEPDIR)
/N
mltest
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
Outpu
t.Po ./
$(DEPDIR)
/Output
gmt
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
Pinfo
.Po ./
$(DEPDIR)
/
Remap
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Re
place
.Po ./
$(DEPDIR)
/R
otuv
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/R
unstat
.Po ./
$(DEPDIR)
/
Seas
stat.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Se
lbox
.Po ./
$(DEPDIR)
/Sel
ect
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Sel
operator
.Po ./
$(DEPDIR)
/Sel
rec
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Sel
stat
.Po ./
$(DEPDIR)
/Sel
time
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Se
t
.Po ./
$(DEPDIR)
/Set
box
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Set
gatt
.Po ./
$(DEPDIR)
/Setg
rid
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Set
halo
.Po ./
$(DEPDIR)
/Set
miss
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Set
rcaname
.Po ./
$(DEPDIR)
/Set
ti
me.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Set
zaxis
.Po ./
$(DEPDIR)
/S
howinfo
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Sinfo.Po ./
$(DEPDIR)
/S
ort
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/S
pecinfo
.Po ./
$(DEPDIR)
/Spec
tral
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Sp
lit
.Po ./
$(DEPDIR)
/Split
rec
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Split
time
.Po ./
$(DEPDIR)
/Split
year
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/S
ubtrend
.Po ./
$(DEPDIR)
/
Templates
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Tes
t
.Po ./
$(DEPDIR)
/T
imsor
t.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Tims
ta
t.Po ./
$(DEPDIR)
/T
rend
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Tr
ms
.Po ./
$(DEPDIR)
/
Vardup
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Var
gen
.Po ./
$(DEPDIR)
/Var
rms
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/V
ertint
.Po ./
$(DEPDIR)
/Vert
sta
t.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
Wind
.Po ./
$(DEPDIR)
/W
ritegr
id.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Write
random
.Po ./
$(DEPDIR)
/
Ydaystat
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Y
monarith
.Po ./
$(DEPDIR)
/Ymon
stat
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Y
seas
stat.Po ./
$(DEPDIR)
/
Zon
stat.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
cdilib
.Po ./
$(DEPDIR)
/cd
o
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/cdo
_pthread
.Po ./
$(DEPDIR)
/cdo_
vlist
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/c
olor
.Po ./
$(DEPDIR)
/co
mmandline
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
exception
.Po ./
$(DEPDIR)
/ex
pr
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/expr
_lex
.Po ./
$(DEPDIR)
/expr_
yacc
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
field
.Po ./
$(DEPDIR)
/field
2
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/field
c
.Po ./
$(DEPDIR)
/field
mer
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/field
zon
.Po ./
$(DEPDIR)
/f
ourier
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
grid
.Po ./
$(DEPDIR)
/
history
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
institution
.Po ./
$(DEPDIR)
/in
terpol
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
job
.Po ./
$(DEPDIR)
/j
ulian
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
legendre
.Po ./
$(DEPDIR)
/l
ist
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
modules
.Po ./
$(DEPDIR)
/
namelist
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/n
ormal
.Po ./
$(DEPDIR)
/
pipe
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/p
rocess
.Po ./
$(DEPDIR)
/p
stream
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/pthread_debug.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Inttime.Po ./
$(DEPDIR)
/Int
time2
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/In
tyear
.Po ./
$(DEPDIR)
/
Invert
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Mas
kbox
.Po ./
$(DEPDIR)
/Ma
strfu
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/M
ath
.Po ./
$(DEPDIR)
/Merge.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Merge
grid
.Po ./
$(DEPDIR)
/Mer
getime
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
Merstat
.Po ./
$(DEPDIR)
/N
info
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
Nmltes
t.Po ./
$(DEPDIR)
/Output.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
Outputgmt
.Po ./
$(DEPDIR)
/
Pinfo
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Re
map
.Po ./
$(DEPDIR)
/R
eplace
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/R
otuv
.Po ./
$(DEPDIR)
/
Run
stat.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Se
asstat
.Po ./
$(DEPDIR)
/Sel
box
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Sel
ect
.Po ./
$(DEPDIR)
/Sel
operator
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Sel
rec
.Po ./
$(DEPDIR)
/Sel
stat
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Se
ltime
.Po ./
$(DEPDIR)
/Set.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Set
box
.Po ./
$(DEPDIR)
/Setg
att
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Set
grid
.Po ./
$(DEPDIR)
/Set
halo
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Set
miss
.Po ./
$(DEPDIR)
/Set
rcana
me.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Set
time
.Po ./
$(DEPDIR)
/S
etzaxis
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/S
how
info.Po ./
$(DEPDIR)
/S
info
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/S
ort
.Po ./
$(DEPDIR)
/Spec
info
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Sp
ectral
.Po ./
$(DEPDIR)
/Split.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Split
rec
.Po ./
$(DEPDIR)
/Split
time
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/S
plityear
.Po ./
$(DEPDIR)
/
Subtrend
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Te
mplate
s.Po ./
$(DEPDIR)
/T
es
t.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Tims
or
t.Po ./
$(DEPDIR)
/T
imstat
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Tr
end
.Po ./
$(DEPDIR)
/
Trms
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Var
dup
.Po ./
$(DEPDIR)
/Var
gen
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/V
arrms
.Po ./
$(DEPDIR)
/Vert
in
t.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
Vertstat
.Po ./
$(DEPDIR)
/Wi
n
d.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Write
grid
.Po ./
$(DEPDIR)
/
Writerandom
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Y
daystat
.Po ./
$(DEPDIR)
/Ymon
arith
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/Y
mon
stat.Po ./
$(DEPDIR)
/
Yseas
stat.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
Zonstat
.Po ./
$(DEPDIR)
/cd
ilib
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/cdo.Po ./
$(DEPDIR)
/cdo_
pthread
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/c
do_vlist
.Po ./
$(DEPDIR)
/co
lor
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
commandline
.Po ./
$(DEPDIR)
/ex
ception
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/expr.Po ./
$(DEPDIR)
/expr_
lex
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
expr_yacc
.Po ./
$(DEPDIR)
/field.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/field
2
.Po ./
$(DEPDIR)
/field
c
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/field
mer
.Po ./
$(DEPDIR)
/f
ieldzon
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
fourier
.Po ./
$(DEPDIR)
/
grid
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
history
.Po ./
$(DEPDIR)
/in
stitution
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
interpol
.Po ./
$(DEPDIR)
/j
ob
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
julian
.Po ./
$(DEPDIR)
/l
egendre
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/
list
.Po ./
$(DEPDIR)
/
modules
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/n
amelist
.Po ./
$(DEPDIR)
/
normal
.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/p
ipe
.Po ./
$(DEPDIR)
/p
rocess
.Po
\
@AMDEP_TRUE@
./
$(DEPDIR)
/pstream.Po
./
$(DEPDIR)
/pthread_debug.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/readline.Po ./
$(DEPDIR)
/realtime.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/remaplib.Po ./
$(DEPDIR)
/specspace.Po
\
@AMDEP_TRUE@ ./
$(DEPDIR)
/table.Po ./
$(DEPDIR)
/timer.Po
\
...
...
@@ -472,6 +474,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@
@am__quote@./$(DEPDIR)/Intgrid.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@./$(DEPDIR)/Intgridtraj.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@./$(DEPDIR)/Inttime.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@./$(DEPDIR)/Inttime2.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@./$(DEPDIR)/Intyear.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@./$(DEPDIR)/Invert.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@./$(DEPDIR)/Maskbox.Po@am__quote@
...
...
src/modules.c
View file @
9c0b5a46
...
...
@@ -65,6 +65,7 @@ void *Input(void *argument);
void
*
Intgrid
(
void
*
argument
);
void
*
Intgridtraj
(
void
*
argument
);
void
*
Inttime
(
void
*
argument
);
void
*
Inttime2
(
void
*
argument
);
void
*
Intyear
(
void
*
argument
);
void
*
Invert
(
void
*
argument
);
void
*
Maskbox
(
void
*
argument
);
...
...
@@ -161,6 +162,7 @@ void *Zonstat(void *argument);
#define IntgridOperators {"intgridbil", "intpoint", "interpolate", "intarea"}
#define IntgridtrajOperators {"intgridtraj"}
#define InttimeOperators {"inttime"}
#define Inttime2Operators {"inttime2"}
#define IntyearOperators {"intyear"}
#define InvertOperators {"invertlat", "invertlon", "invertlatdes", "invertlondes", \
"invertlatdata", "invertlondata"}
...
...
@@ -273,6 +275,7 @@ static MODULES Modules[] =
{
Intgrid
,
IntgridHelp
,
IntgridOperators
,
1
,
1
},
{
Intgridtraj
,
NULL
,
IntgridtrajOperators
,
1
,
1
},
{
Inttime
,
InttimeHelp
,
InttimeOperators
,
1
,
1
},
{
Inttime2
,
NULL
,
Inttime2Operators
,
1
,
1
},
{
Intyear
,
IntyearHelp
,
IntyearOperators
,
2
,
1
},
{
Invert
,
InvertHelp
,
InvertOperators
,
1
,
1
},
{
Maskbox
,
MaskboxHelp
,
MaskboxOperators
,
1
,
1
},
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a 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