polygon_m Module


Uses

  • module~~polygon_m~~UsesGraph module~polygon_m polygon_m ieee_arithmetic ieee_arithmetic module~polygon_m->ieee_arithmetic iso_fortran_env iso_fortran_env module~polygon_m->iso_fortran_env module~comm_handling_m comm_handling_m module~polygon_m->module~comm_handling_m module~descriptors_m descriptors_m module~polygon_m->module~descriptors_m module~precision_m precision_m module~polygon_m->module~precision_m module~screen_io_m screen_io_m module~polygon_m->module~screen_io_m mpi mpi module~polygon_m->mpi netcdf netcdf module~polygon_m->netcdf module~comm_handling_m->mpi module~descriptors_m->module~screen_io_m module~precision_m->iso_fortran_env module~precision_m->mpi module~precision_m->netcdf iso_c_binding iso_c_binding module~precision_m->iso_c_binding module~screen_io_m->iso_fortran_env module~screen_io_m->module~precision_m module~screen_io_m->netcdf

Used by

  • module~~polygon_m~~UsedByGraph module~polygon_m polygon_m module~divertor_equilibrium_m divertor_equilibrium_m module~divertor_equilibrium_m->module~polygon_m module~dommaschk_equilibrium_m dommaschk_equilibrium_m module~dommaschk_equilibrium_m->module~polygon_m module~flare_equilibrium_m flare_equilibrium_m module~flare_equilibrium_m->module~polygon_m module~initialise_numerical_equilibrium_s initialise_numerical_equilibrium_s module~initialise_numerical_equilibrium_s->module~polygon_m module~numerical_equilibrium_m numerical_equilibrium_m module~initialise_numerical_equilibrium_s->module~numerical_equilibrium_m module~numerical_equilibrium_m->module~polygon_m module~numerical_equilibrium_m->module~divertor_equilibrium_m module~analytic_divertor_equilibrium_m analytic_divertor_equilibrium_m module~analytic_divertor_equilibrium_m->module~divertor_equilibrium_m module~dommaschk_equilibrium_netcdf_s dommaschk_equilibrium_netcdf_s module~dommaschk_equilibrium_netcdf_s->module~dommaschk_equilibrium_m module~equilibrium_factory_m equilibrium_factory_m module~equilibrium_factory_m->module~dommaschk_equilibrium_m module~equilibrium_factory_m->module~flare_equilibrium_m module~equilibrium_factory_m->module~numerical_equilibrium_m module~carthy_equilibrium_m carthy_equilibrium_m module~equilibrium_factory_m->module~carthy_equilibrium_m module~cerfons_equilibrium_m cerfons_equilibrium_m module~equilibrium_factory_m->module~cerfons_equilibrium_m module~map_factory_s map_factory_s module~map_factory_s->module~dommaschk_equilibrium_m module~testfunctions_m testfunctions_m module~testfunctions_m->module~numerical_equilibrium_m module~carthy_equilibrium_m->module~analytic_divertor_equilibrium_m module~cerfons_equilibrium_m->module~analytic_divertor_equilibrium_m program~benchmark_helmholtz_solvers benchmark_helmholtz_solvers program~benchmark_helmholtz_solvers->module~equilibrium_factory_m program~benchmark_helmholtz_solvers->module~testfunctions_m program~diagnose_poincare diagnose_poincare program~diagnose_poincare->module~equilibrium_factory_m program~test_diffusion test_diffusion program~test_diffusion->module~equilibrium_factory_m

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)