m_omptgt_backend Module


Uses

  • module~~m_omptgt_backend~~UsesGraph module~m_omptgt_backend m_omptgt_backend module~m_allocator m_allocator module~m_omptgt_backend->module~m_allocator module~m_common m_common module~m_omptgt_backend->module~m_common module~m_field m_field module~m_omptgt_backend->module~m_field module~m_mesh m_mesh module~m_omptgt_backend->module~m_mesh module~m_omp_backend m_omp_backend module~m_omptgt_backend->module~m_omp_backend module~m_omp_common m_omp_common module~m_omptgt_backend->module~m_omp_common module~m_omptgt_allocator m_omptgt_allocator module~m_omptgt_backend->module~m_omptgt_allocator module~m_ordering m_ordering module~m_omptgt_backend->module~m_ordering module~m_allocator->module~m_common module~m_allocator->module~m_field iso_fortran_env iso_fortran_env module~m_allocator->iso_fortran_env mpi mpi module~m_common->mpi module~m_field->module~m_common module~m_mesh->module~m_common module~m_mesh->module~m_field module~m_mesh->iso_fortran_env module~m_mesh_content m_mesh_content module~m_mesh->module~m_mesh_content module~m_mesh->mpi module~m_omp_backend->module~m_allocator module~m_omp_backend->module~m_common module~m_omp_backend->module~m_field module~m_omp_backend->module~m_mesh module~m_omp_backend->module~m_omp_common module~m_omp_backend->module~m_ordering module~m_base_backend m_base_backend module~m_omp_backend->module~m_base_backend module~m_omp_exec_dist m_omp_exec_dist module~m_omp_backend->module~m_omp_exec_dist module~m_omp_sendrecv m_omp_sendrecv module~m_omp_backend->module~m_omp_sendrecv module~m_tdsops m_tdsops module~m_omp_backend->module~m_tdsops module~m_omp_backend->mpi module~m_omptgt_allocator->module~m_allocator module~m_omptgt_allocator->module~m_common module~m_omptgt_allocator->module~m_field module~m_omptgt_allocator->module~m_mesh iso_c_binding iso_c_binding module~m_omptgt_allocator->iso_c_binding omp_lib omp_lib module~m_omptgt_allocator->omp_lib module~m_ordering->module~m_common module~m_base_backend->module~m_allocator module~m_base_backend->module~m_common module~m_base_backend->module~m_field module~m_base_backend->module~m_mesh module~m_base_backend->module~m_tdsops module~m_base_backend->mpi module~m_poisson_fft m_poisson_fft module~m_base_backend->module~m_poisson_fft module~m_mesh_content->module~m_common module~m_omp_exec_dist->module~m_common module~m_omp_exec_dist->module~m_omp_common module~m_omp_exec_dist->module~m_omp_sendrecv module~m_omp_exec_dist->module~m_tdsops module~m_omp_exec_dist->mpi module~m_omp_kernels_dist m_omp_kernels_dist module~m_omp_exec_dist->module~m_omp_kernels_dist module~m_omp_sendrecv->module~m_common module~m_omp_sendrecv->mpi module~m_tdsops->module~m_common module~m_tdsops->iso_fortran_env module~m_omp_kernels_dist->module~m_common module~m_omp_kernels_dist->module~m_omp_common module~m_omp_kernels_dist->omp_lib module~m_poisson_fft->module~m_common module~m_poisson_fft->module~m_field module~m_poisson_fft->module~m_mesh module~m_poisson_fft->module~m_tdsops

Interfaces

public interface omptgt_backend_t

  • private function omptgt_backend_init(mesh, allocator) result(backend)

    Arguments

    Type IntentOptional Attributes Name
    type(mesh_t), intent(inout), target :: mesh
    class(allocator_t), intent(inout), target :: allocator

    Return Value type(omptgt_backend_t)


Derived Types

type, public, extends(omp_backend_t) ::  omptgt_backend_t

Components

Type Visibility Attributes Name Initial
integer, public :: n_halo = 4

