I.1.5 Valid_State_Multi_Mesh Procedure

The main documentation of the Valid_State_Multi_Mesh Procedure contains additional explanation of this code listing.

  function Valid_State_Multi_Mesh (Mesh) result(Valid)

    ! Input variables.

    ! Variable to be checked.
    type(Multi_Mesh_type), intent(in) :: Mesh 

    ! Output variables.

    type(logical) :: Valid       ! Logical state.

    ! Internal variables.

    !type(integer) :: NSlice      ! Number of Values in a "slice" of the Mesh.

    !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ! Start out true.

    Valid = .true.

    ! Check for association of pointered internals.

    !Valid = Valid .and. ASSOCIATED(Mesh%One_Structure)
    !Valid = Valid .and. ASSOCIATED(Mesh%Many_Structure)
    !Valid = Valid .and. ASSOCIATED(Mesh%Many_of_One_Index)
    !if (.not.Valid) return

    ! Check for validity of internals.

    !VERIFY(NDimensions .eq. 1 .eqv. Shape .eq. "Segmented",5)
    !etc.

    Valid = Valid .and. Initialized(Mesh)
    !Valid = Valid .and. Valid_State(Mesh%A_Dimensionality)
    !Valid = Valid .and. Valid_State(Mesh%Dimensionality)
    Valid = Valid .and. Valid_State(Mesh%NDimensions)
    !Valid = Valid .and. Valid_State(Mesh%Many_Structure)
    !Valid = Valid .and. Valid_State(Mesh%Many_of_One_Index)
    Valid = Valid .and. Valid_State(Mesh%Name)
    !Valid = Valid .and. Valid_State(Mesh%One_Structure)
    !select case (Mesh%A_Dimensionality)
    !case (1)
    !  Valid = Valid .and. Valid_State(Mesh%Values1)
    !case (2)
    !  Valid = Valid .and. Valid_State(Mesh%Values2)
    !case (3)
    !  Valid = Valid .and. Valid_State(Mesh%Values3)
    !case (4)
    !  Valid = Valid .and. Valid_State(Mesh%Values4)
    !case (5)
    !  Valid = Valid .and. Valid_State(Mesh%Values5)
    !case (-1)
    !  Valid = Valid .and. Valid_State(Mesh%ValuesRR)
    !end select
    Valid = Valid .and. Valid_State(Mesh%Version)
    if (.not.Valid) return

    ! Checks on the validity of Mesh.

    !Valid = Valid .and. Mesh%A_Dimensionality == &
    !        Mesh%Dimensionality + Mesh%Many_of_One_Index%Dimensionality - 1

    return
  end function Valid_State_Multi_Mesh



Michael L. Hall