linear_interp_1d Derived Type

type, public, extends(linear_interp_class) :: linear_interp_1d

Class for 1d linear interpolation.


Inherits

type~~linear_interp_1d~~InheritsGraph type~linear_interp_1d linear_interp_1d type~linear_interp_class linear_interp_class type~linear_interp_1d->type~linear_interp_class

Inherited by

type~~linear_interp_1d~~InheritedByGraph type~linear_interp_1d linear_interp_1d type~nearest_interp_1d nearest_interp_1d type~nearest_interp_1d->type~linear_interp_1d

Components

Type Visibility Attributes Name Initial
real(kind=wp), private, dimension(:), allocatable :: f
real(kind=wp), private, dimension(:), allocatable :: x
integer, private :: ilox = 1

Finalization Procedures

final :: finalize_1d


Type-Bound Procedures

procedure, public :: initialize => initialize_1d

  • private pure subroutine initialize_1d(me, x, f, istat)

    Constructor for a linear_interp_1d class.

    Arguments

    Type IntentOptional Attributes Name
    class(linear_interp_1d), intent(inout) :: me
    real(kind=wp), intent(in), dimension(:) :: x
    real(kind=wp), intent(in), dimension(:) :: f
    integer, intent(out) :: istat

    0 : no problems, 1 : x is not strictly increasing, 10 : x is not equal to size(f,1), 100 : cannot use linear interpolation for only one point.

procedure, public :: evaluate => interp_1d

  • private pure subroutine interp_1d(me, x, f, istat)

    1D linear interpolation routine.

    Arguments

    Type IntentOptional Attributes Name
    class(linear_interp_1d), intent(inout) :: me
    real(kind=wp), intent(in) :: x
    real(kind=wp), intent(out) :: f

    Interpolated

    integer, intent(out), optional :: istat

    0 : no problems, -1 : class has not been initialized

procedure, public :: destroy => destroy_1d

Source Code

    type,extends(linear_interp_class),public :: linear_interp_1d
        !! Class for 1d linear interpolation.
        private
        real(wp),dimension(:),allocatable :: f
        real(wp),dimension(:),allocatable :: x
        integer :: ilox = 1
        contains
        private
        procedure,public :: initialize => initialize_1d
        procedure,public :: evaluate   => interp_1d
        procedure,public :: destroy    => destroy_1d
        final :: finalize_1d
    end type linear_interp_1d