64 use math,
only:
rzero,
rone,
copy,
cmult,
cadd,
cfill,
invcol1,
vdot3,
add2, &
88 integer,
intent(in),
optional :: n
89 type(
field_t),
intent(inout) :: a
101 call rzero(a%x, size)
107 integer,
intent(in),
optional :: n
108 type(
field_t),
intent(inout) :: a
126 integer,
intent(in),
optional :: n
128 type(
field_t),
intent(inout) :: a
140 call copy(a%x, b%x, size)
146 integer,
intent(in),
optional :: n
147 type(
field_t),
intent(inout) :: a
148 real(kind=
rp),
intent(in) :: c
160 call cmult(a%x, c, size)
166 integer,
intent(in),
optional :: n
167 type(
field_t),
intent(inout) :: a
168 real(kind=
rp),
intent(in) :: s
180 call cadd(a%x, s, size)
186 integer,
intent(in),
optional :: n
187 type(
field_t),
intent(inout) :: a
188 real(kind=
rp),
intent(in) :: c
200 call cfill(a%x, c, size)
206 integer,
intent(in),
optional :: n
207 type(
field_t),
intent(inout) :: a
227 integer,
intent(in),
optional :: n
228 type(
field_t),
intent(in) :: u1, u2, u3
229 type(
field_t),
intent(in) :: v1, v2, v3
230 type(
field_t),
intent(out) :: dot
241 u1%x_d, u2%x_d, u3%x_d, &
242 v1%x_d, v2%x_d, v3%x_d, &
255 integer,
intent(in),
optional :: n
256 type(
field_t),
intent(inout) :: a
269 call add2(a%x, b%x, size)
276 integer,
intent(in),
optional :: n
277 type(
field_t),
intent(inout) :: a
278 type(
field_t),
intent(in) :: b, c
290 call add3(a%x, b%x, c%x, size)
297 integer,
intent(in),
optional :: n
298 type(
field_t),
intent(inout) :: a
299 type(
field_t),
intent(in) :: b, c, d
311 call add4(a%x, b%x, c%x, d%x, size)
318 integer,
intent(in),
optional :: n
319 type(
field_t),
intent(inout) :: a
320 type(
field_t),
intent(inout) :: b
332 call sub2(a%x, b%x, size)
339 integer,
intent(in),
optional :: n
340 type(
field_t),
intent(inout) :: c
341 type(
field_t),
intent(inout) :: b
342 type(
field_t),
intent(out) :: a
354 call sub3(a%x, b%x, c%x, size)
363 integer,
intent(in),
optional :: n
364 type(
field_t),
intent(inout) :: a
365 type(
field_t),
intent(inout) :: b
366 real(kind=
rp),
intent(in) :: c1
378 call add2s1(a%x, b%x, c1, size)
386 integer,
intent(in),
optional :: n
387 type(
field_t),
intent(inout) :: a
388 type(
field_t),
intent(inout) :: b
389 real(kind=
rp),
intent(in) :: c1
401 call add2s2(a%x, b%x, c1, size)
408 integer,
intent(in),
optional :: n
409 type(
field_t),
intent(inout) :: a
411 real(kind=
rp),
intent(in) :: c1
430 integer,
intent(in),
optional :: n
431 type(
field_t),
intent(inout) :: a
433 real(kind=
rp),
intent(in) :: c
445 call cmult2(a%x, b%x, c, size)
452 integer,
intent(in),
optional :: n
453 type(
field_t),
intent(inout) :: a
474 integer,
intent(in),
optional :: n
475 type(
field_t),
intent(inout) :: a
488 call col2(a%x, b%x, size)
495 integer,
intent(in),
optional :: n
496 type(
field_t),
intent(inout) :: a
510 call col3(a%x, b%x, c%x, size)
517 integer,
intent(in),
optional :: n
518 type(
field_t),
intent(inout) :: a
532 call subcol3(a%x, b%x, c%x, size)
539 integer,
intent(in),
optional :: n
540 type(
field_t),
intent(inout) :: a
543 real(kind=
rp),
intent(in) :: c1, c2
555 call add3s2(a%x, b%x, c%x, c1, c2, size)
562 integer,
intent(in),
optional :: n
563 type(
field_t),
intent(inout) :: a
577 call addcol3(a%x, b%x, c%x, size)
584 integer,
intent(in),
optional :: n
585 type(
field_t),
intent(inout) :: a
600 call addcol4(a%x, b%x, c%x, d%x, size)
606 integer,
intent(in),
optional :: n
620 sum =
glsum(a%x, size)
626 integer,
intent(in),
optional :: n
627 type(
field_t),
intent(in) :: a, b
628 real(kind=
rp) :: norm
640 norm =
glsc2(a%x, b%x, size)
646 integer,
intent(in),
optional :: n
647 type(
field_t),
intent(in) :: a, b, c
648 real(kind=
rp) :: norm
660 norm =
glsc3(a%x, b%x, c%x, size)
subroutine, public device_add2(a_d, b_d, n)
Vector addition .
subroutine, public device_addcol3(a_d, b_d, c_d, n)
Returns .
subroutine, public device_col2(a_d, b_d, n)
Vector multiplication .
subroutine, public device_add2s1(a_d, b_d, c1, n)
subroutine, public device_rzero(a_d, n)
Zero a real vector.
subroutine, public device_rone(a_d, n)
Set all elements to one.
subroutine, public device_add2s2(a_d, b_d, c1, n)
Vector addition with scalar multiplication (multiplication on first argument)
subroutine, public device_invcol1(a_d, n)
Invert a vector .
subroutine, public device_col3(a_d, b_d, c_d, n)
Vector multiplication with 3 vectors .
subroutine, public device_add4(a_d, b_d, c_d, d_d, n)
subroutine, public device_cadd(a_d, c, n)
Add a scalar to vector .
subroutine, public device_vdot3(dot_d, u1_d, u2_d, u3_d, v1_d, v2_d, v3_d, n)
Compute a dot product (3-d version) assuming vector components etc.
subroutine, public device_cmult2(a_d, b_d, c, n)
Multiplication by constant c .
subroutine, public device_cmult(a_d, c, n)
Multiplication by constant c .
real(kind=rp) function, public device_glsc2(a_d, b_d, n)
Weighted inner product .
subroutine, public device_sub3(a_d, b_d, c_d, n)
Vector subtraction .
real(kind=rp) function, public device_glsc3(a_d, b_d, c_d, n)
Weighted inner product .
subroutine, public device_add3(a_d, b_d, c_d, n)
Vector addition .
real(kind=rp) function, public device_glsum(a_d, n)
Sum a vector of length n.
subroutine, public device_copy(a_d, b_d, n)
Copy a vector .
subroutine, public device_add3s2(a_d, b_d, c_d, c1, c2, n)
Returns .
subroutine, public device_subcol3(a_d, b_d, c_d, n)
Returns .
subroutine, public device_sub2(a_d, b_d, n)
Vector substraction .
subroutine, public device_cfill(a_d, c, n)
Set all elements to a constant c .
subroutine, public device_addcol4(a_d, b_d, c_d, d_d, n)
Returns .
subroutine, public device_invcol2(a_d, b_d, n)
Vector division .
subroutine, public device_addsqr2s2(a_d, b_d, c1, n)
Returns .
subroutine, public field_add2s1(a, b, c1, n)
Vector addition with scalar multiplication (multiplication on first argument)
subroutine, public field_invcol2(a, b, n)
Vector division .
subroutine field_add4(a, b, c, d, n)
Vector addition .
subroutine field_add3(a, b, c, n)
Vector addition .
subroutine, public field_cadd(a, s, n)
Add a scalar to vector .
subroutine, public field_invcol1(a, n)
Invert a vector .
subroutine, public field_col2(a, b, n)
Vector multiplication .
subroutine, public field_sub2(a, b, n)
Vector substraction .
subroutine, public field_sub3(a, b, c, n)
Vector subtraction .
subroutine, public field_cmult2(a, b, c, n)
Multiplication by constant c .
real(kind=rp) function, public field_glsc2(a, b, n)
subroutine, public field_cfill(a, c, n)
Set all elements to a constant c .
subroutine, public field_add2s2(a, b, c1, n)
Vector addition with scalar multiplication (multiplication on second argument)
real(kind=rp) function, public field_glsum(a, n)
subroutine, public field_rzero(a, n)
Zero a real vector.
subroutine, public field_addcol3(a, b, c, n)
Returns .
subroutine, public field_rone(a, n)
Set all elements to one.
subroutine, public field_add3s2(a, b, c, c1, c2, n)
Returns .
subroutine, public field_add2(a, b, n)
Vector addition .
subroutine, public field_col3(a, b, c, n)
Vector multiplication with 3 vectors .
subroutine, public field_copy(a, b, n)
Copy a vector .
subroutine, public field_subcol3(a, b, c, n)
Returns .
subroutine, public field_cmult(a, c, n)
Multiplication by constant c .
real(kind=rp) function, public field_glsc3(a, b, c, n)
subroutine, public field_addcol4(a, b, c, d, n)
Returns .
subroutine, public field_addsqr2s2(a, b, c1, n)
Returns .
subroutine, public field_vdot3(dot, u1, u2, u3, v1, v2, v3, n)
Compute a dot product (3-d version) assuming vector components etc.
subroutine, public cmult(a, c, n)
Multiplication by constant c .
subroutine, public cmult2(a, b, c, n)
Multiplication by constant c .
subroutine, public invcol2(a, b, n)
Vector division .
real(kind=rp) function, public glsc3(a, b, c, n)
Weighted inner product .
subroutine, public cadd(a, s, n)
Add a scalar to vector .
subroutine, public addsqr2s2(a, b, c1, n)
Returns .
subroutine, public add2s1(a, b, c1, n)
Vector addition with scalar multiplication (multiplication on first argument)
real(kind=rp) function, public glsc2(a, b, n)
Weighted inner product .
subroutine, public subcol3(a, b, c, n)
Returns .
subroutine, public rone(a, n)
Set all elements to one.
subroutine, public add3(a, b, c, n)
Vector addition .
real(kind=rp) function, public glsum(a, n)
Sum a vector of length n.
subroutine, public sub3(a, b, c, n)
Vector subtraction .
subroutine, public addcol4(a, b, c, d, n)
Returns .
subroutine, public add2(a, b, n)
Vector addition .
subroutine, public cfill(a, c, n)
Set all elements to a constant c .
subroutine, public add3s2(a, b, c, c1, c2, n)
Returns .
subroutine, public addcol3(a, b, c, n)
Returns .
subroutine, public invcol1(a, n)
Invert a vector .
subroutine, public col2(a, b, n)
Vector multiplication .
subroutine, public copy(a, b, n)
Copy a vector .
subroutine, public add4(a, b, c, d, n)
Vector addition .
subroutine, public col3(a, b, c, n)
Vector multiplication with 3 vectors .
subroutine, public vdot3(dot, u1, u2, u3, v1, v2, v3, n)
Compute a dot product (3-d version) assuming vector components etc.
subroutine, public rzero(a, n)
Zero a real vector.
subroutine, public sub2(a, b, n)
Vector substraction .
subroutine, public add2s2(a, b, c1, n)
Vector addition with scalar multiplication (multiplication on second argument)
integer, parameter neko_bcknd_device
integer, parameter, public rp
Global precision used in computations.