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, filter_alpha) 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 staggered 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) across 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.

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

low-pass filter parameter

Return Value type(tdsops_t)

return value of the function


Calls

proc~~tdsops_init~~CallsGraph proc~tdsops_init m_tdsops::tdsops_init interface~str m_logger::str proc~tdsops_init->interface~str proc~abort_run m_logger::abort_run proc~tdsops_init->proc~abort_run 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~log_warn m_logger::log_warn proc~tdsops_init->proc~log_warn proc~lowpass m_tdsops::tdsops_t%lowpass proc~tdsops_init->proc~lowpass proc~stagder_1st m_tdsops::tdsops_t%stagder_1st proc~tdsops_init->proc~stagder_1st proc~abort_run->interface~str mpi_abort mpi_abort proc~abort_run->mpi_abort mpi_barrier mpi_barrier proc~abort_run->mpi_barrier mpi_comm_rank mpi_comm_rank proc~abort_run->mpi_comm_rank mpi_comm_size mpi_comm_size proc~abort_run->mpi_comm_size mpi_finalized mpi_finalized proc~abort_run->mpi_finalized mpi_initialized mpi_initialized proc~abort_run->mpi_initialized proc~deriv_1st->proc~abort_run proc~preprocess_dist m_tdsops::tdsops_t%preprocess_dist proc~deriv_1st->proc~preprocess_dist proc~preprocess_penta_dist m_tdsops::tdsops_t%preprocess_penta_dist proc~deriv_1st->proc~preprocess_penta_dist proc~preprocess_thom m_tdsops::tdsops_t%preprocess_thom proc~deriv_1st->proc~preprocess_thom proc~deriv_2nd->proc~abort_run proc~deriv_2nd->proc~preprocess_dist proc~deriv_2nd->proc~preprocess_thom proc~interpl_mid->proc~abort_run proc~interpl_mid->proc~preprocess_dist proc~interpl_mid->proc~preprocess_thom proc~log_warn->interface~str proc~log_warn->mpi_comm_rank proc~log_warn->mpi_comm_size proc~log_warn->mpi_finalized proc~log_warn->mpi_initialized proc~lowpass->proc~abort_run proc~lowpass->proc~preprocess_dist proc~lowpass->proc~preprocess_thom proc~stagder_1st->proc~abort_run 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 proc~omptgt_tdsops_init m_omptgt_tdsops::omptgt_tdsops_init proc~omptgt_tdsops_init->proc~tdsops_init interface~cuda_tdsops_t m_cuda_tdsops::cuda_tdsops_t interface~cuda_tdsops_t->proc~cuda_tdsops_init