SIONlib  1.7.7
Scalable I/O library for parallel access to task-local files
simple/sionfortran.f90

Fortran example showing the very basic usage of SIONlib using MPI and Fortran.

More examples can be found in 'examples' folder of the SIONlib installation.

1 program siontest
2 
3  use sion_f90_mpi
4 
5  implicit none
6 
7  include 'mpif.h'
8 
9  integer :: ierr, my_rank, nranks, fsblksize, sid
10  integer*8 :: chuncksize, bwrite, bwrote
11  character(250) :: filename, nfilename
12 
13  integer :: lComm, gComm
14 
15  double precision, dimension(2048)::data
16 
17  call mpi_init(ierr)
18 
19  call mpi_comm_size(mpi_comm_world, nranks, ierr)
20  call mpi_comm_rank(mpi_comm_world, my_rank, ierr)
21 
22  write(*,*) "mpi config: ", nranks, my_rank
23 
24  filename = "parfile_fortran.sion"
25 
26  chuncksize = 2048 * 8_8
27  fsblksize = -1
28 
29  data = 14.4
30 
31  lcomm = mpi_comm_world
32  gcomm = mpi_comm_world
33 
34  call fsion_paropen_mpi(trim(filename), "bw", 1, gcomm, lcomm, chuncksize,&
35  & fsblksize, my_rank, nfilename, sid)
36 
37  bwrite = chuncksize
38  call fsion_write(data(1), 1_8, bwrite, sid, bwrote)
39 
40  write(*,*) "sionlib bwrote: ", bwrote
41 
42 
43  call fsion_parclose_mpi(sid, ierr)
44 
45  call mpi_finalize(ierr)
46 
47 end program siontest