34 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
35 use num_types,
only: rp, c_rp
36 use utils,
only: neko_error
37 use comm,
only: neko_comm, pe_size, mpi_real_precision
38 use mpi_f08,
only: mpi_sum, mpi_in_place, mpi_allreduce
62 type(c_ptr) :: low_d, upp_d, x_d, xmin_d, xmax_d
66 call neko_error(
'no device backend configured')
70 call neko_error(
'no device backend configured')
72 call neko_error(
'no device backend configured')
78 xmax_d, asydecr, asyincr, n)
79 type(c_ptr) :: low_d, upp_d, x_d, xold1_d, xold2_d, xmin_d, xmax_d
80 real(c_rp) :: asydecr, asyincr
83 call neko_error(
'no device backend configured')
88 call neko_error(
'no device backend configured')
90 call neko_error(
'no device backend configured')
95 max_d, alpha_d, beta_d, p0j_d, q0j_d, pij_d, qij_d, n, m)
96 type(c_ptr) :: x_d, df0dx_d, dfdx_d, low_d, upp_d, min_d, max_d, &
97 alpha_d, beta_d, p0j_d, q0j_d, pij_d, qij_d
100 call neko_error(
'no device backend configured')
103 alpha_d, beta_d, p0j_d, q0j_d, pij_d, qij_d, n, m)
105 call neko_error(
'no device backend configured2')
107 call neko_error(
'no device backend configured3')
112 type(c_ptr) :: x_d, low_d, upp_d, pij_d, qij_d, bi_d
115 call neko_error(
'no device backend configured')
119 call neko_error(
'no device backend configured')
121 call neko_error(
'no device backend configured')
126 type(c_ptr) :: xsi_d, x_d, alpha_d
129 call neko_error(
'no device backend configured')
133 call neko_error(
'no device backend configured')
135 call neko_error(
'no device backend configured')
140 type(c_ptr) :: a_d, c_d
144 call neko_error(
'no device backend configured')
148 call neko_error(
'no device backend configured')
150 call neko_error(
'no device backend configured')
156 subroutine device_rex(rex_d, x_d, low_d, upp_d, pij_d, p0j_d, qij_d, &
157 q0j_d, lambda_d, xsi_d, eta_d, n, m)
158 type(c_ptr) :: rex_d, x_d, low_d, upp_d, pij_d, p0j_d, qij_d, q0j_d, &
159 lambda_d, xsi_d, eta_d
160 integer(c_int) :: n, m
162 call neko_error(
'no device backend configured')
164 call cuda_rex(rex_d, x_d, low_d, upp_d, pij_d, p0j_d, qij_d, q0j_d, &
165 lambda_d, xsi_d, eta_d, n, m)
167 call neko_error(
'no device backend configured')
169 call neko_error(
'no device backend configured')
174 type(c_ptr) :: a_d, b_d
180 call neko_error(
'no device backend configured')
184 call neko_error(
'no device backend configured')
186 call neko_error(
'no device backend configured')
191 type(c_ptr) :: relambda_d, x_d, upp_d, low_d, pij_d, qij_d
192 integer(c_int) :: n, m
194 call neko_error(
'no device backend configured')
196 call cuda_relambda(relambda_d, x_d, upp_d, low_d, pij_d, qij_d, n, m)
198 call neko_error(
'no device backend configured')
200 call neko_error(
'no device backend configured')
205 type(c_ptr):: rexsi_d, xsi_d, x_d, alpha_d
206 real(kind=rp) :: epsi
209 call neko_error(
'no device backend configured')
213 call neko_error(
'no device backend configured')
215 call neko_error(
'no device backend configured')
226 call neko_error(
'no device backend configured')
230 call neko_error(
'no device backend configured')
232 call neko_error(
'no device backend configured')
243 call neko_error(
'no device backend configured')
247 call neko_error(
'no device backend configured')
249 call neko_error(
'no device backend configured')
253 subroutine device_delx(delx_d, x_d, low_d, upp_d, pij_d, qij_d, p0j_d, &
254 q0j_d, alpha_d, beta_d, lambda_d, epsi, n, m)
255 type(c_ptr):: delx_d, x_d, low_d, upp_d, pij_d, qij_d, p0j_d, q0j_d, &
256 alpha_d, beta_d, lambda_d
257 real(kind=rp) :: epsi
258 integer(c_int) :: n, m
260 call neko_error(
'no device backend configured')
262 call cuda_delx(delx_d, x_d, low_d, upp_d, pij_d, qij_d, p0j_d, q0j_d, &
263 alpha_d, beta_d, lambda_d, epsi, n, m)
265 call neko_error(
'no device backend configured')
267 call neko_error(
'no device backend configured')
272 type(c_ptr):: a_d, b_d
276 call neko_error(
'no device backend configured')
280 call neko_error(
'no device backend configured')
282 call neko_error(
'no device backend configured')
287 subroutine device_gg(GG_d, x_d, low_d, upp_d, pij_d, qij_d, n, m)
288 type(c_ptr):: gg_d, x_d, low_d, upp_d, pij_d, qij_d
289 integer(c_int) :: n, m
291 call neko_error(
'no device backend configured')
293 call cuda_gg(gg_d, x_d, low_d, upp_d, pij_d, qij_d, n, m)
295 call neko_error(
'no device backend configured')
297 call neko_error(
'no device backend configured')
301 subroutine device_diagx(diagx_d, x_d, xsi_d, low_d, upp_d, p0j_d, q0j_d, &
302 pij_d, qij_d, alpha_d, beta_d, eta_d, lambda_d, n, m)
303 type(c_ptr):: diagx_d, x_d, xsi_d, low_d, upp_d, p0j_d, q0j_d, pij_d, &
305 beta_d, eta_d, lambda_d
306 integer(c_int) :: n, m
308 call neko_error(
'no device backend configured')
310 call cuda_diagx(diagx_d, x_d, xsi_d, low_d, upp_d, p0j_d, q0j_d, pij_d, &
311 qij_d, alpha_d, beta_d, eta_d, lambda_d, n, m)
313 call neko_error(
'no device backend configured')
315 call neko_error(
'no device backend configured')
321 type(c_ptr):: bb_d, gg_d, delx_d, diagx_d
322 integer(c_int) :: n, m
324 call neko_error(
'no device backend configured')
326 call cuda_bb(bb_d, gg_d, delx_d, diagx_d, n, m)
328 call neko_error(
'no device backend configured')
330 call neko_error(
'no device backend configured')
335 type(c_ptr):: bb_d, dellambda_d, dely_d, d_d, mu_d, y_d
339 call neko_error(
'no device backend configured')
341 call cuda_updatebb(bb_d, dellambda_d, dely_d, d_d, mu_d, y_d, delz, m)
343 call neko_error(
'no device backend configured')
345 call neko_error(
'no device backend configured')
350 type(c_ptr):: aa_d, gg_d, diagx_d
351 integer(c_int) :: n, m
353 call neko_error(
'no device backend configured')
355 call cuda_aa(aa_d, gg_d, diagx_d, n, m)
357 call neko_error(
'no device backend configured')
359 call neko_error(
'no device backend configured')
364 y_d, a_d, zeta, z, m)
365 type(c_ptr):: aa_d, globaltmp_mm_d, s_d, lambda_d, d_d, mu_d, y_d, a_d
367 real(c_rp) :: zeta, z
369 call neko_error(
'no device backend configured')
371 call cuda_updateaa(aa_d, globaltmp_mm_d, s_d, lambda_d, d_d, mu_d, y_d, &
374 call neko_error(
'no device backend configured')
376 call neko_error(
'no device backend configured')
380 subroutine device_dx(dx_d, delx_d, diagx_d, GG_d, dlambda_d, n, m)
381 type(c_ptr):: dx_d, delx_d, diagx_d, gg_d, dlambda_d
382 integer(c_int) :: n, m
384 call neko_error(
'no device backend configured')
386 call cuda_dx(dx_d, delx_d, diagx_d, gg_d, dlambda_d, n, m)
388 call neko_error(
'no device backend configured')
390 call neko_error(
'no device backend configured')
394 subroutine device_dy(dy_d, dely_d, dlambda_d, d_d, mu_d, y_d, n)
395 type(c_ptr):: dy_d, dely_d, dlambda_d, d_d, mu_d, y_d
398 call neko_error(
'no device backend configured')
400 call cuda_dy(dy_d, dely_d, dlambda_d, d_d, mu_d, y_d, n)
402 call neko_error(
'no device backend configured')
404 call neko_error(
'no device backend configured')
408 subroutine device_dxsi(dxsi_d, xsi_d, dx_d, x_d, alpha_d, epsi, n)
409 type(c_ptr):: dxsi_d, xsi_d, dx_d, x_d, alpha_d
413 call neko_error(
'no device backend configured')
415 call cuda_dxsi(dxsi_d, xsi_d, dx_d, x_d, alpha_d, epsi, n)
417 call neko_error(
'no device backend configured')
419 call neko_error(
'no device backend configured')
424 type(c_ptr):: deta_d, eta_d, dx_d, x_d, beta_d
428 call neko_error(
'no device backend configured')
430 call cuda_deta(deta_d, eta_d, dx_d, x_d, beta_d, epsi, n)
432 call neko_error(
'no device backend configured')
434 call neko_error(
'no device backend configured')
439 type(c_ptr):: dxx_d, xx_d
441 real(kind=rp),
intent(in) :: cons
446 call neko_error(
'no device backend configured')
450 call neko_error(
'no device backend configured')
452 call neko_error(
'no device backend configured')
458 type(c_ptr):: dx_d, x_d, alpha_d
459 real(kind=rp),
intent(in) :: cons
465 call neko_error(
'no device backend configured')
469 call neko_error(
'no device backend configured')
471 call neko_error(
'no device backend configured')
479 type(c_ptr):: rex_d, df0dx_d, dfdx_d, xsi_d, eta_d, lambda_d
480 integer(c_int) :: n, m
482 call neko_error(
'no device backend configured')
484 call cuda_kkt_rex(rex_d, df0dx_d, dfdx_d, xsi_d, eta_d, lambda_d, n, m)
486 call neko_error(
'no device backend configured')
488 call neko_error(
'no device backend configured')
subroutine, public device_dx(dx_d, delx_d, diagx_d, gg_d, dlambda_d, n, m)
subroutine, public device_mma_gensub1(low_d, upp_d, x_d, xmin_d, xmax_d, asyinit, n)
subroutine, public device_relambda(relambda_d, x_d, upp_d, low_d, pij_d, qij_d, n, m)
real(kind=rp) function, public device_maxval2(dxx_d, xx_d, cons, n)
subroutine, public device_delx(delx_d, x_d, low_d, upp_d, pij_d, qij_d, p0j_d, q0j_d, alpha_d, beta_d, lambda_d, epsi, n, m)
subroutine, public device_mma_gensub4(x_d, low_d, upp_d, pij_d, qij_d, n, m, bi_d)
subroutine, public device_sub2cons2(rexsi_d, xsi_d, x_d, alpha_d, epsi, n)
subroutine, public device_deta(deta_d, eta_d, dx_d, x_d, beta_d, epsi, n)
subroutine, public device_rex(rex_d, x_d, low_d, upp_d, pij_d, p0j_d, qij_d, q0j_d, lambda_d, xsi_d, eta_d, n, m)
real(kind=rp) function, public device_maxval3(dx_d, x_d, alpha_d, cons, n)
subroutine, public device_diagx(diagx_d, x_d, xsi_d, low_d, upp_d, p0j_d, q0j_d, pij_d, qij_d, alpha_d, beta_d, eta_d, lambda_d, n, m)
subroutine, public device_mma_gensub3(x_d, df0dx_d, dfdx_d, low_d, upp_d, min_d, max_d, alpha_d, beta_d, p0j_d, q0j_d, pij_d, qij_d, n, m)
real(kind=rp) function, public device_norm(rex_d, n)
subroutine, public device_mma_max(xsi_d, x_d, alpha_d, n)
subroutine, public device_bb(bb_d, gg_d, delx_d, diagx_d, n, m)
subroutine, public device_dxsi(dxsi_d, xsi_d, dx_d, x_d, alpha_d, epsi, n)
subroutine, public device_mma_gensub2(low_d, upp_d, x_d, xold1_d, xold2_d, xmin_d, xmax_d, asydecr, asyincr, n)
subroutine, public device_updatebb(bb_d, dellambda_d, dely_d, d_d, mu_d, y_d, delz, m)
subroutine, public device_updateaa(aa_d, globaltmp_mm_d, s_d, lambda_d, d_d, mu_d, y_d, a_d, zeta, z, m)
real(kind=rp) function, public device_maxval(rex_d, n)
subroutine, public device_aa(aa_d, gg_d, diagx_d, n, m)
subroutine, public device_kkt_rex(rex_d, df0dx_d, dfdx_d, xsi_d, eta_d, lambda_d, n, m)
real(kind=rp) function, public device_lcsc2(a_d, b_d, n)
subroutine, public device_dy(dy_d, dely_d, dlambda_d, d_d, mu_d, y_d, n)
subroutine, public device_gg(gg_d, x_d, low_d, upp_d, pij_d, qij_d, n, m)
subroutine, public device_add2inv2(a_d, b_d, c, n)
subroutine, public device_max2(a_d, b, c_d, d, n)