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
239 subroutine metal_coef_generate_geo(G11, G12, G13, G22, G23, G33, &
240 drdx, drdy, drdz, dsdx, dsdy, dsdz, dtdx, dtdy, dtdz, &
241 jacinv, w3, nel, lx, gdim) &
242 bind(c, name=
'metal_coef_generate_geo')
243 use,
intrinsic :: iso_c_binding
245 type(c_ptr),
value :: g11, g12, g13, g22, g23, g33
246 type(c_ptr),
value :: drdx, drdy, drdz
247 type(c_ptr),
value :: dsdx, dsdy, dsdz
248 type(c_ptr),
value :: dtdx, dtdy, dtdz
249 type(c_ptr),
value :: jacinv, w3
250 integer(c_int) :: nel, gdim, lx
251 end subroutine metal_coef_generate_geo
255 subroutine metal_coef_generate_dxyzdrst(drdx, drdy, drdz, dsdx, dsdy, &
256 dsdz, dtdx, dtdy, dtdz, dxdr, dydr, dzdr, dxds, dyds, dzds, dxdt, &
257 dydt, dzdt, dx, dy, dz, x, y, z, jacinv, jac, lx, nel) &
258 bind(c, name=
'metal_coef_generate_dxyzdrst')
259 use,
intrinsic :: iso_c_binding
261 type(c_ptr),
value :: drdx, drdy, drdz
262 type(c_ptr),
value :: dsdx, dsdy, dsdz
263 type(c_ptr),
value :: dtdx, dtdy, dtdz
264 type(c_ptr),
value :: dxdr, dydr, dzdr
265 type(c_ptr),
value :: dxds, dyds, dzds
266 type(c_ptr),
value :: dxdt, dydt, dzdt
267 type(c_ptr),
value :: dx, dy, dz, x, y, z
268 type(c_ptr),
value :: jacinv, jac
269 integer(c_int) :: lx, nel
270 end subroutine metal_coef_generate_dxyzdrst
274 subroutine metal_coef_generate_mass(B, Binv, jac, w3, lxyz, nel) &
275 bind(c, name=
'metal_coef_generate_mass')
276 use,
intrinsic :: iso_c_binding
278 type(c_ptr),
value :: B, Binv, jac, w3
279 integer(c_int) :: lxyz, nel
280 end subroutine metal_coef_generate_mass
284 subroutine metal_coef_generate_area_and_normal(area, nx, ny, nz, &
285 dxdr, dydr, dzdr, dxds, dyds, dzds, dxdt, dydt, dzdt, &
286 wx, wy, wz, lx, nel, eps) &
287 bind(c, name=
'metal_coef_generate_area_and_normal')
288 use,
intrinsic :: iso_c_binding
291 type(c_ptr),
value :: area, nx, ny, nz
292 type(c_ptr),
value :: dxdr, dydr, dzdr
293 type(c_ptr),
value :: dxds, dyds, dzds
294 type(c_ptr),
value :: dxdt, dydt, dzdt
295 type(c_ptr),
value :: wx, wy, wz
296 integer(c_int) :: lx, nel
297 real(kind=
c_rp),
value :: eps
298 end subroutine metal_coef_generate_area_and_normal
306 G23_d, G33_d, drdx_d, drdy_d, drdz_d, dsdx_d, dsdy_d, &
307 dsdz_d, dtdx_d, dtdy_d, dtdz_d, jacinv_d, w3_d, nel, lx, gdim)
308 type(c_ptr) :: g11_d, g12_d, g13_d, g22_d, g23_d, g33_d
309 type(c_ptr) :: drdx_d, drdy_d, drdz_d
310 type(c_ptr) :: dsdx_d, dsdy_d, dsdz_d
311 type(c_ptr) :: dtdx_d, dtdy_d, dtdz_d
312 type(c_ptr) :: jacinv_d, w3_d
313 integer :: nel, gdim, lx
317 g33_d, drdx_d, drdy_d, drdz_d, dsdx_d, dsdy_d, dsdz_d, &
318 dtdx_d, dtdy_d, dtdz_d, jacinv_d, w3_d, nel, lx, gdim)
321 g33_d, drdx_d, drdy_d, drdz_d, dsdx_d, dsdy_d, dsdz_d, &
322 dtdx_d, dtdy_d, dtdz_d, jacinv_d, w3_d, nel, lx, gdim)
325 g33_d, drdx_d, drdy_d, drdz_d, dsdx_d, dsdy_d, dsdz_d, &
326 dtdx_d, dtdy_d, dtdz_d, jacinv_d, w3_d, nel, lx, gdim)
328 call metal_coef_generate_geo(g11_d, g12_d, g13_d, g22_d, g23_d, &
329 g33_d, drdx_d, drdy_d, drdz_d, dsdx_d, dsdy_d, dsdz_d, &
330 dtdx_d, dtdy_d, dtdz_d, jacinv_d, w3_d, nel, lx, gdim)
332 call neko_error(
'No device backend configured')
338 dsdz_d, dtdx_d, dtdy_d, dtdz_d, dxdr_d, dydr_d, dzdr_d, dxds_d, &
339 dyds_d, dzds_d, dxdt_d, dydt_d, dzdt_d, dx_d, dy_d, dz_d, &
340 x_d, y_d, z_d, jacinv_d, jac_d, lx, nel)
341 type(c_ptr) :: drdx_d, drdy_d, drdz_d
342 type(c_ptr) :: dsdx_d, dsdy_d, dsdz_d
343 type(c_ptr) :: dtdx_d, dtdy_d, dtdz_d
344 type(c_ptr) :: dxdr_d, dydr_d, dzdr_d
345 type(c_ptr) :: dxds_d, dyds_d, dzds_d
346 type(c_ptr) :: dxdt_d, dydt_d, dzdt_d
347 type(c_ptr) :: dx_d, dy_d, dz_d, x_d, y_d, z_d
348 type(c_ptr) :: jacinv_d, jac_d
353 dsdy_d, dsdz_d, dtdx_d, dtdy_d, dtdz_d, dxdr_d, dydr_d, &
354 dzdr_d, dxds_d, dyds_d, dzds_d, dxdt_d, dydt_d, dzdt_d, &
355 dx_d, dy_d, dz_d, x_d, y_d, z_d, jacinv_d, jac_d, lx, nel)
358 dsdy_d, dsdz_d, dtdx_d, dtdy_d, dtdz_d, dxdr_d, dydr_d, &
359 dzdr_d, dxds_d, dyds_d, dzds_d, dxdt_d, dydt_d, dzdt_d, &
360 dx_d, dy_d, dz_d, x_d, y_d, z_d, jacinv_d, jac_d, lx, nel)
363 dsdy_d, dsdz_d, dtdx_d, dtdy_d, dtdz_d, dxdr_d, dydr_d, &
364 dzdr_d, dxds_d, dyds_d, dzds_d, dxdt_d, dydt_d, dzdt_d, &
365 dx_d, dy_d, dz_d, x_d, y_d, z_d, jacinv_d, jac_d, lx, nel)
367 call metal_coef_generate_dxyzdrst(drdx_d, drdy_d, drdz_d, dsdx_d, &
368 dsdy_d, dsdz_d, dtdx_d, dtdy_d, dtdz_d, dxdr_d, dydr_d, &
369 dzdr_d, dxds_d, dyds_d, dzds_d, dxdt_d, dydt_d, dzdt_d, &
370 dx_d, dy_d, dz_d, x_d, y_d, z_d, jacinv_d, jac_d, lx, nel)
372 call neko_error(
'No device backend configured')
377 type(c_ptr) :: b, binv, jac, w3
387 call metal_coef_generate_mass(b, binv, jac, w3, lxyz, nel)
389 call neko_error(
'No device backend configured')
394 dxdr_d, dydr_d, dzdr_d, &
395 dxds_d, dyds_d, dzds_d, &
396 dxdt_d, dydt_d, dzdt_d, &
399 type(c_ptr) :: area_d, nx_d, ny_d, nz_d
400 type(c_ptr) :: dxdr_d, dydr_d, dzdr_d
401 type(c_ptr) :: dxds_d, dyds_d, dzds_d
402 type(c_ptr) :: dxdt_d, dydt_d, dzdt_d
403 type(c_ptr) :: wx_d, wy_d, wz_d
405 real(kind=
c_rp),
value :: eps
409 dxdr_d, dydr_d, dzdr_d, &
410 dxds_d, dyds_d, dzds_d, &
411 dxdt_d, dydt_d, dzdt_d, &
416 dxdr_d, dydr_d, dzdr_d, &
417 dxds_d, dyds_d, dzds_d, &
418 dxdt_d, dydt_d, dzdt_d, &
423 dxdr_d, dydr_d, dzdr_d, &
424 dxds_d, dyds_d, dzds_d, &
425 dxdt_d, dydt_d, dzdt_d, &
429 call metal_coef_generate_area_and_normal(area_d, nx_d, ny_d, nz_d, &
430 dxdr_d, dydr_d, dzdr_d, &
431 dxds_d, dyds_d, dzds_d, &
432 dxdt_d, dydt_d, dzdt_d, &
436 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.