43 use,
intrinsic :: iso_c_binding
60 integer,
allocatable :: lglel(:)
83 type(
coef_t),
intent(inout) :: coef
84 integer :: nelb, nelv, nelgv, npts, gdim
88 npts = coef%Xh%lx*coef%Xh%ly*coef%Xh%lz
89 nelgv = coef%msh%glb_nelv
90 nelb = coef%msh%offset_el
94 call fortran_adios2_initialize(npts, nelv, nelb, nelgv, gdim,
neko_comm)
96 call neko_warning(
'Is not being built with ADIOS2 support.')
97 call neko_warning(
'Not able to use stream/compression functionality')
109 call fortran_adios2_finalize()
111 call neko_warning(
'Is not being built with ADIOS2 support.')
112 call neko_warning(
'Not able to use stream/compression functionality')
121 real(kind=
rp),
dimension(:,:,:,:),
intent(inout) :: fld
124 call fortran_adios2_stream(fld)
126 call neko_warning(
'Is not being built with ADIOS2 support.')
127 call neko_warning(
'Not able to use stream/compression functionality')
136 real(kind=
rp),
dimension(:,:,:,:),
intent(inout) :: fld
139 call fortran_adios2_recieve(fld)
141 call neko_warning(
'Is not being built with ADIOS2 support.')
142 call neko_warning(
'Not able to use stream/compression functionality')
159 subroutine fortran_adios2_initialize(npts, nelv, nelb, nelgv, gdim, comm)
160 use,
intrinsic :: iso_c_binding
162 integer,
intent(in) :: npts, nelv, nelb, nelgv, gdim
163 type(mpi_comm) :: comm
171 subroutine c_adios2_initialize(npts, nelv, nelb, nelgv, gdim, &
172 comm)
bind(C,name="adios2_initialize_")
173 use,
intrinsic :: iso_c_binding
176 integer(kind=C_INT) :: npts
177 integer(kind=C_INT) :: nelv
178 integer(kind=C_INT) :: nelb
179 integer(kind=C_INT) :: nelgv
180 integer(kind=C_INT) :: gdim
182 end subroutine c_adios2_initialize
185 call c_adios2_initialize(npts, nelv, nelb, nelgv, gdim,
comm)
186 end subroutine fortran_adios2_initialize
190 subroutine fortran_adios2_finalize()
191 use,
intrinsic :: iso_c_binding
196 subroutine c_adios2_finalize()
bind(C,name="adios2_finalize_")
197 use,
intrinsic :: iso_c_binding
199 end subroutine c_adios2_finalize
202 call c_adios2_finalize()
203 end subroutine fortran_adios2_finalize
210 subroutine fortran_adios2_stream(fld)
211 use,
intrinsic :: iso_c_binding
213 real(kind=
rp),
dimension(:,:,:,:),
intent(inout) :: fld
217 subroutine c_adios2_stream(fld) &
218 bind(C,name="adios2_stream_")
219 use,
intrinsic :: iso_c_binding
222 real(kind=
c_rp),
intent(INOUT) :: fld(*)
223 end subroutine c_adios2_stream
226 call c_adios2_stream(fld)
227 end subroutine fortran_adios2_stream
234 subroutine fortran_adios2_recieve(fld)
235 use,
intrinsic :: iso_c_binding
237 real(kind=
rp),
dimension(:,:,:,:),
intent(inout) :: fld
241 subroutine c_adios2_recieve(fld) &
242 bind(C,name="adios2_recieve_")
243 use,
intrinsic :: iso_c_binding
246 real(kind=
c_rp),
intent(INOUT) :: fld(*)
247 end subroutine c_adios2_recieve
250 call c_adios2_recieve(fld)
251 end subroutine fortran_adios2_recieve
type(mpi_comm) 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.
Device abstraction, common interface for various accelerators.
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.