tem_line_module Module

for lines


Uses

  • module~~tem_line_module~~UsesGraph module~tem_line_module tem_line_module module~tem_point_module tem_point_module module~tem_line_module->module~tem_point_module module~tem_cube_module tem_cube_module module~tem_line_module->module~tem_cube_module module~tem_triangle_module tem_triangle_module module~tem_line_module->module~tem_triangle_module module~env_module env_module module~tem_line_module->module~env_module module~tem_float_module tem_float_module module~tem_line_module->module~tem_float_module module~tem_math_module tem_math_module module~tem_line_module->module~tem_math_module module~tem_logging_module tem_logging_module module~tem_line_module->module~tem_logging_module module~tem_point_module->module~tem_cube_module module~tem_point_module->module~env_module module~tem_point_module->module~tem_logging_module module~tem_cube_module->module~env_module module~tem_cube_module->module~tem_logging_module module~aotus_module aotus_module module~tem_cube_module->module~aotus_module module~tem_geometry_module tem_geometry_module module~tem_cube_module->module~tem_geometry_module module~aot_table_module aot_table_module module~tem_cube_module->module~aot_table_module module~tem_aux_module tem_aux_module module~tem_cube_module->module~tem_aux_module module~treelmesh_module treelmesh_module module~tem_cube_module->module~treelmesh_module module~tem_triangle_module->module~tem_cube_module module~tem_triangle_module->module~env_module module~tem_triangle_module->module~tem_math_module module~tem_triangle_module->module~tem_logging_module module~tem_transformation_module tem_transformation_module module~tem_triangle_module->module~tem_transformation_module module~tem_triangle_module->module~aotus_module module~aot_out_module aot_out_module module~tem_triangle_module->module~aot_out_module module~tem_triangle_module->module~aot_table_module module~tem_triangle_module->module~tem_aux_module module~env_module->module~aotus_module module~flu_binding flu_binding module~env_module->module~flu_binding mpi mpi module~env_module->mpi iso_fortran_env iso_fortran_env module~env_module->iso_fortran_env module~tem_float_module->module~env_module module~tem_math_module->module~env_module module~tem_math_module->module~tem_logging_module module~tem_math_module->module~tem_aux_module module~tem_matrix_module tem_matrix_module module~tem_math_module->module~tem_matrix_module module~tem_logging_module->module~env_module module~tem_logging_module->module~aotus_module module~tem_logging_module->module~aot_table_module module~tem_transformation_module->module~env_module module~tem_transformation_module->module~tem_logging_module module~tem_transformation_module->module~aotus_module module~tem_transformation_module->module~aot_table_module module~tem_transformation_module->module~flu_binding module~tem_transformation_module->module~tem_aux_module module~tem_tools_module tem_tools_module module~tem_transformation_module->module~tem_tools_module module~tem_geometry_module->module~env_module module~tem_geometry_module->module~tem_float_module module~tem_geometry_module->module~tem_logging_module module~tem_geometry_module->module~treelmesh_module module~tem_geometry_module->mpi module~tem_geometry_module->module~tem_tools_module module~tem_property_module tem_property_module module~tem_geometry_module->module~tem_property_module module~tem_param_module tem_param_module module~tem_geometry_module->module~tem_param_module module~tem_debug_module tem_debug_module module~tem_geometry_module->module~tem_debug_module module~tem_subtree_type_module tem_subTree_type_module module~tem_geometry_module->module~tem_subtree_type_module module~tem_topology_module tem_topology_module module~tem_geometry_module->module~tem_topology_module module~tem_aux_module->module~env_module module~tem_aux_module->module~tem_logging_module module~tem_aux_module->module~aotus_module module~tem_aux_module->module~aot_table_module module~tem_aux_module->module~flu_binding module~tem_aux_module->mpi module~tem_revision_module tem_revision_module module~tem_aux_module->module~tem_revision_module module~tem_aux_module->module~tem_tools_module module~tem_lua_requires_module tem_lua_requires_module module~tem_aux_module->module~tem_lua_requires_module module~tem_comm_env_module tem_comm_env_module module~tem_aux_module->module~tem_comm_env_module module~treelmesh_module->module~env_module module~treelmesh_module->module~tem_logging_module module~treelmesh_module->module~aotus_module module~treelmesh_module->module~aot_table_module module~treelmesh_module->module~tem_aux_module module~treelmesh_module->mpi module~tem_global_module tem_global_module module~treelmesh_module->module~tem_global_module module~treelmesh_module->module~tem_tools_module module~treelmesh_module->module~tem_property_module module~tem_sparta_module tem_Sparta_module module~treelmesh_module->module~tem_sparta_module module~treelmesh_module->module~tem_topology_module module~tem_matrix_module->module~env_module module~tem_matrix_module->module~tem_float_module module~tem_matrix_module->module~tem_logging_module module~tem_matrix_module->module~tem_aux_module module~tem_matrix_module->module~tem_param_module module~tem_dyn_array_module tem_dyn_array_module module~tem_matrix_module->module~tem_dyn_array_module module~tem_matrix_module->module~tem_debug_module module~tem_grow_array_module tem_grow_array_module module~tem_matrix_module->module~tem_grow_array_module

