The main documentation of the Set_Not_Up_to_Date_Mathematic_Vector Procedure contains additional explanation of this code listing.
subroutine Set_Not_Up_to_Date_MV (MV)
! Input/Output variable.
type(Mathematic_Vector_type), intent(inout) :: MV ! Variable to be set.
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Verify requirements.
VERIFY(Valid_State(MV),5) ! MV is valid.
! Unset the updated? variables.
MV%Average_is_Updated = .false.
MV%Infinity_Norm_is_Updated = .false.
MV%Maximum_is_Updated = .false.
MV%Minimum_is_Updated = .false.
MV%One_Norm_is_Updated = .false.
MV%DV_is_Updated = .false.
MV%P_Norm_is_Updated = .false.
MV%Sum_is_Updated = .false.
MV%Two_Norm_is_Updated = .false.
! Verify guarantees.
VERIFY(Valid_State(MV),5) ! MV is still valid.
return
end subroutine Set_Not_Up_to_Date_MV