43 integer,
allocatable :: map(:, :)
44 type(accel_mem_t) :: map_buffer
47 integer,
public,
parameter :: MCM_POINT = 4,
mcm_count = 5
54 type(mesh_cube_map_t),
intent(out) :: this
55 class(mesh_t),
intent(in) :: mesh
56 integer,
intent(in) :: np
58 integer :: i1(1:3), i2(1:3)
64 if (mesh%idx%dim <= 3)
then
67 safe_allocate(this%map(1:5, 1:this%nmap))
77 if (any(i1(2:3) /= i2(2:3)) .or. i1(1) /= i2(1) + 1 .or. ip == 1)
then
78 this%nmap = this%nmap + 1
80 this%map(1:3, this%nmap) = i1(1:3)
81 this%map(mesh%idx%dim + 1:3, this%nmap) = 0
82 this%map(mcm_point, this%nmap) = ip
105 type(mesh_cube_map_t),
intent(inout) :: this
109 if (
allocated(this%map))
then
111 safe_deallocate_a(this%map)
subroutine, public accel_release_buffer(this)
pure logical function, public accel_is_enabled()
integer, parameter, public accel_mem_read_only
This module implements the index, used for the mesh points.
subroutine, public mesh_cube_map_end(this)
integer, parameter, public mcm_count
subroutine, public mesh_cube_map_init(this, mesh, np)
This module defines the meshes, which are used in Octopus.
subroutine, public mesh_local_index_to_coords(mesh, ip, ix)
Given a local point index, this function returns the set of integer coordinates of the point.
type(type_t), public type_integer