1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
/*
* ADIOS is freely available under the terms of the BSD license described
* in the COPYING file in the top level directory of this source distribution.
*
* Copyright (c) 2008 - 2009. UT-BATTELLE, LLC. All rights reserved.
*/
/* ADIOS C Example: write a global array from N processors with gwrite
*
* How to run: mpirun -np <N> global_array_write_C
* Output: global_array_C.bp
* ADIOS config file: global_array_C.xml
*
*/
#include <stdio.h>
#include <string.h>
#include "mpi.h"
#include "adios.h"
int main (int argc, char ** argv)
{
char filename [256];
int rank, size, i;
int NX = 10;
double t[NX];
MPI_Comm comm = MPI_COMM_WORLD;
/* ADIOS variables declarations for matching gwrite_temperature.ch */
uint64_t adios_groupsize, adios_totalsize;
int64_t adios_handle;
MPI_Init (&argc, &argv);
MPI_Comm_rank (comm, &rank);
MPI_Comm_size (comm, &size);
for (i = 0; i < NX; i++)
t[i] = rank*NX + i;
strcpy (filename, "global_array_C.bp");
adios_init ("global_array_C.xml", comm);
adios_open (&adios_handle, "temperature", filename, "w", comm);
#include "gwrite_temperature.ch"
adios_close (adios_handle);
MPI_Barrier (comm);
adios_finalize (rank);
MPI_Finalize ();
return 0;
}
|