37  use, 
intrinsic :: iso_c_binding
 
   59          uulag1, uulag2, vvlag1, vvlag2, wwlag1, wwlag2, ab1, ab2, ab3, nab, n)&
 
   60          bind(c, name=
'rhs_maker_sumab_hip')
 
   61       use, 
intrinsic :: iso_c_binding
 
   63       type(c_ptr), 
value :: u_d, v_d, w_d, uu_d, vv_d, ww_d
 
   64       type(c_ptr), 
value :: uulag1, uulag2, vvlag1, vvlag2, wwlag1, wwlag2
 
   65       real(c_rp) :: ab1, ab2, ab3
 
   66       integer(c_int) :: nab, n
 
 
   72                                  abx2_d, aby2_d, abz2_d, &
 
   73                                  bfx_d, bfy_d, bfz_d, &
 
   74                                  rho, ab1, ab2, ab3, n) &
 
   75                                  bind(c, name=
'rhs_maker_ext_hip')
 
   76       use, 
intrinsic :: iso_c_binding
 
   78       type(c_ptr), 
value :: abx1_d, aby1_d, abz1_d
 
   79       type(c_ptr), 
value :: abx2_d, aby2_d, abz2_d
 
   80       type(c_ptr), 
value :: bfx_d, bfy_d, bfz_d
 
   81       real(c_rp) :: rho, ab1, ab2, ab3
 
 
   88          wlag1_d, wlag2_d, bfx_d, bfy_d, bfz_d, u_d, v_d, w_d, B_d, &
 
   89          rho, dt, bd2, bd3, bd4, nbd, n) bind(c, name='rhs_maker_bdf_hip')
 
   90       use, 
intrinsic :: iso_c_binding
 
   92       type(c_ptr), 
value :: ulag1_d, ulag2_d, vlag1_d
 
   93       type(c_ptr), 
value :: vlag2_d, wlag1_d, wlag2_d
 
   94       type(c_ptr), 
value :: bfx_d, bfy_d, bfz_d, u_d, v_d, w_d, B_d
 
   95       reaL(c_rp) :: rho, dt, bd2, bd3, bd4
 
   96       integer(c_int) :: nbd, n
 
 
  102          uulag1, uulag2, vvlag1, vvlag2, wwlag1, wwlag2, ab1, ab2, ab3, nab, n)&
 
  103          bind(c, name=
'rhs_maker_sumab_cuda')
 
  104       use, 
intrinsic :: iso_c_binding
 
  106       type(c_ptr), 
value :: u_d, v_d, w_d, uu_d, vv_d, ww_d
 
  107       type(c_ptr), 
value :: uulag1, uulag2, vvlag1, vvlag2, wwlag1, wwlag2
 
  108       real(c_rp) :: ab1, ab2, ab3
 
  109       integer(c_int) :: nab, n
 
  115                                   abx2_d, aby2_d, abz2_d, &
 
  116                                   bfx_d, bfy_d, bfz_d, &
 
  117                                   rho, ab1, ab2, ab3, n) &
 
  118                                   bind(c, name=
'rhs_maker_ext_cuda')
 
  119       use, 
intrinsic :: iso_c_binding
 
  121       type(c_ptr), 
value :: abx1_d, aby1_d, abz1_d
 
  122       type(c_ptr), 
value :: abx2_d, aby2_d, abz2_d
 
  123       type(c_ptr), 
value :: bfx_d, bfy_d, bfz_d
 
  124       real(c_rp) :: rho, ab1, ab2, ab3
 
  131          wlag1_d, wlag2_d, bfx_d, bfy_d, bfz_d, u_d, v_d, w_d, B_d, &
 
  132          rho, dt, bd2, bd3, bd4, nbd, n) bind(c, name='rhs_maker_bdf_cuda')
 
  133       use, 
intrinsic :: iso_c_binding
 
  135       type(c_ptr), 
value :: ulag1_d, ulag2_d, vlag1_d
 
  136       type(c_ptr), 
value :: vlag2_d, wlag1_d, wlag2_d
 
  137       type(c_ptr), 
value :: bfx_d, bfy_d, bfz_d, u_d, v_d, w_d, B_d
 
  138       reaL(c_rp) :: rho, dt, bd2, bd3, bd4
 
  139       integer(c_int) :: nbd, n
 
  145          uulag1, uulag2, vvlag1, vvlag2, wwlag1, wwlag2, ab1, ab2, ab3, nab, n)&
 
  146          bind(c, name=
'rhs_maker_sumab_opencl')
 
  147       use, 
intrinsic :: iso_c_binding
 
  149       type(c_ptr), 
value :: u_d, v_d, w_d, uu_d, vv_d, ww_d
 
  150       type(c_ptr), 