Used by

  • module~~tem_line_module~~UsedByGraph module~tem_line_module tem_line_module module~tem_canonicalnd_module tem_canonicalND_module module~tem_canonicalnd_module->module~tem_line_module module~tem_cylinder_module tem_cylinder_module module~tem_cylinder_module->module~tem_line_module module~tem_shape_module tem_shape_module module~tem_shape_module->module~tem_canonicalnd_module module~tem_shape_module->module~tem_cylinder_module module~tem_spatial_module tem_spatial_module module~tem_spatial_module->module~tem_canonicalnd_module module~tem_spatial_module->module~tem_shape_module module~tem_subtree_module tem_subTree_module module~tem_subtree_module->module~tem_shape_module module~hvs_ascii_module hvs_ascii_module module~hvs_ascii_module->module~tem_shape_module module~tem_spacetime_fun_module tem_spacetime_fun_module module~tem_spacetime_fun_module->module~tem_shape_module module~tem_spacetime_fun_module->module~tem_spatial_module module~tem_spacetime_fun_module->module~tem_subtree_module module~tem_ini_condition_module tem_ini_condition_module module~tem_ini_condition_module->module~tem_spatial_module module~tem_tracking_module tem_tracking_module module~tem_tracking_module->module~tem_shape_module module~tem_tracking_module->module~tem_subtree_module module~hvs_output_module hvs_output_module module~tem_tracking_module->module~hvs_output_module module~hvs_output_module->module~tem_shape_module module~hvs_output_module->module~tem_subtree_module module~hvs_output_module->module~hvs_ascii_module module~tem_spacetime_var_module tem_spacetime_var_module module~tem_spacetime_var_module->module~tem_spatial_module module~tem_spacetime_var_module->module~tem_spacetime_fun_module module~tem_convergence_module tem_convergence_module module~tem_convergence_module->module~tem_shape_module module~tem_convergence_module->module~tem_subtree_module module~tem_bc_module tem_bc_module module~tem_bc_module->module~tem_spacetime_fun_module module~tem_surfacedata_module tem_surfaceData_module module~tem_surfacedata_module->module~tem_spacetime_fun_module program~tem_varsys_stfunvar_test tem_varSys_stfunVar_test program~tem_varsys_stfunvar_test->module~tem_subtree_module program~tem_varsys_stfunvar_test->module~tem_spacetime_fun_module module~tem_simcontrol_module tem_simControl_module module~tem_simcontrol_module->module~tem_convergence_module module~tem_abortcriteria_module tem_abortCriteria_module module~tem_abortcriteria_module->module~tem_convergence_module module~tem_derived_module tem_derived_module module~tem_derived_module->module~tem_spacetime_fun_module module~tem_derived_module->module~tem_spacetime_var_module program~tem_logical_opertor_test tem_logical_opertor_test program~tem_logical_opertor_test->module~tem_spacetime_fun_module program~tem_variable_combine_test tem_variable_combine_Test program~tem_variable_combine_test->module~tem_spacetime_fun_module program~tem_variable_extract_test tem_variable_extract_test program~tem_variable_extract_test->module~tem_spacetime_fun_module program~tem_spacetime_fun_test tem_spacetime_fun_test program~tem_spacetime_fun_test->module~tem_spacetime_fun_module module~tem_variable_module tem_variable_module module~tem_variable_module->module~tem_spacetime_fun_module program~tem_tracking_test tem_tracking_test program~tem_tracking_test->module~tem_tracking_module program~tem_varsys_opvar_test tem_varSys_opVar_test program~tem_varsys_opvar_test->module~tem_subtree_module program~tem_varsys_opvar_test->module~tem_spacetime_fun_module program~tem_variable_evaltype_test tem_variable_evaltype_test program~tem_variable_evaltype_test->module~tem_spacetime_fun_module module~tem_varmap_module tem_varMap_module module~tem_varmap_module->module~tem_spacetime_fun_module module~tem_varmap_module->module~tem_spacetime_var_module program~tem_varsys_derivevar_test tem_varSys_deriveVar_test program~tem_varsys_derivevar_test->module~tem_spacetime_fun_module module~tem_face_module tem_face_module module~tem_face_module->module~tem_spacetime_fun_module program~tem_varsys_test tem_varSys_test program~tem_varsys_test->module~tem_subtree_module program~tem_varsys_test->module~tem_spacetime_fun_module program~tem_varsys_test->module~tem_spacetime_var_module

