The main documentation of the Get_Values_Mathematic_Vector Procedure contains additional explanation of this code listing.
subroutine Get_Values_Mathematic_Vector (Values, MV)
! Input variable.
type(Mathematic_Vector_type), intent(in) :: MV ! Variable to be queried.
! Input/Output variable.
type(real,1,np), intent(inout) :: Values ! Values bare naked vector.
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Verify requirements.
VERIFY(Valid_State(MV),5) ! MV is valid.
VERIFY(Valid_State_NP(Values),5) ! Values is valid.
VERIFY(SIZE(Values) == Length_PE(MV%Structure),5) ! Values size check.
! Get the values.
Values = MV%Values
! Verify guarantees.
VERIFY(Valid_State(MV),5) ! MV is still valid.
return
end subroutine Get_Values_Mathematic_Vector