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.