Contents


Interfaces

public interface init

initialize the dynamic array

  • private subroutine init_ga_line(me, length)

    Arguments

    TypeIntentOptionalAttributesName
    type(grw_linearray_type), intent(out) :: me
    integer, intent(in), optional :: length

public interface truncate

truncate the array, meaning cut off the trailing empty entries

public interface empty

empty the entries without changing arrays

public interface destroy

destroy the dynamic array

public interface placeat

insert an element at a given position

  • private subroutine placeat_ga_line(me, val, pos, length)

    adds the value to a given position inside the growing array.

    Read more…

    Arguments

    TypeIntentOptionalAttributesName
    type(grw_linearray_type) :: me
    type(tem_line_type), intent(in) :: val
    integer, intent(in) :: pos
    integer, intent(in), optional :: length

    optional length to expand the array

  • private subroutine placeat_ga_line_vec(me, val, pos, length)

    adds the values starting from a given position inside the growing array.

    Read more…

    Arguments

    TypeIntentOptionalAttributesName
    type(grw_linearray_type) :: me
    type(tem_line_type), intent(in) :: val(:)
    integer, intent(in) :: pos
    integer, intent(in), optional :: length

    optional length to expand the array

public interface append

append a value to the dynamic array and return its position.

  • private subroutine append_ga_line(me, val, length)

    Arguments

    TypeIntentOptionalAttributesName
    type(grw_linearray_type) :: me
    type(tem_line_type), intent(in) :: val
    integer, intent(in), optional :: length

    optional length to expand the array

  • private subroutine append_ga_line_vec(me, val, length)

    Arguments

    TypeIntentOptionalAttributesName
    type(grw_linearray_type) :: me
    type(tem_line_type), intent(in) :: val(:)
    integer, intent(in), optional :: length

    optional length to expand the array

private interface expand

increase the size of the container for the array.

  • private subroutine expand_ga_line(me, pos, length)

    Arguments

    TypeIntentOptionalAttributesName
    type(grw_linearray_type) :: me
    integer, intent(in), optional :: pos
    integer, intent(in), optional :: length

    optional length to expand the array


Derived Types

type, public :: tem_line_type

This type contains line definition i.e origin and vector which defines the direction of the line

Components

