tdsops_init Function

public function tdsops_init(n_tds, delta, operation, scheme, bc_start, bc_end, stretch, stretch_correct, n_halo, from_to, sym, c_nu, nu0_nu) result(tdsops)

Constructor function for the tdsops_t class.

'n_tds', 'delta', 'operation', 'scheme', 'bc_start', and 'bc_end' are necessary arguments. The remaining arguments are optional.

'stretch' is for obtaining the correct derivations in a stretched mesh 'stretch_correct' is for correcting the second derivative with the first

'from_to' is necessary for interpolation and staggared derivative, and it can be 'v2p' or 'p2v'. If the specific region the instance is operating is not a boundary region, then 'bc_start' and 'bc_end' are BC_HALO.

'sym' is relevant when the BC is free-slip. If sym is .true. then it means the field we operate on is assumed to be an even function (symmetric, cos type) accross the boundary. If it is .false. it means the field is assumed to be an odd function (anti-symmetric, sin type).

'c_nu', 'nu0_nu' are relevant when operation is second order derivative and scheme is compact6-hyperviscous.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n_tds

Tridiagonal system size

real(kind=dp), intent(in) :: delta

Grid spacing

character(len=*), intent(in) :: operation
character(len=*), intent(in) :: scheme
integer, intent(in) :: bc_start

Boundary Cond.

integer, intent(in) :: bc_end

Boundary Cond.

real(kind=dp), intent(in), optional :: stretch(:)

Stretching coefficients

real(kind=dp), intent(in), optional :: stretch_correct(:)

Stretch correction

integer, intent(in), optional :: n_halo

Number of halo cells

character(len=*), intent(in), optional :: from_to

'v2p' or 'p2v'

logical, intent(in), optional :: sym

(==npaire), only for Neumann BCs

real(kind=dp), intent(in), optional :: c_nu

params for hypervisc.

real(kind=dp), intent(in), optional :: nu0_nu

params for hypervisc.

Return Value type(tdsops_t)

return value of the function


Calls

proc~~tdsops_init~~CallsGraph proc~tdsops_init m_tdsops::tdsops_init proc~deriv_1st m_tdsops::tdsops_t%deriv_1st proc~tdsops_init->proc~deriv_1st proc~deriv_2nd m_tdsops::tdsops_t%deriv_2nd proc~tdsops_init->proc~deriv_2nd proc~interpl_mid m_tdsops::tdsops_t%interpl_mid proc~tdsops_init->proc~interpl_mid proc~stagder_1st m_tdsops::tdsops_t%stagder_1st proc~tdsops_init->proc~stagder_1st proc~preprocess_dist m_tdsops::tdsops_t%preprocess_dist proc~deriv_1st->proc~preprocess_dist proc~preprocess_thom m_tdsops::tdsops_t%preprocess_thom proc~deriv_1st->proc~preprocess_thom proc~deriv_2nd->proc~preprocess_dist proc~deriv_2nd->proc~preprocess_thom proc~interpl_mid->proc~preprocess_dist proc~interpl_mid->proc~preprocess_thom proc~stagder_1st->proc~preprocess_dist proc~stagder_1st->proc~preprocess_thom

Called by

proc~~tdsops_init~~CalledByGraph proc~tdsops_init m_tdsops::tdsops_init interface~tdsops_t m_tdsops::tdsops_t interface~tdsops_t->proc~tdsops_init proc~cuda_tdsops_init m_cuda_tdsops::cuda_tdsops_init proc~cuda_tdsops_init->proc~tdsops_init interface~cuda_tdsops_t m_cuda_tdsops::cuda_tdsops_t interface~cuda_tdsops_t->proc~cuda_tdsops_init