ply_calculate_coeff_strip Subroutine

private subroutine ply_calculate_coeff_strip(n, s, gam, matrix, alph, nDiagonals, block_offset, remainder, strip_lb, strip_ub, subblockingWidth)


integer, intent(in) :: n
integer, intent(in) :: s
real(kind=rk), intent(inout) :: gam(:)

Modal coefficients of the Chebyshev expansion. Size has to be: (1:indeps*params%n,nVars)

Note, that the resulting array will have changed layout, and the transformed direction will run slowest in the array.

real(kind=rk), intent(in) :: matrix(:,:)

The arraz that holds the coefficients to calculate.

real(kind=rk), intent(in) :: alph(:)

Modal coefficients of the Legendre expansion. Size has to be: (1:params%n*indeps,nVars)

The direction which is to be transformed has to run fastest in the array.

integer, intent(in) :: nDiagonals

The number of diagonals to calculcate

integer, intent(in) :: block_offset

The offset of the block relative to the origin of the whole matrix.

integer, intent(in) :: remainder

The diagonals that are not covered by any block.

integer, intent(in) :: strip_lb

The lower bound of the strip to calculate.

integer, intent(in) :: strip_ub

The upper bound of the strip to calculate.

integer, intent(in) :: subblockingWidth

The subblocking width defines the size of the blocking of the diagonal strides, i.e. in y direction. This subblocking is used to get a better cache locality.

Called by

proc~~ply_calculate_coeff_strip~~CalledByGraph proc~ply_calculate_coeff_strip ply_calculate_coeff_strip proc~ply_fpt_exec_striped ply_fpt_exec_striped proc~ply_fpt_exec_striped->proc~ply_calculate_coeff_strip proc~ply_fpt_exec ply_fpt_exec proc~ply_fpt_exec->proc~ply_calculate_coeff_strip proc~ply_fpt_single ply_fpt_single proc~ply_fpt_single->proc~ply_calculate_coeff_strip proc~ply_legtopnt_lobatto_single ply_legToPnt_lobatto_single proc~ply_legtopnt_lobatto_single->proc~ply_fpt_single proc~ply_legtopnt_lobatto_vec ply_legToPnt_lobatto_vec proc~ply_legtopnt_lobatto_vec->proc~ply_fpt_exec_striped proc~ply_pnttoleg_single ply_pntToLeg_single proc~ply_pnttoleg_single->proc~ply_fpt_single proc~ply_pnttoleg_lobatto_single ply_pntToLeg_lobatto_single proc~ply_pnttoleg_lobatto_single->proc~ply_fpt_single proc~ply_pnttoleg_vec ply_pntToLeg_vec proc~ply_pnttoleg_vec->proc~ply_fpt_exec_striped proc~ply_pnttoleg_lobatto_vec ply_pntToLeg_lobatto_vec proc~ply_pnttoleg_lobatto_vec->proc~ply_fpt_exec_striped proc~ply_legtopnt_vec ply_legToPnt_vec proc~ply_legtopnt_vec->proc~ply_fpt_exec_striped proc~ply_legtopnt_single ply_legToPnt_single proc~ply_legtopnt_single->proc~ply_fpt_single



integer, private :: m
integer, private :: m_next
integer, private :: iFun
integer, private :: iVal
integer, private :: indep
integer, private :: row_off
integer, private :: col_off
integer, private :: iDiag
integer, private :: iDiag_next
integer, private :: diag_off
integer, private :: m_blocking

The start of the current block of m