value :: uulag1, uulag2, vvlag1, vvlag2, wwlag1, wwlag2
 
  151       real(c_rp) :: ab1, ab2, ab3
 
  152       integer(c_int) :: nab, n
 
  158                                     abx2_d, aby2_d, abz2_d, &
 
  159                                     bfx_d, bfy_d, bfz_d, &
 
  160                                     rho, ab1, ab2, ab3, n) &
 
  161                                     bind(c, name=
'rhs_maker_ext_opencl')
 
  162       use, 
intrinsic :: iso_c_binding
 
  164       type(c_ptr), 
value :: abx1_d, aby1_d, abz1_d
 
  165       type(c_ptr), 
value :: abx2_d, aby2_d, abz2_d
 
  166       type(c_ptr), 
value :: bfx_d, bfy_d, bfz_d
 
  167       real(c_rp) :: rho, ab1, ab2, ab3
 
  174          wlag1_d, wlag2_d, bfx_d, bfy_d, bfz_d, u_d, v_d, w_d, B_d, &
 
  175          rho, dt, bd2, bd3, bd4, nbd, n) bind(c, name='rhs_maker_bdf_opencl')
 
  176       use, 
intrinsic :: iso_c_binding
 
  178       type(c_ptr), 
value :: ulag1_d, ulag2_d, vlag1_d
 
  179       type(c_ptr), 
value :: vlag2_d, wlag1_d, wlag2_d
 
  180       type(c_ptr), 
value :: bfx_d, bfy_d, bfz_d, u_d, v_d, w_d, B_d
 
  181       reaL(c_rp) :: rho, dt, bd2, bd3, bd4
 
  182       integer(c_int) :: nbd, n
 
  189  subroutine rhs_maker_sumab_device(u, v, w, uu, vv, ww, uulag, vvlag, wwlag, ab, nab)
 
  190    type(field_t), 
intent(inout) :: u,v, w
 
  191    type(field_t), 
intent(inout) :: uu, vv, ww
 
  192    type(field_series_t), 
intent(inout) :: uulag, vvlag, wwlag
 
  193    real(kind=rp), 
dimension(3), 
intent(in) :: ab
 
  194    integer, 
intent(in) :: nab
 
  198         uulag%lf(1)%x_d, uulag%lf(2)%x_d, vvlag%lf(1)%x_d, vvlag%lf(2)%x_d, &
 
  199         wwlag%lf(1)%x_d, wwlag%lf(2)%x_d, ab(1), ab(2), ab(3), nab, &
 
  203         uulag%lf(1)%x_d, uulag%lf(2)%x_d, vvlag%lf(1)%x_d, vvlag%lf(2)%x_d, &
 
  204         wwlag%lf(1)%x_d, wwlag%lf(2)%x_d, ab(1), ab(2), ab(3), nab, &
 
  208         uulag%lf(1)%x_d, uulag%lf(2)%x_d, vvlag%lf(1)%x_d, vvlag%lf(2)%x_d, &
 
  209         wwlag%lf(1)%x_d, wwlag%lf(2)%x_d, ab(1), ab(2), ab(3), nab, &
 
  216                           fx_laglag, fy_laglag, fz_laglag, fx, fy, fz, &
 
  218    type(field_t), 
intent(inout) :: temp1, temp2, temp3
 
  219    type(field_t), 
intent(inout) :: fx_lag, fy_lag, fz_lag
 
  220    type(field_t), 
intent(inout) :: fx_laglag, fy_laglag, fz_laglag
 
  221    real(kind=rp), 
intent(inout) :: rho, ext_coeffs(4)
 
  222    integer, 
intent(in) :: n
 
  223    real(kind=rp), 
intent(inout) :: fx(n), fy(n), fz(n)
 
  224    type(c_ptr) :: fx_d, fy_d, fz_d
 
  232                           fx_laglag%x_d, fy_laglag%x_d, fz_laglag%x_d, &
 
  233                           fx_d, fy_d, fz_d, rho, &
 
  234                           ext_coeffs(1), ext_coeffs(2), ext_coeffs(3), n)
 
  237                            fx_laglag%x_d, fy_laglag%x_d, fz_laglag%x_d, &
 
  238                            fx_d, fy_d, fz_d, rho, &
 
  239                            ext_coeffs(1), ext_coeffs(2), ext_coeffs(3), n)
 
  242                              fx_laglag%x_d, fy_laglag%x_d, fz_laglag%x_d, &
 
  243                              fx_d, fy_d, fz_d, rho, &
 
  244                              ext_coeffs(1), ext_coeffs(2), ext_coeffs(3), n)
 
 
  250                               ulag, vlag, wlag, bfx, bfy, bfz, &
 
  251                               u, v, w, B, rho, dt, bd, nbd, n)
 
  252    integer, 
