Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
cdo
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Analyze
Contributor analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
mpim-sw
cdo
Commits
50689013
Commit
50689013
authored
1 year ago
by
Uwe Schulzweida
Browse files
Options
Downloads
Patches
Plain Diff
Remove const
parent
ee84efc1
No related branches found
Branches containing commit
No related tags found
Tags containing commit
1 merge request
!138
M214003/develop
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
src/field2_complex.cc
+17
-17
17 additions, 17 deletions
src/field2_complex.cc
src/field_vinterp.cc
+9
-9
9 additions, 9 deletions
src/field_vinterp.cc
src/fieldc.cc
+9
-9
9 additions, 9 deletions
src/fieldc.cc
src/fieldc_complex.cc
+8
-8
8 additions, 8 deletions
src/fieldc_complex.cc
with
43 additions
and
43 deletions
src/field2_complex.cc
+
17
−
17
View file @
50689013
...
...
@@ -13,15 +13,15 @@
static
void
field2_add_complex
(
Field
&
field1
,
const
Field
&
field2
)
{
const
auto
missval1
=
field1
.
missval
;
const
auto
missval2
=
field2
.
missval
;
auto
missval1
=
field1
.
missval
;
auto
missval2
=
field2
.
missval
;
auto
&
array1
=
field1
.
vec_d
;
const
auto
&
array2
=
field2
.
vec_d
;
if
(
field1
.
nwpv
!=
2
)
cdo_abort
(
"Field1 is not complex!"
);
if
(
field2
.
nwpv
!=
2
)
cdo_abort
(
"Field2 is not complex!"
);
const
auto
gridsize
=
gridInqSize
(
field1
.
grid
);
auto
gridsize
=
gridInqSize
(
field1
.
grid
);
if
(
gridsize
!=
gridInqSize
(
field2
.
grid
))
cdo_abort
(
"Fields have different size (%s)"
,
__func__
);
for
(
size_t
i
=
0
;
i
<
gridsize
;
++
i
)
...
...
@@ -34,15 +34,15 @@ field2_add_complex(Field &field1, const Field &field2)
static
void
field2_sub_complex
(
Field
&
field1
,
const
Field
&
field2
)
{
const
auto
missval1
=
field1
.
missval
;
const
auto
missval2
=
field2
.
missval
;
auto
missval1
=
field1
.
missval
;
auto
missval2
=
field2
.
missval
;
auto
&
array1
=
field1
.
vec_d
;
const
auto
&
array2
=
field2
.
vec_d
;
if
(
field1
.
nwpv
!=
2
)
cdo_abort
(
"Field1 is not complex!"
);
if
(
field2
.
nwpv
!=
2
)
cdo_abort
(
"Field2 is not complex!"
);
const
auto
gridsize
=
gridInqSize
(
field1
.
grid
);
auto
gridsize
=
gridInqSize
(
field1
.
grid
);
if
(
gridsize
!=
gridInqSize
(
field2
.
grid
))
cdo_abort
(
"Fields have different size (%s)"
,
__func__
);
for
(
size_t
i
=
0
;
i
<
gridsize
;
++
i
)
...
...
@@ -55,22 +55,22 @@ field2_sub_complex(Field &field1, const Field &field2)
static
void
field2_mul_complex
(
Field
&
field1
,
const
Field
&
field2
)
{
const
auto
missval1
=
field1
.
missval
;
const
auto
missval2
=
field2
.
missval
;
auto
missval1
=
field1
.
missval
;
auto
missval2
=
field2
.
missval
;
auto
&
array1
=
field1
.
vec_d
;
const
auto
&
array2
=
field2
.
vec_d
;
if
(
field1
.
nwpv
!=
2
)
cdo_abort
(
"Field1 is not complex!"
);
if
(
field2
.
nwpv
!=
2
)
cdo_abort
(
"Field2 is not complex!"
);
const
auto
gridsize
=
gridInqSize
(
field1
.
grid
);
auto
gridsize
=
gridInqSize
(
field1
.
grid
);
if
(
gridsize
!=
gridInqSize
(
field2
.
grid
))
cdo_abort
(
"Fields have different size (%s)"
,
__func__
);
// z1 x z2 = (x1x2 - y1y2) + i(x1y2 + x2y1)
for
(
size_t
i
=
0
;
i
<
gridsize
;
++
i
)
{
const
auto
a1r
=
array1
[
2
*
i
];
const
auto
a1i
=
array1
[
2
*
i
+
1
];
auto
a1r
=
array1
[
2
*
i
];
auto
a1i
=
array1
[
2
*
i
+
1
];
array1
[
2
*
i
]
=
SUBMN
(
MULMN
(
a1r
,
array2
[
2
*
i
]),
MULMN
(
a1i
,
array2
[
2
*
i
+
1
]));
array1
[
2
*
i
+
1
]
=
ADDMN
(
MULMN
(
a1r
,
array2
[
2
*
i
+
1
]),
MULMN
(
a1i
,
array2
[
2
*
i
]));
}
...
...
@@ -79,23 +79,23 @@ field2_mul_complex(Field &field1, const Field &field2)
static
void
field2_div_complex
(
Field
&
field1
,
const
Field
&
field2
)
{
const
auto
missval1
=
field1
.
missval
;
const
auto
missval2
=
field2
.
missval
;
auto
missval1
=
field1
.
missval
;
auto
missval2
=
field2
.
missval
;
auto
&
array1
=
field1
.
vec_d
;
const
auto
&
array2
=
field2
.
vec_d
;
if
(
field1
.
nwpv
!=
2
)
cdo_abort
(
"Field1 is not complex!"
);
if
(
field2
.
nwpv
!=
2
)
cdo_abort
(
"Field2 is not complex!"
);
const
auto
gridsize
=
gridInqSize
(
field1
.
grid
);
auto
gridsize
=
gridInqSize
(
field1
.
grid
);
if
(
gridsize
!=
gridInqSize
(
field2
.
grid
))
cdo_abort
(
"Fields have different size (%s)"
,
__func__
);
// z1 / z2 = (x1x2 + y1y2) / (x2x2 + y2y2) + i (y1x2 - x1y2) / (x2x2 + y2y2)
for
(
size_t
i
=
0
;
i
<
gridsize
;
++
i
)
{
const
auto
a1r
=
array1
[
2
*
i
];
const
auto
a1i
=
array1
[
2
*
i
+
1
];
const
auto
denominator
=
ADDMN
(
MULMN
(
array2
[
2
*
i
],
array2
[
2
*
i
]),
MULMN
(
array2
[
2
*
i
+
1
],
array2
[
2
*
i
+
1
]));
auto
a1r
=
array1
[
2
*
i
];
auto
a1i
=
array1
[
2
*
i
+
1
];
auto
denominator
=
ADDMN
(
MULMN
(
array2
[
2
*
i
],
array2
[
2
*
i
]),
MULMN
(
array2
[
2
*
i
+
1
],
array2
[
2
*
i
+
1
]));
array1
[
2
*
i
]
=
DIVMN
(
ADDMN
(
MULMN
(
a1r
,
array2
[
2
*
i
]),
MULMN
(
a1i
,
array2
[
2
*
i
+
1
])),
denominator
);
array1
[
2
*
i
+
1
]
=
DIVMN
(
SUBMN
(
MULMN
(
a1i
,
array2
[
2
*
i
]),
MULMN
(
a1r
,
array2
[
2
*
i
+
1
])),
denominator
);
}
...
...
This diff is collapsed.
Click to expand it.
src/field_vinterp.cc
+
9
−
9
View file @
50689013
...
...
@@ -10,8 +10,8 @@
void
gen_vert_index
(
std
::
vector
<
int
>
&
vertIndex
,
Varray
<
double
>
&
plev
,
Field3D
&
full_level
,
size_t
gridsize
,
bool
lreverse
)
{
const
auto
nplev
=
plev
.
size
();
const
auto
nhlevf
=
full_level
.
nlevels
;
auto
nplev
=
plev
.
size
();
auto
nhlevf
=
full_level
.
nlevels
;
if
(
full_level
.
memType
==
MemType
::
Float
)
gen_vert_index
(
vertIndex
.
data
(),
plev
.
data
(),
full_level
.
vec_f
.
data
(),
gridsize
,
nplev
,
nhlevf
,
lreverse
);
else
...
...
@@ -22,7 +22,7 @@ void
gen_vert_index_mv
(
std
::
vector
<
int
>
&
vertIndex
,
Varray
<
double
>
&
plev
,
size_t
gridsize
,
Field
&
level0
,
Varray
<
size_t
>
&
pnmiss
,
bool
lreverse
)
{
const
auto
nplev
=
plev
.
size
();
auto
nplev
=
plev
.
size
();
if
(
level0
.
memType
==
MemType
::
Float
)
gen_vert_index_mv
(
vertIndex
.
data
(),
plev
.
data
(),
gridsize
,
nplev
,
level0
.
vec_f
.
data
(),
pnmiss
.
data
(),
lreverse
);
else
...
...
@@ -33,8 +33,8 @@ void
vertical_interp_T
(
size_t
nlevels
,
Field3D
&
full_level
,
Field3D
&
half_level
,
Field3D
&
field1
,
Field3D
&
field2
,
Field
&
sgeopot
,
std
::
vector
<
int
>
&
vertIndex
,
Varray
<
double
>
&
plev
,
size_t
gridsize
)
{
const
auto
nplev
=
plev
.
size
();
const
auto
missval
=
field1
.
missval
;
auto
nplev
=
plev
.
size
();
auto
missval
=
field1
.
missval
;
if
(
field1
.
memType
==
MemType
::
Float
)
vertical_interp_T
(
sgeopot
.
vec_f
.
data
(),
field1
.
vec_f
.
data
(),
field2
.
vec_f
.
data
(),
full_level
.
vec_f
.
data
(),
half_level
.
vec_f
.
data
(),
&
vertIndex
[
0
],
plev
.
data
(),
nplev
,
gridsize
,
nlevels
,
missval
);
...
...
@@ -47,8 +47,8 @@ void
vertical_interp_Z
(
size_t
nlevels
,
Field3D
&
full_level
,
Field3D
&
half_level
,
Field3D
&
field1
,
Field3D
&
field2
,
Field3D
&
temp
,
Field
&
sgeopot
,
std
::
vector
<
int
>
&
vertIndex
,
Varray
<
double
>
&
plev
,
size_t
gridsize
)
{
const
auto
nplev
=
plev
.
size
();
const
auto
missval
=
field1
.
missval
;
auto
nplev
=
plev
.
size
();
auto
missval
=
field1
.
missval
;
if
(
field1
.
memType
==
MemType
::
Float
)
vertical_interp_Z
(
sgeopot
.
vec_f
.
data
(),
field1
.
vec_f
.
data
(),
field2
.
vec_f
.
data
(),
full_level
.
vec_f
.
data
(),
half_level
.
vec_f
.
data
(),
&
vertIndex
[
0
],
temp
.
vec_f
.
data
(),
plev
.
data
(),
nplev
,
gridsize
,
nlevels
,
missval
);
...
...
@@ -61,8 +61,8 @@ void
vertical_interp_X
(
const
Field3D
&
levels3D
,
const
Field3D
&
field1
,
Field3D
&
field2
,
const
std
::
vector
<
int
>
&
vertIndex3D
,
const
Varray
<
double
>
&
levels2
,
size_t
gridsize
)
{
const
auto
numLevels2
=
levels2
.
size
();
const
auto
missval
=
field1
.
missval
;
auto
numLevels2
=
levels2
.
size
();
auto
missval
=
field1
.
missval
;
if
(
field1
.
memType
==
MemType
::
Float
)
vertical_interp_X
(
field1
.
vec_f
.
data
(),
field2
.
vec_f
.
data
(),
levels3D
.
vec_f
.
data
(),
vertIndex3D
.
data
(),
levels2
.
data
(),
numLevels2
,
gridsize
,
levels3D
.
nlevels
,
missval
);
...
...
This diff is collapsed.
Click to expand it.
src/fieldc.cc
+
9
−
9
View file @
50689013
...
...
@@ -12,8 +12,8 @@ template <typename T>
static
void
fieldc_mul
(
size_t
len
,
size_t
nmiss
,
Varray
<
T
>
&
v
,
const
T
missval
,
const
double
rconst
)
{
const
auto
missval1
=
missval
;
const
auto
missval2
=
missval
;
auto
missval1
=
missval
;
auto
missval2
=
missval
;
if
(
nmiss
)
{
...
...
@@ -38,8 +38,8 @@ template <typename T>
static
size_t
fieldc_div
(
size_t
len
,
size_t
nmiss
,
Varray
<
T
>
&
v
,
const
T
missval
,
const
double
rconst
)
{
const
auto
missval1
=
missval
;
const
auto
missval2
=
missval
;
auto
missval1
=
missval
;
auto
missval2
=
missval
;
if
(
nmiss
||
IS_EQUAL
(
rconst
,
0
))
{
...
...
@@ -68,8 +68,8 @@ template <typename T>
static
void
fieldc_add
(
size_t
len
,
size_t
nmiss
,
Varray
<
T
>
&
v
,
const
T
missval
,
const
double
rconst
)
{
const
auto
missval1
=
missval
;
const
auto
missval2
=
missval
;
auto
missval1
=
missval
;
auto
missval2
=
missval
;
if
(
nmiss
)
{
...
...
@@ -100,7 +100,7 @@ template <typename T>
static
void
fieldc_min
(
size_t
len
,
size_t
nmiss
,
Varray
<
T
>
&
v
,
const
T
missval
,
const
T
rconst
)
{
const
auto
missval1
=
missval
;
auto
missval1
=
missval
;
if
(
nmiss
)
{
...
...
@@ -127,7 +127,7 @@ template <typename T>
static
void
fieldc_max
(
size_t
len
,
size_t
nmiss
,
Varray
<
T
>
&
v
,
const
T
missval
,
const
T
rconst
)
{
const
auto
missval1
=
missval
;
auto
missval1
=
missval
;
if
(
nmiss
)
{
...
...
@@ -155,7 +155,7 @@ static void
fieldc_mod
(
size_t
len
,
size_t
nmiss
,
Varray
<
T
>
&
v
,
const
T
missval
,
const
double
divisor
)
{
(
void
)
nmiss
;
const
auto
missval1
=
missval
;
auto
missval1
=
missval
;
for
(
size_t
i
=
0
;
i
<
len
;
++
i
)
{
v
[
i
]
=
DBL_IS_EQUAL
(
v
[
i
],
missval1
)
?
missval1
:
std
::
fmod
((
double
)
v
[
i
],
divisor
);
}
}
...
...
This diff is collapsed.
Click to expand it.
src/fieldc_complex.cc
+
8
−
8
View file @
50689013
...
...
@@ -16,8 +16,8 @@ fieldc_mul_complex(size_t len, size_t nmiss, Varray<T> &v, const double missval,
{
(
void
)
nmiss
;
// z1 x z2 = (x1x2 - y1y2) + i(x1y2 + x2y1)
const
auto
missval1
=
missval
;
const
auto
missval2
=
missval
;
auto
missval1
=
missval
;
auto
missval2
=
missval
;
for
(
size_t
i
=
0
;
i
<
len
;
++
i
)
{
const
double
v1r
=
v
[
2
*
i
];
...
...
@@ -42,8 +42,8 @@ fieldc_div_complex(size_t len, size_t nmiss, Varray<T> &v, const double missval,
{
(
void
)
nmiss
;
// z1 / z2 = (x1x2 + y1y2) / (x2x2 + y2y2) + i (y1x2 - x1y2) / (x2x2 + y2y2)
const
auto
missval1
=
missval
;
const
auto
missval2
=
missval
;
auto
missval1
=
missval
;
auto
missval2
=
missval
;
for
(
size_t
i
=
0
;
i
<
len
;
++
i
)
{
const
double
v1r
=
v
[
2
*
i
];
...
...
@@ -68,8 +68,8 @@ static void
fieldc_add_complex
(
size_t
len
,
size_t
nmiss
,
Varray
<
T
>
&
v
,
const
double
missval
,
const
double
rconst
[
2
])
{
(
void
)
nmiss
;
const
auto
missval1
=
missval
;
const
auto
missval2
=
missval
;
auto
missval1
=
missval
;
auto
missval2
=
missval
;
for
(
size_t
i
=
0
;
i
<
len
;
++
i
)
{
v
[
2
*
i
]
=
ADDMN
(
v
[
2
*
i
],
rconst
[
0
]);
...
...
@@ -91,8 +91,8 @@ static void
fieldc_sub_complex
(
size_t
len
,
size_t
nmiss
,
Varray
<
T
>
&
v
,
const
double
missval
,
const
double
rconst
[
2
])
{
(
void
)
nmiss
;
const
auto
missval1
=
missval
;
const
auto
missval2
=
missval
;
auto
missval1
=
missval
;
auto
missval2
=
missval
;
for
(
size_t
i
=
0
;
i
<
len
;
++
i
)
{
v
[
2
*
i
]
=
SUBMN
(
v
[
2
*
i
],
rconst
[
0
]);
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment