Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
L
libcdi
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository 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
libcdi
Commits
cbc51e58
Commit
cbc51e58
authored
9 years ago
by
Thomas Jahns
Browse files
Options
Downloads
Patches
Plain Diff
Use size_t for loop counters over arrays.
parent
f6ea000e
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
tests/deco2d_model.c
+31
-31
31 additions, 31 deletions
tests/deco2d_model.c
with
31 additions
and
31 deletions
tests/deco2d_model.c
+
31
−
31
View file @
cbc51e58
...
...
@@ -87,8 +87,8 @@ modelRun(struct model_config setup, MPI_Comm comm)
#endif
}
*
varDesc
;
int
gridID
,
taxisID
,
vlistID
,
streamID
,
tsID
,
tfID
=
0
;
int
i
,
nmiss
=
0
;
double
*
lons
,
*
lats
,
*
levs
;
enum
{
nmiss
=
0
}
;
double
*
restrict
lons
,
*
restrict
lats
,
*
restrict
levs
;
double
*
var
=
NULL
,
*
varslice
=
NULL
;
double
mscale
,
mrscale
;
time_t
current_time
;
...
...
@@ -96,7 +96,7 @@ modelRun(struct model_config setup, MPI_Comm comm)
int
rank
=
0
;
char
filename
[
1024
];
int
nlon
=
setup
.
nlon
,
nlat
=
setup
.
nlat
;
in
t
nVars
=
setup
.
nvars
;
size_
t
nVars
=
setup
.
nvars
>
0
?
(
size_t
)
setup
.
nvars
:
0
;
size_t
varslice_size
=
0
;
#if USE_MPI
int
comm_size
=
1
;
...
...
@@ -141,10 +141,10 @@ modelRun(struct model_config setup, MPI_Comm comm)
gridDefXsize
(
gridID
,
nlon
);
gridDefYsize
(
gridID
,
nlat
);
lons
=
(
double
*
)
Malloc
((
size_t
)
nlon
*
sizeof
(
lons
[
0
]));
for
(
i
=
0
;
i
<
nlon
;
++
i
)
for
(
size_t
i
=
0
;
i
<
(
size_t
)
nlon
;
++
i
)
lons
[
i
]
=
((
double
)(
i
*
360
))
/
nlon
;
lats
=
(
double
*
)
Malloc
((
size_t
)
nlat
*
sizeof
(
lats
[
0
]));
for
(
i
=
0
;
i
<
nlat
;
++
i
)
for
(
size_t
i
=
0
;
i
<
(
size_t
)
nlat
;
++
i
)
lats
[
i
]
=
((
double
)(
i
*
180
))
/
nlat
-
90
.
0
;
gridDefXvals
(
gridID
,
lons
);
gridDefYvals
(
gridID
,
lats
);
...
...
@@ -160,13 +160,13 @@ modelRun(struct model_config setup, MPI_Comm comm)
levs
=
(
double
*
)
Malloc
((
size_t
)
setup
.
max_nlev
*
sizeof
(
levs
[
0
]));
{
double
lscale
=
1
.
0
/
(
double
)(
setup
.
max_nlev
-
1
);
for
(
i
=
0
;
i
<
setup
.
max_nlev
;
++
i
)
for
(
size_t
i
=
0
;
i
<
(
size_t
)
setup
.
max_nlev
;
++
i
)
levs
[
i
]
=
101300
.
0
-
13000
.
0
*
expm1
(
2
.
173
*
(
double
)
i
*
lscale
);
}
vlistID
=
vlistCreate
();
varDesc
=
(
struct
varDesc_t
*
)
Malloc
(
(
size_t
)
nVars
*
sizeof
(
varDesc
[
0
]));
for
(
in
t
varIdx
=
0
;
varIdx
<
nVars
;
varIdx
++
)
varDesc
=
(
struct
varDesc_t
*
)
Malloc
(
nVars
*
sizeof
(
varDesc
[
0
]));
for
(
size_
t
varIdx
=
0
;
varIdx
<
nVars
;
varIdx
++
)
{
int
varLevs
=
(
int
)
random
()
%
4
;
switch
(
varLevs
)
...
...
@@ -229,7 +229,7 @@ modelRun(struct model_config setup, MPI_Comm comm)
Xt_int
varSizeXt
[
3
]
=
{
(
Xt_int
)
nlon
,
(
Xt_int
)
nlat
,
(
Xt_int
)
varLevs
};
chunkSize
[
2
]
=
varLevs
;
Xt_int
varStartXt
[
3
]
=
{
start
[
0
],
start
[
1
],
0
};
for
(
in
t
i
=
0
;
i
<
varIdx
;
++
i
)
for
(
size_
t
i
=
0
;
i
<
varIdx
;
++
i
)
if
(
varDesc
[
i
].
nlev
==
varLevs
)
{
varDesc
[
varIdx
].
redist4gather
=
varDesc
[
i
].
redist4gather
;
...
...
@@ -277,7 +277,7 @@ modelRun(struct model_config setup, MPI_Comm comm)
gatherRedistSet:
;
}
#endif
varDesc
[
varIdx
].
code
=
129
+
varIdx
;
varDesc
[
varIdx
].
code
=
129
+
(
int
)
varIdx
;
vlistDefVarCode
(
vlistID
,
varDesc
[
varIdx
].
id
,
varDesc
[
varIdx
].
code
);
vlistDefVarDatatype
(
vlistID
,
varDesc
[
varIdx
].
id
,
setup
.
datatype
);
}
...
...
@@ -296,7 +296,7 @@ modelRun(struct model_config setup, MPI_Comm comm)
for
(
tfID
=
0
;
tfID
<
ntfiles
;
tfID
++
)
{
for
(
in
t
varIdx
=
0
;
varIdx
<
nVars
;
++
varIdx
)
for
(
size_
t
varIdx
=
0
;
varIdx
<
nVars
;
++
varIdx
)
varDesc
[
varIdx
].
checksum_state
=
0
;
if
(
tfID
>
0
)
{
...
...
@@ -316,15 +316,15 @@ modelRun(struct model_config setup, MPI_Comm comm)
taxisDefVdate
(
taxisID
,
vdatetime
[
1
]);
taxisDefVtime
(
taxisID
,
vdatetime
[
0
]);
streamDefTimestep
(
streamID
,
tsID
);
for
(
in
t
varI
D
=
0
;
varI
D
<
nVars
;
++
varI
D
)
for
(
size_
t
varI
dx
=
0
;
varI
dx
<
nVars
;
++
varI
dx
)
{
size_t
varLevs
=
(
size_t
)
varDesc
[
varI
D
].
nlev
;
size_t
varLevs
=
(
size_t
)
varDesc
[
varI
dx
].
nlev
;
#ifdef USE_MPI
int
start
[
3
]
=
{
varDesc
[
varI
D
].
start
[
0
],
varDesc
[
varI
D
].
start
[
1
],
int
start
[
3
]
=
{
varDesc
[
varI
dx
].
start
[
0
],
varDesc
[
varI
dx
].
start
[
1
],
0
};
int
chunk
[
3
]
=
{
varDesc
[
varI
D
].
chunkSize
[
0
],
varDesc
[
varI
D
].
chunkSize
[
1
],
int
chunk
[
3
]
=
{
varDesc
[
varI
dx
].
chunkSize
[
0
],
varDesc
[
varI
dx
].
chunkSize
[
1
],
(
int
)
varLevs
};
#else
int
chunk
[
3
]
=
{
nlon
,
nlat
,
(
int
)
varLevs
};
...
...
@@ -344,7 +344,7 @@ modelRun(struct model_config setup, MPI_Comm comm)
if
(
setup
.
compute_checksum
)
{
#if USE_MPI
xt_redist_s_exchange1
(
varDesc
[
varI
D
].
redist4gather
,
xt_redist_s_exchange1
(
varDesc
[
varI
dx
].
redist4gather
,
varslice
,
var
);
size_t
layerSize
=
(
size_t
)(
chunk
[
0
]
*
chunk
[
1
]);
size_t
nblk
=
(
layerSize
+
nproma
-
1
)
/
nproma
-
1
;
...
...
@@ -371,26 +371,26 @@ modelRun(struct model_config setup, MPI_Comm comm)
}
if
(
rank
==
0
&&
setup
.
compute_checksum
)
{
memcrc_r
(
&
varDesc
[
varI
D
].
checksum_state
,
memcrc_r
(
&
varDesc
[
varI
dx
].
checksum_state
,
(
const
unsigned
char
*
)
vdatetime
,
sizeof
(
vdatetime
));
memcrc_r
(
&
varDesc
[
varI
D
].
checksum_state
,
memcrc_r
(
&
varDesc
[
varI
dx
].
checksum_state
,
(
const
unsigned
char
*
)
var
,
varDesc
[
varI
D
].
size
*
sizeof
(
var
[
0
]));
varDesc
[
varI
dx
].
size
*
sizeof
(
var
[
0
]));
}
#ifdef USE_MPI
streamWriteScatteredVarPart
(
streamID
,
varDesc
[
varI
D
].
id
,
streamWriteScatteredVarPart
(
streamID
,
varDesc
[
varI
dx
].
id
,
varslice
,
(
int
)
varLevs
,
blk_lens
,
blk_displ
,
nmiss
,
varDesc
[
varI
D
].
partDesc
);
nmiss
,
varDesc
[
varI
dx
].
partDesc
);
#else
streamWriteVar
(
streamID
,
varDesc
[
varI
D
].
id
,
var
,
nmiss
);
streamWriteVar
(
streamID
,
varDesc
[
varI
dx
].
id
,
var
,
nmiss
);
#endif
}
current_time
+=
86400
;
#ifdef USE_MPI
pioWriteTimestep
(
tsID
,
vdate
,
vtime
);
pioWriteTimestep
(
);
#endif
}
if
(
rank
==
0
&&
setup
.
compute_checksum
)
...
...
@@ -403,7 +403,7 @@ modelRun(struct model_config setup, MPI_Comm comm)
perror
(
"failed to open table file"
);
exit
(
EXIT_FAILURE
);
}
for
(
i
=
0
;
i
<
nVars
;
++
i
)
for
(
size_t
i
=
0
;
i
<
nVars
;
++
i
)
{
uint32_t
cksum
;
int
code
;
...
...
@@ -431,17 +431,17 @@ modelRun(struct model_config setup, MPI_Comm comm)
streamClose
(
streamID
);
vlistDestroy
(
vlistID
);
taxisDestroy
(
taxisID
);
for
(
in
t
varI
D
=
0
;
varI
D
<
nVars
;
varI
D
++
)
for
(
size_
t
varI
dx
=
0
;
varI
dx
<
nVars
;
varI
dx
++
)
{
int
zID
=
varDesc
[
varI
D
].
zaxisID
;
int
zID
=
varDesc
[
varI
dx
].
zaxisID
;
if
(
zID
!=
CDI_UNDEFID
)
{
zaxisDestroy
(
zID
);
#if USE_MPI
xt_idxlist_delete
(
varDesc
[
varI
D
].
partDesc
);
xt_redist_delete
(
varDesc
[
varI
D
].
redist4gather
);
xt_idxlist_delete
(
varDesc
[
varI
dx
].
partDesc
);
xt_redist_delete
(
varDesc
[
varI
dx
].
redist4gather
);
#endif
for
(
in
t
j
=
varI
D
+
1
;
j
<
nVars
;
++
j
)
for
(
size_
t
j
=
varI
dx
+
1
;
j
<
nVars
;
++
j
)
if
(
zID
==
varDesc
[
j
].
zaxisID
)
varDesc
[
j
].
zaxisID
=
CDI_UNDEFID
;
}
...
...
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