anchor.diff:  
      IF ( .NOT. EqualRealNos( p%DT_out, p%DT ) ) THEN
         IF ( p%DT_out < p%DT ) THEN
  -         CALL SetErrors( ErrID_Fatal, 'DT_out must be at least DT ('//TRIM(Num2LStr(p%DT))//' s).' )
  +         CALL SetErrStat( ErrID_Fatal, 'DT_out must be at least DT ('//TRIM(Num2LStr(p%DT))//' s).', ErrStat, ErrMsg, RoutineName )
         ELSEIF ( .NOT. EqualRealNos( p%DT_out, p%DT * NINT(p%DT_out / p%DT ) )  ) THEN
  -         CALL SetErrors( ErrID_Fatal, 'DT_out must currently be an integer multiple of DT.' )
  +         CALL SetErrStat( ErrID_Fatal, 'DT_out must currently be an integer multiple of DT.', ErrStat, ErrMsg, RoutineName )
         END IF
      END IF
   
      IF ( p%CompUserTwrLd ) THEN
  -      CALL SetErrors( ErrID_Info, 'CompUserTwrLd will be ignored in this version of FAST.' )
  +      CALL SetErrStat( ErrID_Info, 'CompUserTwrLd will be ignored in this version of FAST.', ErrStat, ErrMsg, RoutineName )
         p%CompUserTwrLd = .FALSE.
      END IF
   
      IF ( p%CompUserPtfmLd ) THEN
  -      CALL SetErrors( ErrID_Info, 'CompUserPtfmLd will be ignored in this version of FAST.' )
  +      CALL SetErrStat( ErrID_Info, 'CompUserPtfmLd will be ignored in this version of FAST.', ErrStat, ErrMsg, RoutineName )
         p%CompUserPtfmLd = .FALSE.
      END IF
   
      
      RETURN
  -CONTAINS
  -   !-------------------------------------------------------------------------------------------------------------------------------
  -   SUBROUTINE SetErrors( ErrStat3, ErrMsg3 )
  -   ! This routine sets the error message and flag when an error has occurred
  -   !...............................................................................................................................
  -   INTEGER(IntKi), INTENT(IN) :: ErrStat3     ! Error status for this error
  -   CHARACTER(*),   INTENT(IN) :: ErrMsg3      ! Error message for this error
  -
  -      ErrStat = MAX( ErrStat, ErrStat3 )
  -      IF ( LEN_TRIM(ErrMsg) > 0 ) ErrMsg = TRIM(ErrMsg)//NewLine
  -      ErrMsg = TRIM(ErrMsg)//TRIM(ErrMsg3)
  -
  -   END SUBROUTINE SetErrors
  -   !-------------------------------------------------------------------------------------------------------------------------------
   END SUBROUTINE FAST_Init
   !----------------------------------------------------------------------------------------------------------------------------------
   SUBROUTINE FAST_InitOutput( p_FAST, y_FAST, InitOutData_ED, InitOutData_SrvD, InitOutData_AD, InitOutData_HD, &
  
positive.code:          !-------------------------------------------------------------------------------------------------
           
           CALL ED_CalcOutput( this_time, u_ED, p_ED, x_ED, xd_ED, z_ED, OtherSt_ED, y_ED, ErrStat2, ErrMsg2 )
              CALL CheckError( ErrStat2, ErrMsg2  )
              IF ( ErrStat >= AbortErrLev ) RETURN
                                   
           CALL HydroDyn_CalcOutput( this_time, u_HD, p_HD, x_HD, xd_HD, z_HD, OtherSt_HD, y_HD, ErrStat2, ErrMsg2 )
              CALL CheckError( ErrStat2, ErrMsg2  )
              IF ( ErrStat >= AbortErrLev ) RETURN      
              
           IF ( K >= p_FAST%KMax ) EXIT
           
                                                              
  
negative.code:    INTEGER(IntKi)                                 :: ErrStat2                  ! temporary Error status of the operation
     CHARACTER(LEN(ErrMsg))                         :: ErrMsg2                   ! temporary Error message if ErrStat /= ErrID_None
  
     CHARACTER(*), PARAMETER                        :: RoutineName = 'Transfer_HD_to_SD'   
     
     ErrStat = ErrID_None
     ErrMsg = ""
           
  