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
09338b5b
Commit
09338b5b
authored
Dec 03, 2013
by
Uwe Schulzweida
Browse files
remap_distwgt: cleanup
parent
9514a5e5
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/remaplib.c
View file @
09338b5b
...
...
@@ -2874,8 +2874,8 @@ void remap_distwgt(int num_neighbors, remapgrid_t *src_grid, remapgrid_t *tgt_gr
{
/* Local variables */
long
grid
1
_size
;
long
grid
2
_size
;
long
src_
grid_size
;
long
tgt_
grid_size
;
long
n
;
long
dst_add
;
/* destination address */
int
nbr_mask
[
num_neighbors
];
/* mask at nearest neighbors */
...
...
@@ -2897,21 +2897,21 @@ void remap_distwgt(int num_neighbors, remapgrid_t *src_grid, remapgrid_t *tgt_gr
/* Compute mappings from grid1 to grid2 */
grid
1
_size
=
src_grid
->
size
;
grid
2
_size
=
tgt_grid
->
size
;
src_
grid_size
=
src_grid
->
size
;
tgt_
grid_size
=
tgt_grid
->
size
;
/* Compute cos, sin of lat/lon on source grid for distance calculations */
coslat
=
(
double
*
)
malloc
(
grid
1
_size
*
sizeof
(
double
));
coslon
=
(
double
*
)
malloc
(
grid
1
_size
*
sizeof
(
double
));
sinlat
=
(
double
*
)
malloc
(
grid
1
_size
*
sizeof
(
double
));
sinlon
=
(
double
*
)
malloc
(
grid
1
_size
*
sizeof
(
double
));
coslat
=
(
double
*
)
malloc
(
src_
grid_size
*
sizeof
(
double
));
coslon
=
(
double
*
)
malloc
(
src_
grid_size
*
sizeof
(
double
));
sinlat
=
(
double
*
)
malloc
(
src_
grid_size
*
sizeof
(
double
));
sinlon
=
(
double
*
)
malloc
(
src_
grid_size
*
sizeof
(
double
));
#if defined(_OPENMP)
#pragma omp parallel for default(none) \
shared(src_grid, grid
1
_size, coslat, coslon, sinlat, sinlon)
shared(src_grid,
src_
grid_size, coslat, coslon, sinlat, sinlon)
#endif
for
(
n
=
0
;
n
<
grid
1
_size
;
++
n
)
for
(
n
=
0
;
n
<
src_
grid_size
;
++
n
)
{
coslat
[
n
]
=
cos
(
src_grid
->
cell_center_lat
[
n
]);
coslon
[
n
]
=
cos
(
src_grid
->
cell_center_lon
[
n
]);
...
...
@@ -2920,15 +2920,14 @@ void remap_distwgt(int num_neighbors, remapgrid_t *src_grid, remapgrid_t *tgt_gr
}
/* Loop over destination grid */
/* grid_loop1 */
#if defined(_OPENMP)
#pragma omp parallel for default(none) \
shared(ompNumThreads, cdoTimer, num_neighbors, remap_grid_type, src_grid, tgt_grid, rv, grid
2
_size, coslat, coslon, sinlat, sinlon, findex) \
shared(ompNumThreads, cdoTimer, num_neighbors, remap_grid_type, src_grid, tgt_grid, rv,
tgt_
grid_size, coslat, coslon, sinlat, sinlon, findex) \
private(dst_add, n, coslat_dst, coslon_dst, sinlat_dst, sinlon_dst, dist_tot, \
nbr_add, nbr_dist, nbr_mask, wgtstmp, plat, plon) \
schedule(dynamic,1)
#endif
for
(
dst_add
=
0
;
dst_add
<
grid
2
_size
;
++
dst_add
)
for
(
dst_add
=
0
;
dst_add
<
tgt_
grid_size
;
++
dst_add
)
{
int
lprogress
=
1
;
#if defined(_OPENMP)
...
...
@@ -2938,18 +2937,18 @@ void remap_distwgt(int num_neighbors, remapgrid_t *src_grid, remapgrid_t *tgt_gr
#pragma omp atomic
#endif
findex
++
;
if
(
lprogress
)
progressStatus
(
0
,
1
,
findex
/
grid
2
_size
);
if
(
lprogress
)
progressStatus
(
0
,
1
,
findex
/
tgt_
grid_size
);
if
(
!
tgt_grid
->
mask
[
dst_add
]
)
continue
;
coslat_dst
=
cos
(
tgt_grid
->
cell_center_lat
[
dst_add
]);
coslon_dst
=
cos
(
tgt_grid
->
cell_center_lon
[
dst_add
]);
sinlat_dst
=
sin
(
tgt_grid
->
cell_center_lat
[
dst_add
]);
sinlon_dst
=
sin
(
tgt_grid
->
cell_center_lon
[
dst_add
]);
plat
=
tgt_grid
->
cell_center_lat
[
dst_add
];
plon
=
tgt_grid
->
cell_center_lon
[
dst_add
];
coslat_dst
=
cos
(
plat
);
coslon_dst
=
cos
(
plon
);
sinlat_dst
=
sin
(
plat
);
sinlon_dst
=
sin
(
plon
);
/* Find nearest grid points on source grid and distances to each point */
if
(
remap_grid_type
==
REMAP_GRID_TYPE_REG2D
)
grid_search_nbr_reg2d
(
num_neighbors
,
src_grid
,
nbr_add
,
nbr_dist
,
...
...
@@ -2999,8 +2998,7 @@ void remap_distwgt(int num_neighbors, remapgrid_t *src_grid, remapgrid_t *tgt_gr
store_link_nbr
(
rv
,
nbr_add
[
n
],
dst_add
,
wgtstmp
);
}
}
}
/* grid_loop1 */
}
/* for ( dst_add = 0; dst_add < tgt_grid_size; ++dst_add ) */
free
(
coslat
);
free
(
coslon
);
...
...
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