create_element Subroutine

public subroutine create_element(new_element, id, global_coordinate, cell_info, integration, ierr)

Arguments

Type IntentOptional Attributes Name
class(abst_element), intent(inout), allocatable :: new_element
integer(kind=int32), intent(in) :: id
type(type_dp_3d), intent(in), pointer :: global_coordinate
type(type_vtk_cell), intent(in) :: cell_info
type(type_geometry_settings), intent(in) :: integration
integer(kind=int32), intent(inout) :: ierr

Called by

proc~~create_element~~CalledByGraph proc~create_element create_element proc~initialize_type_domain type_domain%initialize_type_domain proc~initialize_type_domain->proc~create_element proc~initialize_type_output_observation initialize_type_output_observation proc~initialize_type_output_observation->proc~create_element interface~initialize_type_output_observation type_output_observation%initialize_type_output_observation interface~initialize_type_output_observation->proc~initialize_type_output_observation proc~initialize_type_output type_output%initialize_type_output proc~initialize_type_output->interface~initialize_type_output_observation

Source Code

    subroutine create_element(new_element, id, global_coordinate, cell_info, integration, ierr)
        implicit none
        class(abst_element), allocatable, intent(inout) :: new_element
        integer(int32), intent(in) :: id
        type(type_dp_3d), pointer, intent(in) :: global_coordinate
        type(type_vtk_cell), intent(in) :: cell_info
        type(type_geometry_settings), intent(in) :: integration
        integer(int32), intent(inout) :: ierr

        character(:), allocatable :: type_name

        ierr = 0

        if (allocated(new_element)) deallocate (new_element)

        type_name = cell_info%cell_type_name

        select case (type_name)
        case ("Triangle")
            new_element = type_triangle_first(id, global_coordinate, cell_info, integration)
        case ("Quad")
            new_element = type_square_first(id, global_coordinate, cell_info, integration)
        case ("QuadraticTriangle")
            new_element = type_triangle_second(id, global_coordinate, cell_info, integration)
        case ("QuadraticQuad")
            new_element = type_square_second(id, global_coordinate, cell_info, integration)
        case default
            write (*, '(a)') "Error: Unknown side shape type = "//type_name
            ierr = -1
        end select

    end subroutine create_element