intent(in) :: n, nbd
 
  253    type(field_t), 
intent(inout) :: ta1, ta2, ta3
 
  254    type(field_t), 
intent(in) :: u, v, w
 
  255    type(field_t), 
intent(inout) :: tb1, tb2, tb3
 
  256    type(field_series_t), 
intent(in) :: ulag, vlag, wlag
 
  257    real(kind=rp), 
intent(inout) :: bfx(n), bfy(n), bfz(n)
 
  258    real(kind=rp), 
intent(in) :: b(n)
 
  259    real(kind=rp), 
intent(in) :: dt, rho, bd(10)
 
  260    type(c_ptr) :: bfx_d, bfy_d, bfz_d, b_d
 
  269                           vlag%lf(1)%x_d, vlag%lf(2)%x_d, &
 
  270                           wlag%lf(1)%x_d, wlag%lf(2)%x_d, &
 
  271                           bfx_d, bfy_d, bfz_d, u%x_d, v%x_d, w%x_d, &
 
  272                           b_d, rho, dt, bd(2), bd(3), bd(4), nbd, n)
 
  275                            vlag%lf(1)%x_d, vlag%lf(2)%x_d, &
 
  276                            wlag%lf(1)%x_d, wlag%lf(2)%x_d, &
 
  277                            bfx_d, bfy_d, bfz_d, u%x_d, v%x_d, w%x_d, &
 
  278                            b_d, rho, dt, bd(2), bd(3), bd(4), nbd, n)
 
  281                              vlag%lf(1)%x_d, vlag%lf(2)%x_d, &
 
  282                              wlag%lf(1)%x_d, wlag%lf(2)%x_d, &
 
  283                              bfx_d, bfy_d, bfz_d, u%x_d, v%x_d, w%x_d, &
 
  284                              b_d, rho, dt, bd(2), bd(3), bd(4), nbd, n)
 
 
Return the device pointer for an associated Fortran array.
 
Device abstraction, common interface for various accelerators.
 
subroutine rhs_maker_sumab_device(u, v, w, uu, vv, ww, uulag, vvlag, wwlag, ab, nab)
 
subroutine rhs_maker_ext_device(fx_lag, fy_lag, fz_lag, fx_laglag, fy_laglag, fz_laglag, fx, fy, fz, rho, ext_coeffs, n)
 
subroutine rhs_maker_bdf_device(ulag, vlag, wlag, bfx, bfy, bfz, u, v, w, b, rho, dt, bd, nbd, n)
 
Routines to generate the right-hand sides for the convection-diffusion equation. Employs the EXT/BDF ...
 
void rhs_maker_sumab_opencl(void *u, void *v, void *w, void *uu, void *vv, void *ww, void *ulag1, void *ulag2, void *vlag1, void *vlag2, void *wlag1, void *wlag2, real *ext1, real *ext2, real *ext3, int *nab, int *n)
 
void rhs_maker_ext_opencl(void *abx1, void *aby1, void *abz1, void *abx2, void *aby2, void *abz2, void *bfx, void *bfy, void *bfz, real *rho, real *ext1, real *ext2, real *ext3, int *n)
 
void rhs_maker_bdf_opencl(void *ulag1, void *ulag2, void *vlag1, void *vlag2, void *wlag1, void *wlag2, void *bfx, void *bfy, void *bfz, void *u, void *v, void *w, void *B, real *rho, real *dt, real *bd2, real *bd3, real *bd4, int *nbd, int *n)
 
void rhs_maker_ext_cuda(void *abx1, void *aby1, void *abz1, void *abx2, void *aby2, void *abz2, void *bfx, void *bfy, void *bfz, real *rho, real *ab1, real *ab2, real *ab3, int *n)
 
void rhs_maker_bdf_cuda(void *ulag1, void *ulag2, void *vlag1, void *vlag2, void *wlag1, void *wlag2, void *bfx, void *bfy, void *bfz, void *u, void *v, void *w, void *B, real *rho, real *dt, real *bd2, real *bd3, real *bd4, int *nbd, int *n)
 
void rhs_maker_sumab_cuda(void *u, void *v, void *w, void *uu, void *vv, void *ww, void *ulag1, void *ulag2, void *vlag1, void *vlag2, void *wlag1, void *wlag2, real *ab1, real *ab2, real *ab3, int *nab, int *n)
 
Abstract type to add contributions to F from lagged BD terms.
 
Abstract type to sum up contributions to kth order extrapolation scheme.
 
Abstract type to compute extrapolated velocity field for the pressure equation.