D.3.7 Get Value Base_Structure Functions

The main documentation of the Get Value Base_Structure Functions contains additional explanation of this code listing.

  define([ACCESS_ROUTINE],[
    pushdef([VALUE], [$1])
    pushdef([Get_VALUE_Structure], expand(Get_VALUE_Structure))

    function Get_VALUE_Structure (Structure) result(VALUE)

      ! Input/Output variables.

      ! Base_Structure object.
      type(Base_Structure_type), intent(in) :: Structure 

      ! Output variables.

      type(integer) :: VALUE               ! Base_Structure value to be output.
  
      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
      ! Verify requirements.
  
      VERIFY(Valid_State(Structure),5)     ! Base_Structure is valid.

      ! Set value.

      VALUE = Structure%VALUE

      ! Verify guarantees - none.
  
      return
    end function Get_VALUE_Structure

    popdef([VALUE])
    popdef([Get_VALUE_Structure])
  ])

  fortext([Value],
          [First_PE Last_PE Length_PE Length_Total],[
    ACCESS_ROUTINE(Value)
  ])

  function Get_Length_Vector_Structure (Structure) result(Length_Vector)
  
    ! Input/Output variables.
  
    ! Base_Structure object.
    type(Base_Structure_type), intent(in) :: Structure 
  
    ! Output variables.

    ! Base_Structure value to be output.
    type(integer), dimension(NPEs) :: Length_Vector 
  
    !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
    ! Verify requirements.
  
    VERIFY(Valid_State(Structure),5)       ! Base_Structure is valid.
  
    ! Set value.
  
    Length_Vector = Structure%Length_Vector
  
    ! Verify guarantees - none.
  
    return
  end function Get_Length_Vector_Structure

  function Get_Locus_Structure (Structure) result(Locus)
  
    ! Input variables.

    ! Base_Structure object.
    type(Base_Structure_type), intent(in) :: Structure 
  
    ! Output variables.
  
    type(character,80) :: Locus          ! Base_Structure value to be output.
  
    !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
    ! Verify requirements.
  
    VERIFY(Valid_State(Structure),5)     ! Base_Structure is valid.
  
    ! Set value.
  
    Locus = Structure%Locus

    ! Verify guarantees - none.
  
    return
  end function Get_Locus_Structure

  function Get_Range_PE_Structure (Structure) result(Range_PE)
  
    ! Input/Output variables.
  
    ! Base_Structure object.
    type(Base_Structure_type), intent(in) :: Structure 
  
    ! Output variables.

    ! Base_Structure value to be output.
    type(integer), dimension(2) :: Range_PE 
  
    !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
    ! Verify requirements.
  
    VERIFY(Valid_State(Structure),5)       ! Base_Structure is valid.
  
    ! Set value.
  
    Range_PE = Structure%Range_PE
  
    ! Verify guarantees - none.
  
    return
  end function Get_Range_PE_Structure



Michael L. Hall