linear_interp_class Derived Type

type, public :: linear_interp_class

Base class for the linear interpolation types


Inherited by

type~~linear_interp_class~~InheritedByGraph type~linear_interp_class linear_interp_class type~linear_interp_1d linear_interp_1d type~linear_interp_1d->type~linear_interp_class type~linear_interp_2d linear_interp_2d type~linear_interp_2d->type~linear_interp_class type~linear_interp_3d linear_interp_3d type~linear_interp_3d->type~linear_interp_class type~linear_interp_4d linear_interp_4d type~linear_interp_4d->type~linear_interp_class type~linear_interp_5d linear_interp_5d type~linear_interp_5d->type~linear_interp_class type~linear_interp_6d linear_interp_6d type~linear_interp_6d->type~linear_interp_class type~nearest_interp_1d nearest_interp_1d type~nearest_interp_1d->type~linear_interp_1d type~nearest_interp_2d nearest_interp_2d type~nearest_interp_2d->type~linear_interp_2d type~nearest_interp_3d nearest_interp_3d type~nearest_interp_3d->type~linear_interp_3d type~nearest_interp_4d nearest_interp_4d type~nearest_interp_4d->type~linear_interp_4d type~nearest_interp_5d nearest_interp_5d type~nearest_interp_5d->type~linear_interp_5d type~nearest_interp_6d nearest_interp_6d type~nearest_interp_6d->type~linear_interp_6d

Components

Type Visibility Attributes Name Initial
logical, private :: initialized = .false.

if the class was properly initialized


Type-Bound Procedures

procedure(destroy_func), public, deferred :: destroy

destructor

  • pure elemental subroutine destroy_func(me) Prototype

    interface for bspline destructor routines

    Arguments

    Type IntentOptional Attributes Name
    class(linear_interp_class), intent(inout) :: me

procedure, private :: check_inputs

  • private pure subroutine check_inputs(me, x, y, z, q, r, s, ierr)

    Check the validity of the inputs to the initialize routines. Prints warning message if there is an error, and also sets ierr (/=0 if there were any errors).

    Read more…

    Arguments

    Type IntentOptional Attributes Name
    class(linear_interp_class), intent(in) :: me
    real(kind=wp), intent(in), optional, dimension(:) :: x

    x abscissa vector

    real(kind=wp), intent(in), optional, dimension(:) :: y

    y abscissa vector

    real(kind=wp), intent(in), optional, dimension(:) :: z

    z abscissa vector

    real(kind=wp), intent(in), optional, dimension(:) :: q

    q abscissa vector

    real(kind=wp), intent(in), optional, dimension(:) :: r

    r abscissa vector

    real(kind=wp), intent(in), optional, dimension(:) :: s

    s abscissa vector

    integer, intent(out) :: ierr

    0 : no problems, 1 : x is not strictly increasing, 2 : y is not strictly increasing, 3 : z is not strictly increasing, 4 : q is not strictly increasing, 5 : r is not strictly increasing, 6 : s is not strictly increasing, 100 : cannot use linear interpolation for only one point.

Source Code

    type,public,abstract :: linear_interp_class
        !! Base class for the linear interpolation types
        private
        logical :: initialized = .false. !! if the class was properly initialized
    contains
        private
        procedure(destroy_func),deferred,public :: destroy  !! destructor
        procedure :: check_inputs
    end type linear_interp_class