-
William F Godoy authored
Working on Fortran examples Testing Row Major Reader Debugging parallel read Changed file open function Added initial tests 1D and 2D
William F Godoy authoredWorking on Fortran examples Testing Row Major Reader Debugging parallel read Changed file open function Added initial tests 1D and 2D
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
adios2_engine_read_mod.f90 22.11 KiB
!
! Distributed under the OSI-approved Apache License, Version 2.0. See
! accompanying file Copyright.txt for details.
!
! adios2_engine_read_mod.f90 : ADIOS2 Fortran bindings for Engine generic
! Read functions
!
! Created on: Aug 22, 2017
! Author: William F Godoy godoywf@ornl.gov
!
module adios2_engine_read
interface adios2_read
! Single Value
module procedure adios2_read_integer
module procedure adios2_read_real
module procedure adios2_read_dp
module procedure adios2_read_complex
module procedure adios2_read_complex_dp
module procedure adios2_read_integer1
module procedure adios2_read_integer2
module procedure adios2_read_integer8
! 1D Array
module procedure adios2_read_integer_1d
module procedure adios2_read_real_1d
module procedure adios2_read_dp_1d
module procedure adios2_read_complex_1d
module procedure adios2_read_complex_dp_1d
module procedure adios2_read_integer1_1d
module procedure adios2_read_integer2_1d
module procedure adios2_read_integer8_1d
! 2D Array
module procedure adios2_read_integer_2d
module procedure adios2_read_real_2d
module procedure adios2_read_dp_2d
module procedure adios2_read_complex_2d
module procedure adios2_read_complex_dp_2d
module procedure adios2_read_integer1_2d
module procedure adios2_read_integer2_2d
module procedure adios2_read_integer8_2d
! 3D Array
module procedure adios2_read_integer_3d
module procedure adios2_read_real_3d
module procedure adios2_read_dp_3d
module procedure adios2_read_complex_3d
module procedure adios2_read_complex_dp_3d
module procedure adios2_read_integer1_3d
module procedure adios2_read_integer2_3d
module procedure adios2_read_integer8_3d
! 4D Array
module procedure adios2_read_integer_4d
module procedure adios2_read_real_4d
module procedure adios2_read_dp_4d
module procedure adios2_read_complex_4d
module procedure adios2_read_complex_dp_4d
module procedure adios2_read_integer1_4d
module procedure adios2_read_integer2_4d
module procedure adios2_read_integer8_4d
! 5D Array
module procedure adios2_read_integer_5d
module procedure adios2_read_real_5d
module procedure adios2_read_dp_5d
module procedure adios2_read_complex_5d
module procedure adios2_read_complex_dp_5d
module procedure adios2_read_integer1_5d
module procedure adios2_read_integer2_5d
module procedure adios2_read_integer8_5d
! 6D Array
module procedure adios2_read_integer_6d
module procedure adios2_read_real_6d
module procedure adios2_read_dp_6d
module procedure adios2_read_complex_6d
module procedure adios2_read_complex_dp_6d
module procedure adios2_read_integer1_6d
module procedure adios2_read_integer2_6d
module procedure adios2_read_integer8_6d
end interface
contains
! Single Value
subroutine adios2_read_integer( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer, intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_real( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
real, intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_dp( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
real(kind=8), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_complex( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
complex, intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_complex_dp( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
complex(kind=8), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer1( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=1), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer2( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=2), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer8( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=8), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
! 1D Array
subroutine adios2_read_integer_1d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer, dimension(:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_real_1d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
real, dimension(:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_dp_1d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
real(kind=8), dimension(:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_complex_1d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
complex, dimension(:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_complex_dp_1d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
complex(kind=8), dimension(:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer1_1d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=1), dimension(:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer2_1d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=2), dimension(:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer8_1d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=8), dimension(:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
! 2D Array
subroutine adios2_read_integer_2d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer, dimension(:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_real_2d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
real, dimension(:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_dp_2d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
real(kind=8), dimension(:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_complex_2d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
complex, dimension(:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_complex_dp_2d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
complex(kind=8), dimension(:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer1_2d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=1), dimension(:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer2_2d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=2), dimension(:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer8_2d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=8), dimension(:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
! 3D Array
subroutine adios2_read_integer_3d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer, dimension(:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_real_3d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
real, dimension(:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_dp_3d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
real(kind=8), dimension(:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_complex_3d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
complex, dimension(:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_complex_dp_3d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
complex(kind=8), dimension(:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer1_3d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=1), dimension(:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer2_3d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=2), dimension(:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer8_3d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=8), dimension(:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
! 4D Array
subroutine adios2_read_integer_4d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer, dimension(:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_real_4d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
real, dimension(:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_dp_4d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
real(kind=8), dimension(:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_complex_4d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
complex, dimension(:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_complex_dp_4d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
complex(kind=8), dimension(:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer1_4d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=1), dimension(:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer2_4d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=2), dimension(:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer8_4d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=8), dimension(:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
! 5D Array
subroutine adios2_read_integer_5d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer, dimension(:,:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_real_5d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
real, dimension(:,:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_dp_5d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
real(kind=8), dimension(:,:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_complex_5d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
complex, dimension(:,:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_complex_dp_5d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
complex(kind=8), dimension(:,:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer1_5d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=1), dimension(:,:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer2_5d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=2), dimension(:,:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer8_5d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=8), dimension(:,:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
! 6D Array
subroutine adios2_read_integer_6d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer, dimension(:,:,:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_real_6d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
real, dimension(:,:,:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_dp_6d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
real(kind=8), dimension(:,:,:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_complex_6d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
complex, dimension(:,:,:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_complex_dp_6d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
complex(kind=8), dimension(:,:,:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer1_6d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=1), dimension(:,:,:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer2_6d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=2), dimension(:,:,:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
subroutine adios2_read_integer8_6d( engine, variable, values, ierr )
integer(kind=8), intent(in):: engine
integer(kind=8), intent(in):: variable
integer(kind=8), dimension(:,:,:,:,:,:), intent(out):: values
integer, intent(out):: ierr
call adios2_get_sync_f2c(engine, variable, values, ierr)
end subroutine
end module