nearest_interp_6d Derived Type

type, public, extends(linear_interp_6d) :: nearest_interp_6d

Class for 6d nearest neighbor interpolation.


Inherits

type~~nearest_interp_6d~~InheritsGraph type~nearest_interp_6d nearest_interp_6d type~linear_interp_6d linear_interp_6d type~nearest_interp_6d->type~linear_interp_6d type~linear_interp_class linear_interp_class type~linear_interp_6d->type~linear_interp_class

Type-Bound Procedures

procedure, public :: initialize => initialize_6d

  • private pure subroutine initialize_6d(me, x, y, z, q, r, s, f, istat)

    Constructor for a linear_interp_6d class.

    Arguments

    Type IntentOptional Attributes Name
    class(linear_interp_6d), intent(inout) :: me
    real(kind=wp), intent(in), dimension(:) :: x
    real(kind=wp), intent(in), dimension(:) :: y
    real(kind=wp), intent(in), dimension(:) :: z
    real(kind=wp), intent(in), dimension(:) :: q
    real(kind=wp), intent(in), dimension(:) :: r
    real(kind=wp), intent(in), dimension(:) :: s
    real(kind=wp), intent(in), dimension(:,:,:,:,:,:) :: f
    integer, intent(out) :: istat

    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, 10 : x is not equal to size(f,1), 20 : y is not equal to size(f,2), 30 : z is not equal to size(f,3), 40 : q is not equal to size(f,4), 50 : r is not equal to size(f,5), 60 : s is not equal to size(f,6), 100 : cannot use linear interpolation for only one point.

procedure, public :: destroy => destroy_6d

procedure, public :: evaluate => nearest_6d

  • private pure subroutine nearest_6d(me, x, y, z, q, r, s, f, istat)

    6D nearest neighbor interpolation routine.

    Arguments

    Type IntentOptional Attributes Name
    class(nearest_interp_6d), intent(inout) :: me
    real(kind=wp), intent(in) :: x
    real(kind=wp), intent(in) :: y
    real(kind=wp), intent(in) :: z
    real(kind=wp), intent(in) :: q
    real(kind=wp), intent(in) :: r
    real(kind=wp), intent(in) :: s
    real(kind=wp), intent(out) :: f

    Nearest

    integer, intent(out), optional :: istat

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

Source Code

    type,extends(linear_interp_6d),public :: nearest_interp_6d
        !! Class for 6d nearest neighbor interpolation.
        contains
        procedure,public :: evaluate => nearest_6d
    end type nearest_interp_6d