anchor.diff:    INTEGER,        INTENT(IN)    :: s
   
     self % second = self % second+s
  -  IF(self % second >= 60)THEN
  -    CALL self % addMinutes(self % second/60)
  -    self % second = MOD(self % second,60)
  -  ELSEIF(self % second < 0)THEN
  -    CALL self % addMinutes(self % second/60-1)
  -    self % second = MOD(self % second,60)+60
  -  ENDIF
  +
  +  DO
  +    IF(self % second >= 60)THEN
  +      CALL self % addMinutes(self % second/60)
  +      self % second = MOD(self % second,60)
  +    ELSEIF(self % second < 0)THEN
  +      CALL self % addMinutes(self % second/60-1)
  +      self % second = MOD(self % second,60)+60
  +    ELSE
  +      EXIT
  +    ENDIF
  +  ENDDO
   
   ENDSUBROUTINE addSeconds
   !======================================================================>
  
positive.code:   INTEGER,        INTENT(IN)    :: m
  
    self % minute = self % minute+m
    IF(self % minute >= 60)THEN
      CALL self % addHours(self % minute/60)
      self % minute = MOD(self % minute,60)
    ELSEIF(self % minute < 0)THEN
      CALL self % addHours(self % minute/60-1)
      self % minute = MOD(self % minute,60)+60
    ENDIF
  
  ENDSUBROUTINE addMinutes
  !======================================================================>
  
negative.code: !
  ! MODULE: datetime
  !
  ! VERSION: 1.0.3
  !
  ! LAST UPDATE: 2014-10-01
  !
  ! AUTHOR: Milan Curcic
  !         University of Miami
  