35module device_borrvall_petersson_mapping
36 use utils,
only: neko_error
37 use num_types,
only: rp, c_rp
38 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
42 public :: device_borrvall_petersson_mapping_apply, &
43 device_borrvall_petersson_mapping_apply_backward
48 subroutine hip_borrvall_petersson_mapping_apply(f_min, f_max, q, &
50 bind(c, name =
'hip_Borrvall_Petersson_mapping_apply')
51 import c_rp, c_ptr, c_int
55 type(c_ptr),
value :: X_out_d
56 type(c_ptr),
value :: X_in_d
58 end subroutine hip_borrvall_petersson_mapping_apply
62 subroutine hip_borrvall_petersson_mapping_apply_backward(f_min, f_max, q, &
63 sense_out_d, sens_in_d, X_in_d, n) &
64 bind(c, name =
'hip_Borrvall_Petersson_mapping_apply_backward')
65 import c_rp, c_ptr, c_int
69 type(c_ptr),
value :: sense_out_d
70 type(c_ptr),
value :: sens_in_d
71 type(c_ptr),
value :: X_in_d
73 end subroutine hip_borrvall_petersson_mapping_apply_backward
79 subroutine cuda_borrvall_petersson_mapping_apply(f_min, f_max, q, &
81 bind(c, name =
'cuda_Borrvall_Petersson_mapping_apply')
82 import c_rp, c_ptr, c_int
86 type(c_ptr),
value :: X_out_d
87 type(c_ptr),
value :: X_in_d
89 end subroutine cuda_borrvall_petersson_mapping_apply
93 subroutine cuda_borrvall_petersson_mapping_apply_backward(f_min, f_max, q, &
94 sense_out_d, sens_in_d, X_in_d, n) &
95 bind(c, name =
'cuda_Borrvall_Petersson_mapping_apply_backward')
96 import c_rp, c_ptr, c_int
100 type(c_ptr),
value :: sense_out_d
101 type(c_ptr),
value :: sens_in_d
102 type(c_ptr),
value :: X_in_d
104 end subroutine cuda_borrvall_petersson_mapping_apply_backward
113 subroutine device_borrvall_petersson_mapping_apply(f_min, f_max, q, &
115 real(kind=rp),
intent(in) :: f_min
116 real(kind=rp),
intent(in) :: f_max
117 real(kind=rp),
intent(in) :: q
118 type(c_ptr) :: X_out_d
119 type(c_ptr) :: X_in_d
122 call hip_borrvall_petersson_mapping_apply(f_min, f_max, q, &
125 call cuda_borrvall_petersson_mapping_apply(f_min, f_max, q, &
128 call neko_error(
'No device backend configured')
130 end subroutine device_borrvall_petersson_mapping_apply
132 subroutine device_borrvall_petersson_mapping_apply_backward(f_min, f_max, q, &
133 sense_out_d, sens_in_d, X_in_d, n)
134 real(kind=rp),
intent(in) :: f_min
135 real(kind=rp),
intent(in) :: f_max
136 real(kind=rp),
intent(in) :: q
137 type(c_ptr) :: sense_out_d
138 type(c_ptr) :: sens_in_d
139 type(c_ptr) :: X_in_d
142 call hip_borrvall_petersson_mapping_apply_backward(f_min, f_max, q, &
143 sense_out_d, sens_in_d, x_in_d, n)
145 call cuda_borrvall_petersson_mapping_apply_backward(f_min, f_max, q, &
146 sense_out_d, sens_in_d, x_in_d, n)
148 call neko_error(
'No device backend configured')
150 end subroutine device_borrvall_petersson_mapping_apply_backward
151end module device_borrvall_petersson_mapping