euclidean_geo_m Module

Collection of routines related with Euclidean geometry


Uses

  • module~~euclidean_geo_m~~UsesGraph module~euclidean_geo_m euclidean_geo_m module~precision_m precision_m module~euclidean_geo_m->module~precision_m iso_c_binding iso_c_binding module~precision_m->iso_c_binding iso_fortran_env iso_fortran_env module~precision_m->iso_fortran_env mpi mpi module~precision_m->mpi netcdf netcdf module~precision_m->netcdf

Used by

  • module~~euclidean_geo_m~~UsedByGraph module~euclidean_geo_m euclidean_geo_m module~circular_toroidal_equilibrium_m circular_toroidal_equilibrium_m module~circular_toroidal_equilibrium_m->module~euclidean_geo_m module~dommaschk_equilibrium_m dommaschk_equilibrium_m module~dommaschk_equilibrium_m->module~euclidean_geo_m module~flare_equilibrium_m flare_equilibrium_m module~flare_equilibrium_m->module~euclidean_geo_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~circular_toroidal_equilibrium_m module~equilibrium_factory_m->module~dommaschk_equilibrium_m module~equilibrium_factory_m->module~flare_equilibrium_m module~map_factory_s map_factory_s module~map_factory_s->module~dommaschk_equilibrium_m program~benchmark_helmholtz_solvers benchmark_helmholtz_solvers program~benchmark_helmholtz_solvers->module~equilibrium_factory_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

Subroutines

public subroutine intersection_lines(pa, qa, pb, qb, xi, yi, info, ta, tb)

Computes intersection point of two lines going through points [pa, qa] and [pb, qb]

Arguments

Type IntentOptional Attributes Name
real(kind=FP), intent(in), dimension(2) :: pa

x/y-coordinate of first point of first line

real(kind=FP), intent(in), dimension(2) :: qa

x/y-coordinate of second point of first line

real(kind=FP), intent(in), dimension(2) :: pb

x/y-coordinate of first point of second line

real(kind=FP), intent(in), dimension(2) :: qb

x/y-coordinate of second point of second line

real(kind=FP), intent(out) :: xi

If info = 0: x-coordinate of intersection point If info /= 0: NaN

real(kind=FP), intent(out) :: yi

If info = 0: y-coordinate of intersection point If info /= 0: NaN

integer, intent(out) :: info

Returns info on intersection point info = 0: Unique intersection point found info = 1: Both lines are identical info = -1: Both lines are parallel and not identical info = -2: Some line is degenerate, i.e. pa = qa or pb = qb

real(kind=FP), intent(out), optional :: ta

If info = 0: Parameter where intersection occurs w.r.t. first line, i.e. pa + ta * (pa - qa) If info /= 0: NaN

real(kind=FP), intent(out), optional :: tb

If info = 0: Parameter where intersection occurs w.r.t. second line, i.e. pb + tb * (pb - qb) If info /= 0: NaN