I.1.20 Get_Flag_Faces_of_Cells_Multi_Mesh Procedure

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



Michael L. Hall