The main documentation of the Get_Flag_Faces_of_Cells_Multi_Mesh Procedure contains additional explanation of this code listing.
subroutine Get_Flag_Faces_of_Cells_MMesh (Flag_Faces_of_Cells, Mesh)
! Input variable.
type(Multi_Mesh_type), intent(in) :: Mesh ! Mesh object.
! Input/Output variable.
type(integer,2) :: Flag_Faces_of_Cells ! Flag_Faces_of_Cells BNV.
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Verify requirements.
VERIFY(Valid_State(Mesh),5) ! Mesh is valid.
! Flag_Faces_of_Cells is valid.
VERIFY(Valid_State(Flag_Faces_of_Cells),5)
! Flag_Faces_of_Cells has correct dimensions.
VERIFY(SIZE(Flag_Faces_of_Cells,1) == Mesh%NCells_PE,5)
VERIFY(SIZE(Flag_Faces_of_Cells,2) == Mesh%Faces_per_Cell,5) ! !=polys.
! Set the Flag for each face.
if (Mesh%Orthogonality == "Orthogonal") then
Flag_Faces_of_Cells = Mesh%Flag_Faces_of_Cells
else
! Coding for other mesh types not implemented yet.
VERIFY(.false.,1)
end if
! Verify guarantees.
VERIFY(Valid_State(Mesh),5) ! Mesh is valid.
! Flag_Faces_of_Cells is valid.
VERIFY(Valid_State(Flag_Faces_of_Cells),5)
return
end subroutine Get_Flag_Faces_of_Cells_MMesh