wenoof_create Subroutine

public subroutine wenoof_create(interpolator_type, S, wenoof_interpolator, eps)

WenOOF creator, create a concrete WENO interpolator object.

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: interpolator_type

Type of the interpolator.

integer(kind=I_P), intent(in) :: S

Stencil dimension.

class(interpolator), intent(out), allocatable:: wenoof_interpolator

The concrete WENO interpolator.

real(kind=R_P), intent(in), optional :: eps

Parameter for avoiding division by zero.

Calls

proc~~wenoof_create~~CallsGraph proc~wenoof_create wenoof_create proc~create_interpolator_js_constructor create_interpolator_js_constructor proc~wenoof_create->proc~create_interpolator_js_constructor proc~create_polynomials_js_constructor create_polynomials_js_constructor proc~wenoof_create->proc~create_polynomials_js_constructor proc~create_optimal_weights_js_constructor create_optimal_weights_js_constructor proc~wenoof_create->proc~create_optimal_weights_js_constructor proc~create_smoothness_indicators_js_constructor create_smoothness_indicators_js_constructor proc~wenoof_create->proc~create_smoothness_indicators_js_constructor proc~create_alpha_coefficients_js_constructor create_alpha_coefficients_js_constructor proc~wenoof_create->proc~create_alpha_coefficients_js_constructor
Help

Called By

proc~~wenoof_create~~CalledByGraph proc~wenoof_create wenoof_create program~sin_reconstruction sin_reconstruction program~sin_reconstruction->proc~wenoof_create
Help

Source Code


Source Code

  subroutine wenoof_create(interpolator_type, S, wenoof_interpolator, eps)
  !< WenOOF creator, create a concrete WENO interpolator object.
  character(*),                     intent(in)           :: interpolator_type   !< Type of the interpolator.
  integer(I_P),                     intent(in)           :: S                   !< Stencil dimension.
  class(interpolator), allocatable, intent(out)          :: wenoof_interpolator !< The concrete WENO interpolator.
  real(R_P),                        intent(in), optional :: eps                 !< Parameter for avoiding division by zero.
  class(smoothness_indicators_constructor), allocatable  :: is_constructor      !< Smoothness indicators constructor.
  class(alpha_coefficients_constructor),    allocatable  :: alpha_constructor   !< Alpha coefficients constructor.
  class(optimal_weights_constructor),       allocatable  :: weights_constructor !< Optimal weights constructor.
  class(polynomials_constructor),           allocatable  :: polynom_constructor !< Polynomials constructor.
  class(interpolator_constructor),          allocatable  :: interp_constructor  !< Interpolator constructor.

  select case(trim(adjustl(interpolator_type)))
  case('JS')
    call create_smoothness_indicators_js_constructor(S=S, constructor=is_constructor)
    call create_alpha_coefficients_js_constructor(S=S, constructor=alpha_constructor)
    call create_optimal_weights_js_constructor(S=S, constructor=weights_constructor)
    call create_polynomials_js_constructor(S=S, constructor=polynom_constructor)
    call create_interpolator_js_constructor(is=is_constructor,           &
                                            alpha=alpha_constructor,     &
                                            weights=weights_constructor, &
                                            polynom=polynom_constructor, &
                                            S=S, eps=eps,                &
                                            constructor=interp_constructor)
    allocate(interpolator_js :: wenoof_interpolator)
    call wenoof_interpolator%create(constructor=interp_constructor)
  case('JS-Z')
    ! @TODO add Z support
  case('JS-M')
    ! @TODO add M support
  case default
    ! @TODO add error handling
  endselect
  endsubroutine wenoof_create


add_3d_plot add_bar add_contour add_plot add_str bctoi_I1P bctoi_I2P bctoi_I4P bctoi_I8P bcton bctor_R16P bctor_R4P bctor_R8P bit_size bit_size bit_size_chr bit_size_R16P bit_size_R4P bit_size_R8P bstr bstr_I1P bstr_I2P bstr_I4P bstr_I8P bstr_R16P bstr_R4P bstr_R8P byte_size byte_size_chr byte_size_I1P byte_size_I2P byte_size_I4P byte_size_I8P byte_size_R16P byte_size_R4P byte_size_R8P check_endian compact_real_string compute compute compute compute compute compute compute compute compute compute create create create create create create create create create create_alpha_coefficients create_alpha_coefficients_js_constructor create_alpha_coefficients_m_constructor create_alpha_coefficients_z_constructor create_base_object create_interpolator_constructor create_interpolator_js_constructor create_optimal_weights create_optimal_weights_js_constructor create_polynomials create_polynomials_js_constructor create_smoothness_indicators create_smoothness_indicators_js_constructor ctoi_I1P ctoi_I2P ctoi_I4P ctoi_I8P cton ctor_R16P ctor_R4P ctor_R8P description description description description description description description description description description description description destroy destroy destroy destroy destroy destroy destroy destroy destroy destroy destroy_interpolator_constructor digit digit_I1 digit_I2 digit_I4 digit_I8 execute initialize integer_to_string interpolate interpolate matrix_to_string optional_int_to_string penf_init penf_print savefig str str_a_I1P str_a_I2P str_a_I4P str_a_I8P str_a_R16P str_a_R4P str_a_R8P str_bol str_I1P str_I2P str_I4P str_I8P str_R16P str_R4P str_R8P strf_I1P strf_I2P strf_I4P strf_I8P strf_R16P strf_R4P strf_R8P strz strz_I1P strz_I2P strz_I4P strz_I8P tau vec_to_string weno_exp weno_odd wenoof_create