TypeVisibilityAttributesNameInitial
real(kind=rk), private :: origin(3)
real(kind=rk), private :: vec(3)

type, public :: grw_linearray_type

growing array type for type(tem_line_type)

Components

TypeVisibilityAttributesNameInitial
integer, private :: nvals =0
integer, private :: containersize =0
type(tem_line_type), private, allocatable:: val(:)

Functions

public function tem_lineCubeOverlap(line, cube, pntIntersect) result(overlap)

Function computes intersection of line with cube

Read more…

Arguments

TypeIntentOptionalAttributesName
type(tem_line_type), intent(in) :: line

line segment to check for intersection

type(tem_cube_type), intent(in) :: cube

cube to intersect with

real(kind=rk), intent(out), optional :: pntIntersect(3)

intersection point if there is intersection

Return Value logical

public function intersect_RayTriangle(line, triangle, intersect_p) result(isIntersect)

Function computes intersection of ray with triangle

Read more…

Arguments

TypeIntentOptionalAttributesName
type(tem_line_type), intent(in) :: line

line segment to check for interection

type(tem_triangle_type), intent(in) :: triangle

cube to check intersection of line

type(tem_point_type), intent(out), optional :: intersect_p

intersection point if there is intersection

Return Value logical

public function fraction_PointLine(point, line) result(frac)

This evaluates relative distance of given point on line

Arguments

TypeIntentOptionalAttributesName
type(tem_point_type), intent(in) :: point
type(tem_line_type), intent(in) :: line

Return Value real(kind=rk)

private function rayCubeOverlap(line, cube, pntIntersect) result(overlap)

Function computes intersection of ray with cube

Read more…

Arguments

TypeIntentOptionalAttributesName
type(tem_line_type), intent(in) :: line

line segment to check for interection

type(tem_cube_type), intent(in) :: cube

cube to check intersection of line

real(kind=rk), intent(out), optional :: pntIntersect(3)

intersection point if there is intersection

Return Value logical


Subroutines

private subroutine init_ga_line(me, length)

Arguments

TypeIntentOptionalAttributesName
type(grw_linearray_type), intent(out) :: me
integer, intent(in), optional :: length

private subroutine destroy_ga_line(me)

Arguments

TypeIntentOptionalAttributesName
type(grw_linearray_type), intent(inout) :: me

private subroutine truncate_ga_line(me)

Arguments

TypeIntentOptionalAttributesName
type(grw_linearray_type) :: me

private subroutine empty_ga_line(me)

Arguments

TypeIntentOptionalAttributesName
type(grw_linearray_type) :: me

private subroutine placeat_ga_line(me, val, pos, length)

adds the value to a given position inside the growing array.

Read more…

Arguments

TypeIntentOptionalAttributesName
type(grw_linearray_type) :: me
type(tem_line_type), intent(in) :: val
integer, intent(in) :: pos
integer, intent(in), optional :: length

optional length to expand the array

private subroutine placeat_ga_line_vec(me, val, pos, length)

adds the values starting from a given position inside the growing array.

Read more…

Arguments

TypeIntentOptionalAttributesName
type(grw_linearray_type) :: me
type(tem_line_type), intent(in) :: val(:)
integer, intent(in) :: pos
integer, intent(in), optional :: length

optional length to expand the array

private subroutine append_ga_line(me, val, length)

Arguments

TypeIntentOptionalAttributesName
type(grw_linearray_type) :: me
type(tem_line_type), intent(in) :: val
integer, intent(in), optional :: length

optional length to expand the array

private subroutine append_ga_line_vec(me, val, length)

Arguments

TypeIntentOptionalAttributesName
type(grw_linearray_type) :: me
type(tem_line_type), intent(in) :: val(:)
integer, intent(in), optional :: length

optional length to expand the array

private subroutine expand_ga_line(me, pos, length)

Arguments

TypeIntentOptionalAttributesName
type(grw_linearray_type) :: me
integer, intent(in), optional :: pos
integer, intent(in), optional :: length

optional length to expand the array