Type | Intent | Optional | 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 |
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