RangeClass Module



Variables

Type Visibility Attributes Name Initial
real(kind=real64), public, parameter :: PF_RANGE_INFTY = dble(1.0e+14)

Interfaces

public interface to_range

  • public function to_range_int32(from_to) result(ret_range)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: from_to(1:2)

    Return Value type(Range_)

  • public function to_range_real64(from_to) result(ret_range)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: from_to(:)

    Return Value type(Range_)

  • public function to_range_real64_rect(x_min, y_min, z_min, x_max, y_max, z_max) result(ret_range)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in), optional :: x_min
    real(kind=real64), intent(in), optional :: y_min
    real(kind=real64), intent(in), optional :: z_min
    real(kind=real64), intent(in), optional :: x_max
    real(kind=real64), intent(in), optional :: y_max
    real(kind=real64), intent(in), optional :: z_max

    Return Value type(Range_)

  • public function to_range_real64_sphere(center, radius) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: center(1:3)
    real(kind=real64), intent(in) :: radius

    Return Value type(Range_)

  • public function to_range_real64_cylinder(p1, p2, radius) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: p1(1:3)
    real(kind=real64), intent(in) :: p2(1:3)
    real(kind=real64), intent(in) :: radius

    Return Value type(Range_)

  • public function to_range_real64_Cone(p1, p2, radius) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: p1(1:3)
    real(kind=real64), intent(in) :: p2(1:3)
    real(kind=real64), intent(in) :: radius(1:2)

    Return Value type(Range_)

public interface print

  • public subroutine printRange(range)

    Arguments

    Type IntentOptional Attributes Name
    type(Range_), intent(in) :: range

public interface operator(.in.)

  • public function in_detect_by_range_int32(intval, in_range) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: intval
    type(Range_), intent(in) :: in_range

    Return Value logical

  • public function in_detect_by_range_real64(real64val, in_range) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: real64val
    type(Range_), intent(in) :: in_range

    Return Value logical

  • public function in_int32_int32vector(intval, intlist) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: intval
    integer(kind=int32), intent(in) :: intlist(:)

    Return Value logical

  • public recursive function in_detect_by_range_xyz_real64(real64val, in_range) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: real64val(:)
    type(Range_), intent(in) :: in_range

    Return Value logical

public interface operator(.and.)

  • public elemental function and_rect_real64(range1, range2) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    type(Range_), intent(in) :: range1
    type(Range_), intent(in) :: range2

    Return Value type(Range_)

public interface operator(.or.)

  • public elemental function or_xyz_range_real64(range1, range2) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    type(Range_), intent(in) :: range1
    type(Range_), intent(in) :: range2

    Return Value type(Range_)


Derived Types

type, public ::  Range_

Components

Type Visibility Attributes Name Initial
logical, public :: rect_is_active = .false.
real(kind=real64), public :: x_range(1:2)
real(kind=real64), public :: y_range(1:2)
real(kind=real64), public :: z_range(1:2)
real(kind=real64), public :: t_range(1:2)
logical, public :: x_substituted(1:2)
logical, public :: y_substituted(1:2)
logical, public :: z_substituted(1:2)
logical, public :: t_substituted(1:2)
logical, public :: sphere_is_active = .false.
real(kind=real64), public :: sphere_center(1:3)
real(kind=real64), public :: sphere_radius
logical, public :: cylinder_is_active = .false.
real(kind=real64), public :: cylinder_p1(1:3)
real(kind=real64), public :: cylinder_p2(1:3)
real(kind=real64), public :: cylinder_radius
logical, public :: cone_is_active = .false.
real(kind=real64), public :: cone_p1(1:3)
real(kind=real64), public :: cone_p2(1:3)
real(kind=real64), public :: cone_radius(1:2)
type(Range_), public, allocatable :: and_ranges(:)
type(Range_), public, allocatable :: or_ranges(:)

Type-Bound Procedures

procedure, public :: init => initRange
procedure, public :: set => setRange
procedure, public :: get => getRange
procedure, public :: set_x => set_xRange
procedure, public :: set_y => set_yRange
procedure, public :: set_z => set_zRange
procedure, public :: set_t => set_tRange
procedure, public :: inside => insideRange
procedure, public :: lx => lx_RangeClass
procedure, public :: ly => ly_RangeClass
procedure, public :: lz => lz_RangeClass

Functions

public function in_int32_int32vector(intval, intlist) result(ret)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: intval
integer(kind=int32), intent(in) :: intlist(:)

Return Value logical

public function in_detect_by_range_int32(intval, in_range) result(ret)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: intval
type(Range_), intent(in) :: in_range

