polygon_m Module



Derived Types

type, public, abstract ::  polygon2d_t

Components

Type Visibility Attributes Name Initial
real(kind=FP), public, dimension(:, :), allocatable :: pts
integer, public :: N_pts
integer, public :: dim = twodim
real(kind=FP), public, dimension(:, :), allocatable :: p2p
real(kind=FP), public, dimension(:), allocatable :: p2p_mag

Type-Bound Procedures

procedure, public, pass(self) :: create_polygon2d
procedure, public, pass(self) :: dist_to_polypoint
procedure, public, pass(self) :: dist_to_polyedge
procedure, public, pass(self) :: closest_polyedge
procedure, public, pass(self) :: polygon_print
procedure(polygon_string), public, deferred, pass(self) :: polygon_string
procedure, public, pass(self) :: destroy_polygon
procedure, public, pass(self) :: signed_area

type, public, extends(polygon2d_t) ::  closed_polygon2d_t

Components

Type Visibility Attributes Name Initial
real(kind=FP), public, dimension(:, :), allocatable :: pts
integer, public :: N_pts
integer, public :: dim = twodim
real(kind=FP), public, dimension(:, :), allocatable :: p2p
real(kind=FP), public, dimension(:), allocatable :: p2p_mag

Finalizations Procedures

final :: finalize_closed_polygon2d_t

Type-Bound Procedures

procedure, public, pass(self) :: create_polygon2d
procedure, public, pass(self) :: dist_to_polypoint
procedure, public, pass(self) :: dist_to_polyedge
procedure, public, pass(self) :: closest_polyedge
procedure, public, pass(self) :: polygon_print
procedure, public, pass(self) :: destroy_polygon
procedure, public, pass(self) :: signed_area
procedure, public, pass(self) :: polygon_string => string_closed_polygon2d_t
procedure, public :: pt_inside

type, public, extends(closed_polygon2d_t) ::  limiting_polygon2d_t

Components

Type Visibility Attributes Name Initial
real(kind=FP), public, dimension(:, :), allocatable :: pts
integer, public :: N_pts
integer, public :: dim = twodim
real(kind=FP), public, dimension(:, :), allocatable :: p2p
real(kind=FP), public, dimension(:), allocatable :: p2p_mag
real(kind=FP), public :: local_min
real(kind=FP), public :: local_max
logical, public :: use_local_min
logical, public :: use_local_max

Finalizations Procedures

final :: finalize_limiting_polygon2d_t

Type-Bound Procedures

procedure, public, pass(self) :: create_polygon2d
procedure, public, pass(self) :: dist_to_polypoint
procedure, public, pass(self) :: dist_to_polyedge
procedure, public, pass(self) :: closest_polyedge
procedure, public, pass(self) :: polygon_print
procedure, public, pass(self) :: destroy_polygon
procedure, public, pass(self) :: signed_area
procedure, public :: pt_inside
procedure, public, pass(self) :: polygon_string => string_limiting_polygon2d_t

Functions

public function create_closed_polygon2d_t(N_pts, X_pts, Y_pts) result(poly)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: N_pts
real(kind=FP), intent(in), dimension(N_pts) :: X_pts
real(kind=FP), intent(in), dimension(N_pts) :: Y_pts

Return Value type(closed_polygon2d_t)

public function create_limiting_polygon2d_t(N_pts, X_pts, Y_pts, local_min, local_max, use_local_min, use_local_max) result(poly)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: N_pts
real(kind=FP), intent(in), dimension(N_pts) :: X_pts
real(kind=FP), intent(in), dimension(N_pts) :: Y_pts
real(kind=FP), intent(in) :: local_min
real(kind=FP), intent(in) :: local_max
logical, intent(in) :: use_local_min
logical, intent(in) :: use_local_max

Return Value type(limiting_polygon2d_t)