The main documentation of the Update_DV_Mathematic_Vector Procedure contains additional explanation of this code listing.
subroutine Update_DV_Mathematic_Vector (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. ! Check to see if the DV needs to be updated. if (.not. MV%DV_is_Updated) then if (.not.Initialized(MV%DV)) then call Initialize (MV%DV, MV%Structure, MV%Dimensionality, & MV%Name) end if MV%DV = MV%Values end if ! Set the updated? variable. MV%DV_is_Updated = .true. ! Verify guarantees. VERIFY(Valid_State(MV),5) ! MV is still valid. return end subroutine Update_DV_Mathematic_Vector