40  use mpi_f08, 
only : mpi_comm
 
   41  use, 
intrinsic :: iso_c_binding
 
   58     integer, 
allocatable :: lglel(:)
 
 
   81    type(
coef_t), 
intent(inout) :: coef
 
   82    integer :: nelb, nelv, nelgv, npts, gdim
 
   86    npts = coef%Xh%lx*coef%Xh%ly*coef%Xh%lz
 
   87    nelgv = coef%msh%glb_nelv
 
   88    nelb = coef%msh%offset_el
 
   92    call fortran_adios2_initialize(npts, nelv, nelb, nelgv, gdim, 
neko_comm)
 
   94    call neko_warning(
'Is not being built with ADIOS2 support.')
 
   95    call neko_warning(
'Not able to use stream/compression functionality')
 
 
  107    call fortran_adios2_finalize()
 
  109    call neko_warning(
'Is not being built with ADIOS2 support.')
 
  110    call neko_warning(
'Not able to use stream/compression functionality')
 
 
  119    real(kind=
rp), 
dimension(:,:,:,:), 
intent(inout) :: fld
 
  122    call fortran_adios2_stream(fld)
 
  124    call neko_warning(
'Is not being built with ADIOS2 support.')
 
  125    call neko_warning(
'Not able to use stream/compression functionality')
 
 
  134    real(kind=
rp), 
dimension(:,:,:,:), 
intent(inout) :: fld
 
  137    call fortran_adios2_recieve(fld)
 
  139    call neko_warning(
'Is not being built with ADIOS2 support.')
 
  140    call neko_warning(
'Not able to use stream/compression functionality')
 
 
  157  subroutine fortran_adios2_initialize(npts, nelv, nelb, nelgv, gdim, comm)
 
  158    use, 
intrinsic :: iso_c_binding
 
  160    integer, 
intent(in) :: npts, nelv, nelb, nelgv, gdim
 
  161    type(mpi_comm) :: comm
 
  169       subroutine c_adios2_initialize(npts, nelv, nelb, nelgv, gdim, &
 
  170                                      comm) 
bind(C,name="adios2_initialize_") 
  171         use, 
intrinsic :: iso_c_binding
 
  174         integer(kind=C_INT) :: npts
 
  175         integer(kind=C_INT) :: nelv
 
  176         integer(kind=C_INT) :: nelb
 
  177         integer(kind=C_INT) :: nelgv
 
  178         integer(kind=C_INT) :: gdim
 
  180       end subroutine c_adios2_initialize
 
  183    call c_adios2_initialize(npts, nelv, nelb, nelgv, gdim, 
comm)
 
  184  end subroutine fortran_adios2_initialize
 
  188  subroutine fortran_adios2_finalize()
 
  189    use, 
intrinsic :: iso_c_binding
 
  194       subroutine c_adios2_finalize() 
bind(C,name="adios2_finalize_") 
  195         use, 
intrinsic :: iso_c_binding
 
  197       end subroutine c_adios2_finalize
 
  200    call c_adios2_finalize()
 
  201  end subroutine fortran_adios2_finalize
 
  208  subroutine fortran_adios2_stream(fld)
 
  209    use, 
intrinsic :: iso_c_binding
 
  211    real(kind=
rp), 
dimension(:,:,:,:), 
intent(inout) :: fld
 
  215       subroutine c_adios2_stream(fld) &
 
  216                                  bind(C,name="adios2_stream_") 
  217         use, 
intrinsic :: iso_c_binding
 
  220         real(kind=
c_rp), 
intent(INOUT) :: fld(*)
 
  221       end subroutine c_adios2_stream
 
  224    call c_adios2_stream(fld)
 
  225  end subroutine fortran_adios2_stream
 
  232  subroutine fortran_adios2_recieve(fld)
 
  233    use, 
intrinsic :: iso_c_binding
 
  235    real(kind=
rp), 
dimension(:,:,:,:), 
intent(inout) :: fld
 
  239       subroutine c_adios2_recieve(fld) &
 
  240                                  bind(C,name="adios2_recieve_") 
  241         use, 
intrinsic :: iso_c_binding
 
  244         real(kind=
c_rp), 
intent(INOUT) :: fld(*)
 
  245       end subroutine c_adios2_recieve
 
  248    call c_adios2_recieve(fld)
 
  249  end subroutine fortran_adios2_recieve
 
type(mpi_comm), public neko_comm
MPI communicator.
 
Implements type data_streamer_t.
 
subroutine data_streamer_recieve(this, fld)
reciever
 
subroutine data_streamer_init(this, coef)
Constructor Wraps the adios2 set-up.
 
subroutine data_streamer_stream(this, fld)
streamer
 
subroutine data_streamer_free(this)
Destructor wraps the adios2 finalize routine. Closes insitu writer.
 
integer, parameter, public c_rp
 
integer, parameter, public rp
Global precision used in computations.
 
subroutine, public neko_warning(warning_msg)
Reports a warning to standard output.
 
Coefficients defined on a given (mesh, ) tuple. Arrays use indices (i,j,k,e): element e,...
 
Provides access to data streaming by interfacing with c++ ADIOS2 subroutines.