Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
mpim-sw
cdo
Commits
b1e554ad
Commit
b1e554ad
authored
Jan 11, 2018
by
Uwe Schulzweida
Browse files
Replace recVarID by recinfo.
parent
2a3c0180
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/Runpctl.cc
View file @
b1e554ad
...
...
@@ -59,10 +59,9 @@ void *Runpctl(void *argument)
pstreamDefVlist
(
streamID2
,
vlistID2
);
int
nvars
=
vlistNvars
(
vlistID1
);
int
nrecords
=
vlistNrecs
(
vlistID1
);
int
*
recVarID
=
(
int
*
)
Malloc
(
nrecords
*
sizeof
(
int
)
);
int
*
recLevelID
=
(
int
*
)
Malloc
(
nrecords
*
sizeof
(
int
)
);
int
maxrecs
=
vlistNrecs
(
vlistID1
);
std
::
vector
<
recinfo_type
>
recinfo
(
maxrecs
);
dtlist_type
*
dtlist
=
dtlist_new
();
dtlist_set_stat
(
dtlist
,
timestat_date
);
...
...
@@ -88,8 +87,9 @@ void *Runpctl(void *argument)
if
(
tsID
==
0
)
{
recVarID
[
recID
]
=
varID
;
recLevelID
[
recID
]
=
levelID
;
recinfo
[
recID
].
varID
=
varID
;
recinfo
[
recID
].
levelID
=
levelID
;
recinfo
[
recID
].
lconst
=
vlistInqVarTimetype
(
vlistID1
,
varID
)
==
TIME_CONSTANT
;
}
pstreamReadRecord
(
streamID1
,
vars1
[
tsID
][
varID
][
levelID
].
ptr
,
&
nmiss
);
...
...
@@ -105,8 +105,8 @@ void *Runpctl(void *argument)
if
(
vlistInqVarTimetype
(
vlistID1
,
varID
)
==
TIME_CONSTANT
)
continue
;
int
gridsize
=
gridInqSize
(
vlistInqVarGrid
(
vlistID1
,
varID
));
double
missval
=
vlistInqVar
Missval
(
vlistID1
,
varID
);
int
nlevels
=
zaxisInqSize
(
vlistInqVar
Zaxis
(
vlistID1
,
varID
)
)
;
int
nlevels
=
zaxisInqSize
(
vlistInqVar
Zaxis
(
vlistID1
,
varID
)
)
;
double
missval
=
vlistInqVar
Missval
(
vlistID1
,
varID
);
for
(
levelID
=
0
;
levelID
<
nlevels
;
levelID
++
)
{
...
...
@@ -137,12 +137,12 @@ void *Runpctl(void *argument)
dtlist_stat_taxisDefTimestep
(
dtlist
,
taxisID2
,
ndates
);
pstreamDefTimestep
(
streamID2
,
otsID
);
for
(
int
recID
=
0
;
recID
<
nrecord
s
;
recID
++
)
for
(
int
recID
=
0
;
recID
<
maxrec
s
;
recID
++
)
{
varID
=
recVarID
[
recID
];
levelID
=
recLevelID
[
recID
];
if
(
otsID
&&
recinfo
[
recID
].
lconst
)
continue
;
if
(
otsID
&&
vlistInqVarTimetype
(
vlistID1
,
varID
)
==
TIME_CONSTANT
)
continue
;
int
varID
=
recinfo
[
recID
].
varID
;
int
levelID
=
recinfo
[
recID
].
levelID
;
pstreamDefRecord
(
streamID2
,
varID
,
levelID
);
pstreamWriteRecord
(
streamID2
,
vars1
[
0
][
varID
][
levelID
].
ptr
,
vars1
[
0
][
varID
][
levelID
].
nmiss
);
...
...
@@ -175,9 +175,6 @@ void *Runpctl(void *argument)
Free
(
vars1
);
Free
(
array
);
if
(
recVarID
)
Free
(
recVarID
);
if
(
recLevelID
)
Free
(
recLevelID
);
dtlist_delete
(
dtlist
);
...
...
src/Runstat.cc
View file @
b1e554ad
...
...
@@ -41,7 +41,7 @@ void *Runstat(void *argument)
int
varID
;
int
levelID
;
size_t
nmiss
;
int
runstat_nomiss
=
0
;
bool
runstat_nomiss
=
false
;
cdoInitialize
(
argument
);
...
...
@@ -50,7 +50,7 @@ void *Runstat(void *argument)
{
char
*
endptr
;
int
envval
=
(
int
)
strtol
(
envstr
,
&
endptr
,
10
);
if
(
envval
==
1
)
runstat_nomiss
=
1
;
if
(
envval
==
1
)
runstat_nomiss
=
true
;
}
// clang-format off
...
...
@@ -277,18 +277,14 @@ void *Runstat(void *argument)
dtlist_shift
(
dtlist
);
vars1
[
ndates
]
=
vars1
[
0
];
if
(
!
runstat_nomiss
)
samp1
[
ndates
]
=
samp1
[
0
];
if
(
lvarstd
||
lrange
)
vars2
[
ndates
]
=
vars2
[
0
];
if
(
!
runstat_nomiss
)
samp1
[
ndates
]
=
samp1
[
0
];
if
(
lvarstd
||
lrange
)
vars2
[
ndates
]
=
vars2
[
0
];
for
(
int
inp
=
0
;
inp
<
ndates
;
inp
++
)
{
vars1
[
inp
]
=
vars1
[
inp
+
1
];
if
(
!
runstat_nomiss
)
samp1
[
inp
]
=
samp1
[
inp
+
1
];
if
(
lvarstd
||
lrange
)
vars2
[
inp
]
=
vars2
[
inp
+
1
];
if
(
!
runstat_nomiss
)
samp1
[
inp
]
=
samp1
[
inp
+
1
];
if
(
lvarstd
||
lrange
)
vars2
[
inp
]
=
vars2
[
inp
+
1
];
}
int
nrecs
=
pstreamInqTimestep
(
streamID1
,
tsID
);
...
...
Write
Preview
Markdown
is supported
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