summaryrefslogtreecommitdiff
path: root/src/tests/tng_parallel_read.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/tng_parallel_read.c')
-rw-r--r--src/tests/tng_parallel_read.c31
1 files changed, 18 insertions, 13 deletions
diff --git a/src/tests/tng_parallel_read.c b/src/tests/tng_parallel_read.c
index 58863b0..824fc73 100644
--- a/src/tests/tng_parallel_read.c
+++ b/src/tests/tng_parallel_read.c
@@ -31,7 +31,7 @@ int main(int argc, char **argv)
int64_t n_particles, n_values_per_frame, n_frame_sets, n_frames;
int64_t n_frames_per_frame_set, tot_n_frames = 0;
char data_type;
- int i, j;
+ int i, j, fail;
int64_t particle = 0, local_first_frame, local_last_frame;
char atom_name[64], res_name[64];
tng_trajectory_frame_set_t frame_set = 0;
@@ -89,10 +89,12 @@ int main(int argc, char **argv)
{
printf("Particle name not found\n");
}
+
+ fail = 0;
#pragma omp parallel \
private (n_frames, n_particles, n_values_per_frame, \
- local_first_frame, local_last_frame, j) \
+ local_first_frame, local_last_frame, j, fail) \
firstprivate (local_traj, local_positions, frame_set)\
shared(data_type, traj, n_frame_sets, particle_pos, particle, i, tot_n_frames)\
default(none)
@@ -107,7 +109,7 @@ default(none)
{
printf("FAILED finding frame set %d!\n", i);
tot_n_frames = 0;
- break;
+ fail = 1;
}
if(tng_particle_data_get(local_traj, TNG_TRAJ_POSITIONS, &local_positions,
&n_frames, &n_particles, &n_values_per_frame,
@@ -115,18 +117,21 @@ default(none)
{
printf("FAILED getting particle data\n");
tot_n_frames = 0;
- break;
+ fail = 1;
}
- tng_current_frame_set_get(local_traj, &frame_set);
- tng_frame_set_frame_range_get(local_traj, frame_set, &local_first_frame, &local_last_frame);
-// printf("Frame %"PRId64"-%"PRId64":\n", local_first_frame, local_last_frame);
-// printf("%"PRId64" %"PRId64" %"PRId64"\n", n_frames, n_particles, n_values_per_frame);
- tot_n_frames += n_frames;
- for(j = 0; j < n_frames; j++)
+ if(!fail)
{
- particle_pos[local_first_frame + j][0] = local_positions[j][particle][0];
- particle_pos[local_first_frame + j][1] = local_positions[j][particle][1];
- particle_pos[local_first_frame + j][2] = local_positions[j][particle][2];
+ tng_current_frame_set_get(local_traj, &frame_set);
+ tng_frame_set_frame_range_get(local_traj, frame_set, &local_first_frame, &local_last_frame);
+ // printf("Frame %"PRId64"-%"PRId64":\n", local_first_frame, local_last_frame);
+ // printf("%"PRId64" %"PRId64" %"PRId64"\n", n_frames, n_particles, n_values_per_frame);
+ tot_n_frames += n_frames;
+ for(j = 0; j < n_frames; j++)
+ {
+ particle_pos[local_first_frame + j][0] = local_positions[j][particle][0];
+ particle_pos[local_first_frame + j][1] = local_positions[j][particle][1];
+ particle_pos[local_first_frame + j][2] = local_positions[j][particle][2];
+ }
}
}
contact: Jan Huwald // Impressum