DistD2 implementation is hardcoded for 4 halo layers for all backends

type(mesh_t), public, pointer :: mesh
class(allocator_t), public, pointer :: allocator
class(poisson_fft_t), public, pointer :: poisson_fft
real(kind=dp), public, allocatable, dimension(:, :, :) :: u_recv_s
real(kind=dp), public, allocatable, dimension(:, :, :) :: u_recv_e
real(kind=dp), public, allocatable, dimension(:, :, :) :: u_send_s
real(kind=dp), public, allocatable, dimension(:, :, :) :: u_send_e
real(kind=dp), public, allocatable, dimension(:, :, :) :: v_recv_s
real(kind=dp), public, allocatable, dimension(:, :, :) :: v_recv_e
real(kind=dp), public, allocatable, dimension(:, :, :) :: v_send_s
real(kind=dp), public, allocatable, dimension(:, :, :) :: v_send_e
real(kind=dp), public, allocatable, dimension(:, :, :) :: w_recv_s
real(kind=dp), public, allocatable, dimension(:, :, :) :: w_recv_e
real(kind=dp), public, allocatable, dimension(:, :, :) :: w_send_s
real(kind=dp), public, allocatable, dimension(:, :, :) :: w_send_e
real(kind=dp), public, allocatable, dimension(:, :, :) :: du_send_s
real(kind=dp), public, allocatable, dimension(:, :, :) :: du_send_e
real(kind=dp), public, allocatable, dimension(:, :, :) :: du_recv_s
real(kind=dp), public, allocatable, dimension(:, :, :) :: du_recv_e
real(kind=dp), public, allocatable, dimension(:, :, :) :: dud_send_s
real(kind=dp), public, allocatable, dimension(:, :, :) :: dud_send_e
real(kind=dp), public, allocatable, dimension(:, :, :) :: dud_recv_s
real(kind=dp), public, allocatable, dimension(:, :, :) :: dud_recv_e
real(kind=dp), public, allocatable, dimension(:, :, :) :: d2u_send_s
real(kind=dp), public, allocatable, dimension(:, :, :) :: d2u_send_e
real(kind=dp), public, allocatable, dimension(:, :, :) :: d2u_recv_s
real(kind=dp), public, allocatable, dimension(:, :, :) :: d2u_recv_e

Constructor

private function omptgt_backend_init (mesh, allocator)

Type-Bound Procedures

procedure, public :: base_init
procedure, public :: get_field_data
procedure, public :: set_field_data
procedure, public :: alloc_tdsops => alloc_omp_tdsops
procedure, public :: transeq_x => transeq_x_omp
procedure, public :: transeq_y => transeq_y_omp
procedure, public :: transeq_z => transeq_z_omp
procedure, public :: transeq_species => transeq_species_omp
procedure, public :: tds_solve => tds_solve_omp
procedure, public :: sum_yintox => sum_yintox_omp
procedure, public :: sum_zintox => sum_zintox_omp
procedure, public :: vecmult => vecmult_omp
procedure, public :: scalar_product => scalar_product_omp
procedure, public :: field_max_mean => field_max_mean_omp
procedure, public :: slice_max_sum => slice_max_sum_omp
procedure, public :: field_scale => field_scale_omp
procedure, public :: field_shift => field_shift_omp
procedure, public :: field_set_face => field_set_face_omp
procedure, public :: field_set_face_from_field => field_set_face_from_field_omp
procedure, public :: compute_vorticity => compute_vorticity_omp
procedure, public :: compute_qcriterion => compute_qcriterion_omp
procedure, public :: field_volume_integral => field_volume_integral_omp
procedure, public :: init_poisson_fft => init_omp_poisson_fft
procedure, public :: transeq_omp_dist
procedure, public :: copy_f_to_data => copy_f_to_data_omptgt
procedure, public :: copy_data_to_f => copy_data_to_f_omptgt
procedure, public :: reorder => reorder_omptgt
procedure, public :: vecadd => vecadd_omptgt
procedure, public :: veccopy => veccopy_omptgt