Return Value logical

public function in_detect_by_range_real64(real64val, in_range) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: real64val
type(Range_), intent(in) :: in_range

Return Value logical

public recursive function in_detect_by_range_xyz_real64(real64val, in_range) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: real64val(:)
type(Range_), intent(in) :: in_range

Return Value logical

public function to_range_int32(from_to) result(ret_range)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: from_to(1:2)

Return Value type(Range_)

public function to_range_real64(from_to) result(ret_range)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: from_to(:)

Return Value type(Range_)

public function to_range_real64_rect(x_min, y_min, z_min, x_max, y_max, z_max) result(ret_range)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in), optional :: x_min
real(kind=real64), intent(in), optional :: y_min
real(kind=real64), intent(in), optional :: z_min
real(kind=real64), intent(in), optional :: x_max
real(kind=real64), intent(in), optional :: y_max
real(kind=real64), intent(in), optional :: z_max

Return Value type(Range_)

public function getRange(this, range_type) result(min_and_max)

Arguments

Type IntentOptional Attributes Name
class(Range_), intent(inout) :: this
character(len=1), intent(in) :: range_type

Return Value real(kind=real64), (2)

public pure function insideRange(this, point) result(inside_is_true)

Arguments

Type IntentOptional Attributes Name
class(Range_), intent(in) :: this
real(kind=real64), intent(in) :: point(:)

Return Value logical

public elemental function and_rect_real64(range1, range2) result(ret)

Arguments

Type IntentOptional Attributes Name
type(Range_), intent(in) :: range1
type(Range_), intent(in) :: range2

Return Value type(Range_)

public elemental function or_xyz_range_real64(range1, range2) result(ret)

Arguments

Type IntentOptional Attributes Name
type(Range_), intent(in) :: range1
type(Range_), intent(in) :: range2

Return Value type(Range_)

public function lx_RangeClass(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Range_), intent(in) :: this

Return Value real(kind=real64)

public function ly_RangeClass(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Range_), intent(in) :: this

Return Value real(kind=real64)

public function lz_RangeClass(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Range_), intent(in) :: this

Return Value real(kind=real64)

public function to_range_real64_sphere(center, radius) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: center(1:3)
real(kind=real64), intent(in) :: radius

Return Value type(Range_)

public function to_range_real64_cylinder(p1, p2, radius) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: p1(1:3)
real(kind=real64), intent(in) :: p2(1:3)
real(kind=real64), intent(in) :: radius

Return Value type(Range_)

public function to_range_real64_Cone(p1, p2, radius) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: p1(1:3)
real(kind=real64), intent(in) :: p2(1:3)
real(kind=real64), intent(in) :: radius(1:2)

Return Value type(Range_)


Subroutines

public subroutine initRange(this, MaxRange)

Arguments

Type IntentOptional Attributes Name
class(Range_), intent(inout) :: this
real(kind=real64), intent(in), optional :: MaxRange

public subroutine setRange(this, x_min, x_max, y_min, y_max, z_min, z_max)

Arguments

Type IntentOptional Attributes Name
class(Range_), intent(inout) :: this
real(kind=real64), intent(in), optional :: x_min
real(kind=real64), intent(in), optional :: x_max
real(kind=real64), intent(in), optional :: y_min
real(kind=real64), intent(in), optional :: y_max
real(kind=real64), intent(in), optional :: z_min
real(kind=real64), intent(in), optional :: z_max

public subroutine set_xRange(this, x_min, x_max)

Arguments

Type IntentOptional Attributes Name
class(Range_), intent(inout) :: this
real(kind=real64), intent(in), optional :: x_min
real(kind=real64), intent(in), optional :: x_max

public subroutine set_yRange(this, y_min, y_max)

Arguments

Type IntentOptional Attributes Name
class(Range_), intent(inout) :: this
real(kind=real64), intent(in), optional :: y_min
real(kind=real64), intent(in), optional :: y_max

public subroutine set_zRange(this, z_min, z_max)

Arguments

Type IntentOptional Attributes Name
class(Range_), intent(inout) :: this
real(kind=real64), intent(in), optional :: z_min
real(kind=real64), intent(in), optional :: z_max

public subroutine set_tRange(this, t_min, t_max)

Arguments

Type IntentOptional Attributes Name
class(Range_), intent(inout) :: this
real(kind=real64), intent(in), optional :: t_min
real(kind=real64), intent(in), optional :: t_max

public subroutine printRange(range)

Arguments

Type IntentOptional Attributes Name
type(Range_), intent(in) :: range