36 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int
48 drdx, drdy, drdz, dsdx, dsdy, dsdz, dtdx, dtdy, dtdz, &
49 jacinv, w3, nel, lx, gdim) &
50 bind(c, name=
'hip_coef_generate_geo')
51 use,
intrinsic :: iso_c_binding
53 type(c_ptr),
value :: G11, G12, G13, G22, G23, G33
54 type(c_ptr),
value :: drdx, drdy, drdz
55 type(c_ptr),
value :: dsdx, dsdy, dsdz
56 type(c_ptr),
value :: dtdx, dtdy, dtdz
57 type(c_ptr),
value :: jacinv, w3
58 integer(c_int) :: nel, gdim, lx
64 dsdz, dtdx, dtdy, dtdz, dxdr, dydr, dzdr, dxds, dyds, dzds, dxdt, &
65 dydt, dzdt, dx, dy, dz, x, y, z, jacinv, jac, lx, nel) &
66 bind(c, name=
'hip_coef_generate_dxyzdrst')
67 use,
intrinsic :: iso_c_binding
69 type(c_ptr),
value :: drdx, drdy, drdz
70 type(c_ptr),
value :: dsdx, dsdy, dsdz
71 type(c_ptr),
value :: dtdx, dtdy, dtdz
72 type(c_ptr),
value :: dxdr, dydr, dzdr
73 type(c_ptr),
value :: dxds, dyds, dzds
74 type(c_ptr),
value :: dxdt, dydt, dzdt
75 type(c_ptr),
value :: dx, dy, dz, x, y, z
76 type(c_ptr),
value :: jacinv, jac
77 integer(c_int) :: lx, nel
83 bind(c, name=
'hip_coef_generate_mass')
84 use,
intrinsic :: iso_c_binding
86 type(c_ptr),
value :: B, Binv, jac, w3
87 integer(c_int) :: lxyz, nel
93 dxdr, dydr, dzdr, dxds, dyds, dzds, dxdt, dydt, dzdt, &
94 wx, wy, wz, lx, nel, eps) &
95 bind(c, name=
'hip_coef_generate_area_and_normal')
96 use,
intrinsic :: iso_c_binding
99 type(c_ptr),
value :: area, nx, ny, nz
100 type(c_ptr),
value :: dxdr, dydr, dzdr
101 type(c_ptr),
value :: dxds, dyds, dzds
102 type(c_ptr),
value :: dxdt, dydt, dzdt
103 type(c_ptr),
value :: wx, wy, wz
104 integer(c_int) :: lx, nel
105 real(kind=
c_rp),
value :: eps
112 drdx, drdy, drdz, dsdx, dsdy, dsdz, dtdx, dtdy, dtdz, &
113 jacinv, w3, nel, lx, gdim) &
114 bind(c, name=
'cuda_coef_generate_geo')
115 use,
intrinsic :: iso_c_binding
117 type(c_ptr),
value :: g11, g12, g13, g22, g23, g33
118 type(c_ptr),
value :: drdx, drdy, drdz
119 type(c_ptr),
value :: dsdx, dsdy, dsdz
120 type(c_ptr),
value :: dtdx, dtdy, dtdz
121 type(c_ptr),
value :: jacinv, w3
122 integer(c_int) :: nel, gdim, lx
128 dsdz, dtdx, dtdy, dtdz, dxdr, dydr, dzdr, dxds, dyds, dzds, dxdt, &
129 dydt, dzdt, dx, dy, dz, x, y, z, jacinv, jac, lx, nel) &
130 bind(c, name=
'cuda_coef_generate_dxyzdrst')
131 use,
intrinsic :: iso_c_binding
133 type(c_ptr),
value :: drdx, drdy, drdz
134 type(c_ptr),
value :: dsdx, dsdy, dsdz
135 type(c_ptr),
value :: dtdx, dtdy, dtdz
136 type(c_ptr),
value :: dxdr, dydr, dzdr
137 type(c_ptr),
value :: dxds, dyds, dzds
138 type(c_ptr),
value :: dxdt, dydt, dzdt
139 type(c_ptr),
value :: dx, dy, dz, x, y, z
140 type(c_ptr),
value :: jacinv, jac
141 integer(c_int) :: lx, nel
147 bind(c, name=
'cuda_coef_generate_mass')
148 use,
intrinsic :: iso_c_binding
150 type(c_ptr),
value :: B, Binv, jac, w3
151 integer(c_int) :: lxyz, nel
157 dxdr, dydr, dzdr, dxds, dyds, dzds, dxdt, dydt, dzdt, &
158 wx, wy, wz, lx, nel, eps) &
159 bind(c, name=
'cuda_coef_generate_area_and_normal')
160 use,
intrinsic :: iso_c_binding
163 type(c_ptr),
value :: area, nx, ny, nz
164 type(c_ptr),
value :: dxdr, dydr, dzdr
165 type(c_ptr),
value :: dxds, dyds, dzds
166 type(c_ptr),
value :: dxdt, dydt, dzdt
167 type(c_ptr),
value :: wx, wy, wz
168 integer(c_int) :: lx, nel
169 real(kind=
c_rp),
value :: eps
176 drdx, drdy, drdz, dsdx, dsdy, dsdz, dtdx, dtdy, dtdz, &
177 jacinv, w3, nel, lx, gdim) &
178 bind(c, name=
'opencl_coef_generate_geo')
179 use,
intrinsic :: iso_c_binding
181 type(c_ptr),
value :: g11, g12, g13, g22, g23, g33
182 type(c_ptr),
value :: drdx, drdy, drdz
183 type(c_ptr),
value :: dsdx, dsdy, dsdz
184 type(c_ptr),
value :: dtdx, dtdy, dtdz
185 type(c_ptr),
value :: jacinv, w3
186 integer(c_int) :: nel, gdim, lx
192 dsdz, dtdx, dtdy, dtdz, dxdr, dydr, dzdr, dxds, dyds, dzds, dxdt, &
193 dydt, dzdt, dx, dy, dz, x, y, z, jacinv, jac, lx, nel) &
194 bind(c, name=
'opencl_coef_generate_dxyzdrst')
195 use,
intrinsic :: iso_c_binding
197 type(c_ptr),
value :: drdx, drdy, drdz
198 type(c_ptr),
value :: dsdx, dsdy, dsdz
199 type(c_ptr),
value :: dtdx, dtdy, dtdz
200 type(c_ptr),
value :: dxdr, dydr, dzdr
201 type(c_ptr),
value :: dxds, dyds, dzds
202 type(c_ptr),
value :: dxdt, dydt, dzdt
203 type(c_ptr),
value :: dx, dy, dz, x, y, z
204 type(c_ptr),
value :: jacinv, jac
205 integer(c_int) :: lx, nel
211 bind(c, name=
'opencl_coef_generate_mass')
212 use,
intrinsic :: iso_c_binding
214 type(c_ptr),
value :: B, Binv, jac, w3
215 integer(c_int) :: lxyz, nel
221 dxdr, dydr, dzdr, dxds, dyds, dzds, dxdt, dydt, dzdt, &
222 wx, wy, wz, lx, nel, eps) &
223 bind(c, name=
'opencl_coef_generate_area_and_normal')
224 use,
intrinsic :: iso_c_binding
227 type(c_ptr),
value :: area, nx, ny, nz
228 type(c_ptr),
value :: dxdr, dydr, dzdr
229 type(c_ptr),
value :: dxds, dyds, dzds
230 type(c_ptr),
value :: dxdt, dydt, dzdt
231 type(c_ptr),
value :: wx, wy, wz
232 integer(c_int) :: lx, nel
233 real(kind=
c_rp),
value :: eps
242 G23_d, G33_d, drdx_d, drdy_d, drdz_d, dsdx_d, dsdy_d, &
243 dsdz_d, dtdx_d, dtdy_d, dtdz_d, jacinv_d, w3_d, nel, lx, gdim)
244 type(c_ptr) :: g11_d, g12_d, g13_d, g22_d, g23_d, g33_d
245 type(c_ptr) :: drdx_d, drdy_d, drdz_d
246 type(c_ptr) :: dsdx_d, dsdy_d, dsdz_d
247 type(c_ptr) :: dtdx_d, dtdy_d, dtdz_d
248 type(c_ptr) :: jacinv_d, w3_d
249 integer :: nel, gdim, lx
253 g33_d, drdx_d, drdy_d, drdz_d, dsdx_d, dsdy_d, dsdz_d, &
254 dtdx_d, dtdy_d, dtdz_d, jacinv_d, w3_d, nel, lx, gdim)
257 g33_d, drdx_d, drdy_d, drdz_d, dsdx_d, dsdy_d, dsdz_d, &
258 dtdx_d, dtdy_d, dtdz_d, jacinv_d, w3_d, nel, lx, gdim)
261 g33_d, drdx_d, drdy_d, drdz_d, dsdx_d, dsdy_d, dsdz_d, &
262 dtdx_d, dtdy_d, dtdz_d, jacinv_d, w3_d, nel, lx, gdim)
264 call neko_error(
'No device backend configured')
270 dsdz_d, dtdx_d, dtdy_d, dtdz_d, dxdr_d, dydr_d, dzdr_d, dxds_d, &
271 dyds_d, dzds_d, dxdt_d, dydt_d, dzdt_d, dx_d, dy_d, dz_d, &
272 x_d, y_d, z_d, jacinv_d, jac_d, lx, nel)
273 type(c_ptr) :: drdx_d, drdy_d, drdz_d
274 type(c_ptr) :: dsdx_d, dsdy_d, dsdz_d
275 type(c_ptr) :: dtdx_d, dtdy_d, dtdz_d
276 type(c_ptr) :: dxdr_d, dydr_d, dzdr_d
277 type(c_ptr) :: dxds_d, dyds_d, dzds_d
278 type(c_ptr) :: dxdt_d, dydt_d, dzdt_d
279 type(c_ptr) :: dx_d, dy_d, dz_d, x_d, y_d, z_d
280 type(c_ptr) :: jacinv_d, jac_d
285 dsdy_d, dsdz_d, dtdx_d, dtdy_d, dtdz_d, dxdr_d, dydr_d, &
286 dzdr_d, dxds_d, dyds_d, dzds_d, dxdt_d, dydt_d, dzdt_d, &
287 dx_d, dy_d, dz_d, x_d, y_d, z_d, jacinv_d, jac_d, lx, nel)
290 dsdy_d, dsdz_d, dtdx_d, dtdy_d, dtdz_d, dxdr_d, dydr_d, &
291 dzdr_d, dxds_d, dyds_d, dzds_d, dxdt_d, dydt_d, dzdt_d, &
292 dx_d, dy_d, dz_d, x_d, y_d, z_d, jacinv_d, jac_d, lx, nel)
295 dsdy_d, dsdz_d, dtdx_d, dtdy_d, dtdz_d, dxdr_d, dydr_d, &
296 dzdr_d, dxds_d, dyds_d, dzds_d, dxdt_d, dydt_d, dzdt_d, &
297 dx_d, dy_d, dz_d, x_d, y_d, z_d, jacinv_d, jac_d, lx, nel)
299 call neko_error(
'No device backend configured')
304 type(c_ptr) :: b, binv, jac, w3
314 call neko_error(
'No device backend configured')
319 dxdr_d, dydr_d, dzdr_d, &
320 dxds_d, dyds_d, dzds_d, &
321 dxdt_d, dydt_d, dzdt_d, &
324 type(c_ptr) :: area_d, nx_d, ny_d, nz_d
325 type(c_ptr) :: dxdr_d, dydr_d, dzdr_d
326 type(c_ptr) :: dxds_d, dyds_d, dzds_d
327 type(c_ptr) :: dxdt_d, dydt_d, dzdt_d
328 type(c_ptr) :: wx_d, wy_d, wz_d
330 real(kind=
c_rp),
value :: eps
334 dxdr_d, dydr_d, dzdr_d, &
335 dxds_d, dyds_d, dzds_d, &
336 dxdt_d, dydt_d, dzdt_d, &
341 dxdr_d, dydr_d, dzdr_d, &
342 dxds_d, dyds_d, dzds_d, &
343 dxdt_d, dydt_d, dzdt_d, &
348 dxdr_d, dydr_d, dzdr_d, &
349 dxds_d, dyds_d, dzds_d, &
350 dxdt_d, dydt_d, dzdt_d, &
354 call neko_error(
'No device backend configured')
void opencl_coef_generate_mass(void *B, void *Binv, void *jac, void *w3, int *lxyz, int *nel)
void opencl_coef_generate_geo(void *G11, void *G12, void *G13, void *G22, void *G23, void *G33, void *drdx, void *drdy, void *drdz, void *dsdx, void *dsdy, void *dsdz, void *dtdx, void *dtdy, void *dtdz, void *jacinv, void *w3, int *nel, int *lx, int *gdim)
void opencl_coef_generate_dxyzdrst(void *drdx, void *drdy, void *drdz, void *dsdx, void *dsdy, void *dsdz, void *dtdx, void *dtdy, void *dtdz, void *dxdr, void *dydr, void *dzdr, void *dxds, void *dyds, void *dzds, void *dxdt, void *dydt, void *dzdt, void *dx, void *dy, void *dz, void *x, void *y, void *z, void *jacinv, void *jac, int *lx, int *nel)
void opencl_coef_generate_area_and_normal(void *area, void *nx, void *ny, void *nz, void *dxdr, void *dydr, void *dzdr, void *dxds, void *dyds, void *dzds, void *dxdt, void *dydt, void *dzdt, void *wx, void *wy, void *wz, int *lx, int *nel, real eps)
void cuda_coef_generate_area_and_normal(void *area, void *nx, void *ny, void *nz, void *dxdr, void *dydr, void *dzdr, void *dxds, void *dyds, void *dzds, void *dxdt, void *dydt, void *dzdt, void *wx, void *wy, void *wz, int *lx, int *nel, real eps)
void cuda_coef_generate_mass(void *B, void *Binv, void *jac, void *w3, int *lxyz, int *nel)
void cuda_coef_generate_dxyzdrst(void *drdx, void *drdy, void *drdz, void *dsdx, void *dsdy, void *dsdz, void *dtdx, void *dtdy, void *dtdz, void *dxdr, void *dydr, void *dzdr, void *dxds, void *dyds, void *dzds, void *dxdt, void *dydt, void *dzdt, void *dx, void *dy, void *dz, void *x, void *y, void *z, void *jacinv, void *jac, int *lx, int *nel)
void cuda_coef_generate_geo(void *G11, void *G12, void *G13, void *G22, void *G23, void *G33, void *drdx, void *drdy, void *drdz, void *dsdx, void *dsdy, void *dsdz, void *dtdx, void *dtdy, void *dtdz, void *jacinv, void *w3, int *nel, int *lx, int *gdim)
subroutine, public device_coef_generate_area_and_normal(area_d, nx_d, ny_d, nz_d, dxdr_d, dydr_d, dzdr_d, dxds_d, dyds_d, dzds_d, dxdt_d, dydt_d, dzdt_d, wx_d, wy_d, wz_d, lx, nel, eps)
subroutine, public device_coef_generate_dxydrst(drdx_d, drdy_d, drdz_d, dsdx_d, dsdy_d, dsdz_d, dtdx_d, dtdy_d, dtdz_d, dxdr_d, dydr_d, dzdr_d, dxds_d, dyds_d, dzds_d, dxdt_d, dydt_d, dzdt_d, dx_d, dy_d, dz_d, x_d, y_d, z_d, jacinv_d, jac_d, lx, nel)
subroutine, public device_coef_generate_mass(b, binv, jac, w3, lxyz, nel)
subroutine, public device_coef_generate_geo(g11_d, g12_d, g13_d, g22_d, g23_d, g33_d, drdx_d, drdy_d, drdz_d, dsdx_d, dsdy_d, dsdz_d, dtdx_d, dtdy_d, dtdz_d, jacinv_d, w3_d, nel, lx, gdim)
integer, parameter, public c_rp
integer, parameter, public rp
Global precision used in computations.