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
52796f5a
Commit
52796f5a
authored
Apr 16, 2017
by
Uwe Schulzweida
Browse files
Renamed fldstd() to fldstdw() and fldvar() to fldvarw().
parent
ac753d03
Changes
9
Hide whitespace changes
Inline
Side-by-side
src/Ensstat.c
View file @
52796f5a
...
...
@@ -56,10 +56,10 @@ void *Ensstat(void *argument)
cdoOperatorAdd
(
"enssum"
,
func_sum
,
0
,
NULL
);
cdoOperatorAdd
(
"ensmean"
,
func_mean
,
0
,
NULL
);
cdoOperatorAdd
(
"ensavg"
,
func_avg
,
0
,
NULL
);
cdoOperatorAdd
(
"ensstd"
,
func_std
,
0
,
NULL
);
cdoOperatorAdd
(
"ensstd1"
,
func_std1
,
0
,
NULL
);
cdoOperatorAdd
(
"ensvar"
,
func_var
,
0
,
NULL
);
cdoOperatorAdd
(
"ensvar1"
,
func_var1
,
0
,
NULL
);
cdoOperatorAdd
(
"ensstd"
,
func_std
w
,
0
,
NULL
);
cdoOperatorAdd
(
"ensstd1"
,
func_std1
w
,
0
,
NULL
);
cdoOperatorAdd
(
"ensvar"
,
func_var
w
,
0
,
NULL
);
cdoOperatorAdd
(
"ensvar1"
,
func_var1
w
,
0
,
NULL
);
cdoOperatorAdd
(
"enspctl"
,
func_pctl
,
0
,
NULL
);
int
operatorID
=
cdoOperatorID
();
...
...
src/Fldstat.c
View file @
52796f5a
...
...
@@ -100,10 +100,10 @@ void *Fldstat(void *argument)
cdoOperatorAdd
(
"fldsum"
,
func_sum
,
0
,
NULL
);
cdoOperatorAdd
(
"fldmean"
,
func_meanw
,
1
,
NULL
);
cdoOperatorAdd
(
"fldavg"
,
func_avgw
,
1
,
NULL
);
cdoOperatorAdd
(
"fldstd"
,
func_std
,
1
,
NULL
);
cdoOperatorAdd
(
"fldstd1"
,
func_std1
,
1
,
NULL
);
cdoOperatorAdd
(
"fldvar"
,
func_var
,
1
,
NULL
);
cdoOperatorAdd
(
"fldvar1"
,
func_var1
,
1
,
NULL
);
cdoOperatorAdd
(
"fldstd"
,
func_std
w
,
1
,
NULL
);
cdoOperatorAdd
(
"fldstd1"
,
func_std1
w
,
1
,
NULL
);
cdoOperatorAdd
(
"fldvar"
,
func_var
w
,
1
,
NULL
);
cdoOperatorAdd
(
"fldvar1"
,
func_var1
w
,
1
,
NULL
);
cdoOperatorAdd
(
"fldpctl"
,
func_pctl
,
0
,
NULL
);
int
operatorID
=
cdoOperatorID
();
...
...
src/Gridboxstat.c
View file @
52796f5a
...
...
@@ -556,10 +556,10 @@ void *Gridboxstat(void *argument)
cdoOperatorAdd
(
"gridboxsum"
,
func_sum
,
0
,
NULL
);
cdoOperatorAdd
(
"gridboxmean"
,
func_meanw
,
1
,
NULL
);
cdoOperatorAdd
(
"gridboxavg"
,
func_avgw
,
1
,
NULL
);
cdoOperatorAdd
(
"gridboxvar"
,
func_var
,
1
,
NULL
);
cdoOperatorAdd
(
"gridboxvar1"
,
func_var1
,
1
,
NULL
);
cdoOperatorAdd
(
"gridboxstd"
,
func_std
,
1
,
NULL
);
cdoOperatorAdd
(
"gridboxstd1"
,
func_std1
,
1
,
NULL
);
cdoOperatorAdd
(
"gridboxvar"
,
func_var
w
,
1
,
NULL
);
cdoOperatorAdd
(
"gridboxvar1"
,
func_var1
w
,
1
,
NULL
);
cdoOperatorAdd
(
"gridboxstd"
,
func_std
w
,
1
,
NULL
);
cdoOperatorAdd
(
"gridboxstd1"
,
func_std1
w
,
1
,
NULL
);
int
operatorID
=
cdoOperatorID
();
int
operfunc
=
cdoOperatorF1
(
operatorID
);
...
...
src/Merstat.c
View file @
52796f5a
...
...
@@ -46,7 +46,6 @@ void *Merstat(void *argument)
int
nmiss
;
int
nrecs
;
int
varID
,
levelID
;
bool
needWeights
=
false
;
char
varname
[
CDI_MAX_NAME
];
cdoInitialize
(
argument
);
...
...
@@ -54,16 +53,17 @@ void *Merstat(void *argument)
cdoOperatorAdd
(
"mermin"
,
func_min
,
0
,
NULL
);
cdoOperatorAdd
(
"mermax"
,
func_max
,
0
,
NULL
);
cdoOperatorAdd
(
"mersum"
,
func_sum
,
0
,
NULL
);
cdoOperatorAdd
(
"mermean"
,
func_meanw
,
0
,
NULL
);
cdoOperatorAdd
(
"meravg"
,
func_avgw
,
0
,
NULL
);
cdoOperatorAdd
(
"mervar"
,
func_var
,
0
,
NULL
);
cdoOperatorAdd
(
"mervar1"
,
func_var1
,
0
,
NULL
);
cdoOperatorAdd
(
"merstd"
,
func_std
,
0
,
NULL
);
cdoOperatorAdd
(
"merstd1"
,
func_std1
,
0
,
NULL
);
cdoOperatorAdd
(
"mermean"
,
func_meanw
,
1
,
NULL
);
cdoOperatorAdd
(
"meravg"
,
func_avgw
,
1
,
NULL
);
cdoOperatorAdd
(
"mervar"
,
func_var
w
,
1
,
NULL
);
cdoOperatorAdd
(
"mervar1"
,
func_var1
w
,
1
,
NULL
);
cdoOperatorAdd
(
"merstd"
,
func_std
w
,
1
,
NULL
);
cdoOperatorAdd
(
"merstd1"
,
func_std1
w
,
1
,
NULL
);
cdoOperatorAdd
(
"merpctl"
,
func_pctl
,
0
,
NULL
);
int
operatorID
=
cdoOperatorID
();
int
operfunc
=
cdoOperatorF1
(
operatorID
);
bool
needWeights
=
cdoOperatorF2
(
operatorID
)
!=
0
;
double
pn
=
0
;
if
(
operfunc
==
func_pctl
)
...
...
@@ -73,11 +73,6 @@ void *Merstat(void *argument)
percentile_check_number
(
pn
);
}
if
(
operfunc
==
func_meanw
||
operfunc
==
func_avgw
||
operfunc
==
func_var
||
operfunc
==
func_std
||
operfunc
==
func_var1
||
operfunc
==
func_std1
)
needWeights
=
true
;
int
streamID1
=
streamOpenRead
(
cdoStreamName
(
0
));
int
vlistID1
=
streamInqVlist
(
streamID1
);
...
...
src/expr.c
View file @
52796f5a
...
...
@@ -119,10 +119,10 @@ static func_t fun_sym_tbl[] =
{
FT_FLD
,
0
,
"fldsum"
,
(
double
(
*
)())
fldsum
},
{
FT_FLD
,
1
,
"fldmean"
,
(
double
(
*
)())
fldmeanw
},
{
FT_FLD
,
1
,
"fldavg"
,
(
double
(
*
)())
fldavgw
},
{
FT_FLD
,
1
,
"fldstd"
,
(
double
(
*
)())
fldstd
},
{
FT_FLD
,
1
,
"fldstd1"
,
(
double
(
*
)())
fldstd1
},
{
FT_FLD
,
1
,
"fldvar"
,
(
double
(
*
)())
fldvar
},
{
FT_FLD
,
1
,
"fldvar1"
,
(
double
(
*
)())
fldvar1
},
{
FT_FLD
,
1
,
"fldstd"
,
(
double
(
*
)())
fldstd
w
},
{
FT_FLD
,
1
,
"fldstd1"
,
(
double
(
*
)())
fldstd1
w
},
{
FT_FLD
,
1
,
"fldvar"
,
(
double
(
*
)())
fldvar
w
},
{
FT_FLD
,
1
,
"fldvar1"
,
(
double
(
*
)())
fldvar1
w
},
// cdo field functions (Reduce level to point)
{
FT_VERT
,
0
,
"vertmin"
,
(
double
(
*
)())
fldmin
},
...
...
@@ -130,10 +130,10 @@ static func_t fun_sym_tbl[] =
{
FT_VERT
,
0
,
"vertsum"
,
(
double
(
*
)())
fldsum
},
{
FT_VERT
,
1
,
"vertmean"
,
(
double
(
*
)())
fldmeanw
},
{
FT_VERT
,
1
,
"vertavg"
,
(
double
(
*
)())
fldavgw
},
{
FT_VERT
,
1
,
"vertstd"
,
(
double
(
*
)())
fldstd
},
{
FT_VERT
,
1
,
"vertstd1"
,
(
double
(
*
)())
fldstd1
},
{
FT_VERT
,
1
,
"vertvar"
,
(
double
(
*
)())
fldvar
},
{
FT_VERT
,
1
,
"vertvar1"
,
(
double
(
*
)())
fldvar1
},
{
FT_VERT
,
1
,
"vertstd"
,
(
double
(
*
)())
fldstd
w
},
{
FT_VERT
,
1
,
"vertstd1"
,
(
double
(
*
)())
fldstd1
w
},
{
FT_VERT
,
1
,
"vertvar"
,
(
double
(
*
)())
fldvar
w
},
{
FT_VERT
,
1
,
"vertvar1"
,
(
double
(
*
)())
fldvar1
w
},
{
FT_COORD
,
0
,
"clon"
,
NULL
},
{
FT_COORD
,
0
,
"clat"
,
NULL
},
...
...
src/field.c
View file @
52796f5a
...
...
@@ -37,10 +37,10 @@ double fldfun(field_type field, int function)
case
func_meanw
:
rval
=
fldmeanw
(
field
);
break
;
case
func_avg
:
rval
=
fldavg
(
field
);
break
;
case
func_avgw
:
rval
=
fldavgw
(
field
);
break
;
case
func_std
:
rval
=
fldstd
(
field
);
break
;
case
func_std1
:
rval
=
fldstd1
(
field
);
break
;
case
func_var
:
rval
=
fldvar
(
field
);
break
;
case
func_var1
:
rval
=
fldvar1
(
field
);
break
;
case
func_std
w
:
rval
=
fldstd
w
(
field
);
break
;
case
func_std1
w
:
rval
=
fldstd1
w
(
field
);
break
;
case
func_var
w
:
rval
=
fldvar
w
(
field
);
break
;
case
func_var1
w
:
rval
=
fldvar1
w
(
field
);
break
;
case
func_crps
:
rval
=
fldcrps
(
field
);
break
;
case
func_brs
:
rval
=
fldbrs
(
field
);
break
;
case
func_rank
:
rval
=
fldrank
(
field
);
break
;
...
...
@@ -440,7 +440,7 @@ void prevarsumw(const double *restrict array, const double *restrict w, size_t l
}
double
fldvar
(
field_type
field
)
double
fldvar
w
(
field_type
field
)
{
const
int
nmiss
=
field
.
nmiss
>
0
;
const
size_t
len
=
field
.
size
;
...
...
@@ -457,7 +457,7 @@ double fldvar(field_type field)
}
double
fldvar1
(
field_type
field
)
double
fldvar1
w
(
field_type
field
)
{
const
int
nmiss
=
field
.
nmiss
>
0
;
const
size_t
len
=
field
.
size
;
...
...
@@ -490,15 +490,15 @@ double var_to_std(double rvar, double missval)
return
rstd
;
}
double
fldstd
(
field_type
field
)
double
fldstd
w
(
field_type
field
)
{
return
var_to_std
(
fldvar
(
field
),
field
.
missval
);
return
var_to_std
(
fldvar
w
(
field
),
field
.
missval
);
}
double
fldstd1
(
field_type
field
)
double
fldstd1
w
(
field_type
field
)
{
return
var_to_std
(
fldvar1
(
field
),
field
.
missval
);
return
var_to_std
(
fldvar1
w
(
field
),
field
.
missval
);
}
...
...
src/field.h
View file @
52796f5a
...
...
@@ -115,10 +115,10 @@ double fldavg(field_type field);
double
fldavgw
(
field_type
field
);
double
fldmean
(
field_type
field
);
double
fldmeanw
(
field_type
field
);
double
fldstd
(
field_type
field
);
double
fldstd1
(
field_type
field
);
double
fldvar
(
field_type
field
);
double
fldvar1
(
field_type
field
);
double
fldstd
w
(
field_type
field
);
double
fldstd1
w
(
field_type
field
);
double
fldvar
w
(
field_type
field
);
double
fldvar1
w
(
field_type
field
);
double
fldpctl
(
field_type
field
,
const
double
pn
);
void
fldunm
(
field_type
*
field
);
int
fldhvs
(
field_type
*
field
,
const
size_t
nlevels
);
...
...
@@ -152,10 +152,10 @@ void mermax(field_type field1, field_type *field2);
void
mersum
(
field_type
field1
,
field_type
*
field2
);
void
meravgw
(
field_type
field1
,
field_type
*
field2
);
void
mermeanw
(
field_type
field1
,
field_type
*
field2
);
void
merstd
(
field_type
field1
,
field_type
*
field2
);
void
merstd1
(
field_type
field1
,
field_type
*
field2
);
void
mervar
(
field_type
field1
,
field_type
*
field2
);
void
mervar1
(
field_type
field1
,
field_type
*
field2
);
void
merstd
w
(
field_type
field1
,
field_type
*
field2
);
void
merstd1
w
(
field_type
field1
,
field_type
*
field2
);
void
mervar
w
(
field_type
field1
,
field_type
*
field2
);
void
mervar1
w
(
field_type
field1
,
field_type
*
field2
);
void
merpctl
(
field_type
field1
,
field_type
*
field2
,
const
int
k
);
void
fldrms
(
field_type
field1
,
field_type
field2
,
field_type
*
field3
);
...
...
src/fieldmer.c
View file @
52796f5a
...
...
@@ -30,10 +30,10 @@ void merfun(field_type field1, field_type *field2, int function)
case
func_sum
:
mersum
(
field1
,
field2
);
break
;
case
func_meanw
:
mermeanw
(
field1
,
field2
);
break
;
case
func_avgw
:
meravgw
(
field1
,
field2
);
break
;
case
func_std
:
merstd
(
field1
,
field2
);
break
;
case
func_std1
:
merstd1
(
field1
,
field2
);
break
;
case
func_var
:
mervar
(
field1
,
field2
);
break
;
case
func_var1
:
mervar1
(
field1
,
field2
);
break
;
case
func_std
w
:
merstd
w
(
field1
,
field2
);
break
;
case
func_std1
w
:
merstd1
w
(
field1
,
field2
);
break
;
case
func_var
w
:
mervar
w
(
field1
,
field2
);
break
;
case
func_var1
w
:
mervar1
w
(
field1
,
field2
);
break
;
default:
cdoAbort
(
"function %d not implemented!"
,
function
);
}
}
...
...
@@ -267,8 +267,8 @@ void meravgw(field_type field1, field_type *field2)
}
static
void
prevarsum_mer
(
const
double
*
restrict
array
,
const
double
*
restrict
w
,
int
nx
,
int
ny
,
int
nmiss
,
double
missval
,
double
*
restrict
rsum
,
double
*
restrict
rsumw
,
double
*
restrict
rsumq
,
double
*
restrict
rsumwq
)
void
prevarsum_mer
w
(
const
double
*
restrict
array
,
const
double
*
restrict
w
,
int
nx
,
int
ny
,
int
nmiss
,
double
missval
,
double
*
restrict
rsum
,
double
*
restrict
rsumw
,
double
*
restrict
rsumq
,
double
*
restrict
rsumwq
)
{
*
rsum
=
0
;
*
rsumq
=
0
;
...
...
@@ -300,7 +300,7 @@ void prevarsum_mer(const double *restrict array, const double *restrict w, int n
}
void
mervar
(
field_type
field1
,
field_type
*
field2
)
void
mervar
w
(
field_type
field1
,
field_type
*
field2
)
{
int
rnmiss
=
0
;
int
grid
=
field1
.
grid
;
...
...
@@ -316,7 +316,7 @@ void mervar(field_type field1, field_type *field2)
for
(
int
i
=
0
;
i
<
nx
;
i
++
)
{
prevarsum_mer
(
array
+
i
,
w
+
i
,
nx
,
ny
,
nmiss
,
missval
,
&
rsum
,
&
rsumw
,
&
rsumq
,
&
rsumwq
);
prevarsum_mer
w
(
array
+
i
,
w
+
i
,
nx
,
ny
,
nmiss
,
missval
,
&
rsum
,
&
rsumw
,
&
rsumq
,
&
rsumwq
);
rvar
=
IS_NOT_EQUAL
(
rsumw
,
0
)
?
(
rsumq
*
rsumw
-
rsum
*
rsum
)
/
(
rsumw
*
rsumw
)
:
missval
;
if
(
rvar
<
0
&&
rvar
>
-
1.e-5
)
rvar
=
0
;
...
...
@@ -330,7 +330,7 @@ void mervar(field_type field1, field_type *field2)
}
void
mervar1
(
field_type
field1
,
field_type
*
field2
)
void
mervar1
w
(
field_type
field1
,
field_type
*
field2
)
{
int
rnmiss
=
0
;
int
grid
=
field1
.
grid
;
...
...
@@ -346,7 +346,7 @@ void mervar1(field_type field1, field_type *field2)
for
(
int
i
=
0
;
i
<
nx
;
i
++
)
{
prevarsum_mer
(
array
+
i
,
w
+
i
,
nx
,
ny
,
nmiss
,
missval
,
&
rsum
,
&
rsumw
,
&
rsumq
,
&
rsumwq
);
prevarsum_mer
w
(
array
+
i
,
w
+
i
,
nx
,
ny
,
nmiss
,
missval
,
&
rsum
,
&
rsumw
,
&
rsumq
,
&
rsumwq
);
rvar
=
(
rsumw
*
rsumw
>
rsumwq
)
?
(
rsumq
*
rsumw
-
rsum
*
rsum
)
/
(
rsumw
*
rsumw
-
rsumwq
)
:
missval
;
if
(
rvar
<
0
&&
rvar
>
-
1.e-5
)
rvar
=
0
;
...
...
@@ -360,7 +360,7 @@ void mervar1(field_type field1, field_type *field2)
}
void
merstd
(
field_type
field1
,
field_type
*
field2
)
void
merstd
w
(
field_type
field1
,
field_type
*
field2
)
{
int
rnmiss
=
0
;
int
grid
=
field1
.
grid
;
...
...
@@ -369,7 +369,7 @@ void merstd(field_type field1, field_type *field2)
int
nx
=
gridInqXsize
(
grid
);
mervar
(
field1
,
field2
);
mervar
w
(
field1
,
field2
);
for
(
int
i
=
0
;
i
<
nx
;
i
++
)
{
...
...
@@ -384,7 +384,7 @@ void merstd(field_type field1, field_type *field2)
}
void
merstd1
(
field_type
field1
,
field_type
*
field2
)
void
merstd1
w
(
field_type
field1
,
field_type
*
field2
)
{
int
rnmiss
=
0
;
int
grid
=
field1
.
grid
;
...
...
@@ -393,7 +393,7 @@ void merstd1(field_type field1, field_type *field2)
int
nx
=
gridInqXsize
(
grid
);
mervar1
(
field1
,
field2
);
mervar1
w
(
field1
,
field2
);
for
(
int
i
=
0
;
i
<
nx
;
i
++
)
{
...
...
src/functs.h
View file @
52796f5a
...
...
@@ -20,6 +20,10 @@
#define func_covar 22
#define func_avgw 23
#define func_meanw 24
#define func_stdw 25
#define func_std1w 26
#define func_varw 27
#define func_var1w 28
#define func_crps 30
#define func_brs 31
...
...
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