CUDA extension of the Tridiagonal Solver Operators class.
Regular tdsops_t class is initiated and the coefficient arrays are copied into device arrays so that cuda kernels can use them.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=dp), | public, | allocatable, dimension(:) | :: | dist_fw |
fw/bw phase back subs. the auxiliary factors |
||
real(kind=dp), | public, | allocatable, dimension(:) | :: | dist_bw |
fw/bw phase back subs. the auxiliary factors |
||
real(kind=dp), | public, | allocatable, dimension(:) | :: | dist_sa |
fw/bw phase back subs. the auxiliary factors |
||
real(kind=dp), | public, | allocatable, dimension(:) | :: | dist_sc |
fw/bw phase back subs. the auxiliary factors |
||
real(kind=dp), | public, | allocatable, dimension(:) | :: | dist_af |
fw/bw phase back subs. the auxiliary factors |
||
real(kind=dp), | public, | allocatable, dimension(:) | :: | thom_f | |||
real(kind=dp), | public, | allocatable, dimension(:) | :: | thom_s | |||
real(kind=dp), | public, | allocatable, dimension(:) | :: | thom_w | |||
real(kind=dp), | public, | allocatable, dimension(:) | :: | thom_p | |||
real(kind=dp), | public, | allocatable | :: | coeffs(:) | |||
real(kind=dp), | public, | allocatable | :: | coeffs_s(:,:) | |||
real(kind=dp), | public, | allocatable | :: | coeffs_e(:,:) | |||
real(kind=dp), | public | :: | alpha | ||||
real(kind=dp), | public | :: | a | ||||
real(kind=dp), | public | :: | b | ||||
real(kind=dp), | public | :: | c | = | 0._dp | ||
real(kind=dp), | public | :: | d | = | 0._dp | ||
logical, | public | :: | periodic | ||||
integer, | public | :: | tds_n | ||||
integer, | public | :: | move | = | 0 | ||
integer, | public | :: | n_halo | ||||
real(kind=dp), | public, | device, allocatable | :: | dist_fw_dev(:) | |||
real(kind=dp), | public, | device, allocatable | :: | dist_bw_dev(:) | |||
real(kind=dp), | public, | device, allocatable | :: | dist_sa_dev(:) | |||
real(kind=dp), | public, | device, allocatable | :: | dist_sc_dev(:) | |||
real(kind=dp), | public, | device, allocatable | :: | dist_af_dev(:) | |||
real(kind=dp), | public, | device, allocatable | :: | thom_f_dev(:) | |||
real(kind=dp), | public, | device, allocatable | :: | thom_s_dev(:) | |||
real(kind=dp), | public, | device, allocatable | :: | thom_w_dev(:) | |||
real(kind=dp), | public, | device, allocatable | :: | thom_p_dev(:) | |||
real(kind=dp), | public, | device, allocatable | :: | coeffs_dev(:) | |||
real(kind=dp), | public, | device, allocatable | :: | coeffs_s_dev(:,:) | |||
real(kind=dp), | public, | device, allocatable | :: | coeffs_e_dev(:,:) |
Constructor function for the cuda_tdsops_t class. See tdsops_t for details.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | n | |||
real(kind=dp), | intent(in) | :: | delta | |||
character(len=*), | intent(in) | :: | operation | |||
character(len=*), | intent(in) | :: | scheme | |||
integer, | intent(in) | :: | bc_start | |||
integer, | intent(in) | :: | bc_end | |||
integer, | intent(in), | optional | :: | n_halo | ||
character(len=*), | intent(in), | optional | :: | from_to | ||
logical, | intent(in), | optional | :: | sym | ||
real(kind=dp), | intent(in), | optional | :: | c_nu | ||
real(kind=dp), | intent(in), | optional | :: | nu0_nu |
return value of the function
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(tdsops_t), | intent(inout) | :: | self | |||
real(kind=dp), | intent(in) | :: | delta | |||
character(len=*), | intent(in) | :: | scheme | |||
character(len=*), | intent(in) | :: | from_to | |||
integer, | intent(in) | :: | bc_start | |||
integer, | intent(in) | :: | bc_end | |||
logical, | intent(in), | optional | :: | sym |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(tdsops_t), | intent(inout) | :: | self | |||
character(len=*), | intent(in) | :: | scheme | |||
character(len=*), | intent(in) | :: | from_to | |||
integer, | intent(in) | :: | bc_start | |||
integer, | intent(in) | :: | bc_end | |||
logical, | intent(in), | optional | :: | sym |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(tdsops_t), | intent(inout) | :: | self | |||
real(kind=dp), | intent(in) | :: | delta | |||
character(len=*), | intent(in) | :: | scheme | |||
integer, | intent(in) | :: | bc_start | |||
integer, | intent(in) | :: | bc_end | |||
logical, | intent(in), | optional | :: | sym | ||
real(kind=dp), | intent(in), | optional | :: | c_nu | ||
real(kind=dp), | intent(in), | optional | :: | nu0_nu |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(tdsops_t), | intent(inout) | :: | self | |||
real(kind=dp), | intent(in) | :: | delta | |||
character(len=*), | intent(in) | :: | scheme | |||
integer, | intent(in) | :: | bc_start | |||
integer, | intent(in) | :: | bc_end | |||
logical, | intent(in), | optional | :: | sym |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(tdsops_t), | intent(inout) | :: | self | |||
real(kind=dp), | intent(in), | dimension(:) | :: | b |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(tdsops_t), | intent(inout) | :: | self | |||
real(kind=dp), | intent(in), | dimension(:) | :: | dist_b |