anchor.diff:        FASTdata%Descr(IChr:IChr) = CHAR( DescStrASCII(IChr) )
      END DO
   
  +   
  +   ALLOCATE ( TmpStrASCII( ChanLen2 ) , STAT=ErrStat2 )
  +   IF ( ErrStat2 /= 0 )  THEN
  +      CALL SetErrStat ( ErrID_Fatal, 'Fatal error allocating memory for the DescStrASCII array.', ErrStat, ErrMsg, RoutineName )
  +      CALL Cleanup()
  +      RETURN
  +   ENDIF   
      TmpStrASCII(:) = ICHAR( ' ' )
      DO IChan=1,FASTdata%NumChans+1
         READ (UnIn, IOSTAT=ErrStat2)  TmpStrASCII
  
positive.code: 
        ! Argument declarations.
  
     INTEGER(IntKi),      INTENT(  OUT)     :: ErrStat                 !< An optional error level to be returned to the calling routine.
     INTEGER(IntKi),      INTENT(INOUT)     :: UnIn                    !< The IO unit for the FAST binary file.
  
     LOGICAL,             INTENT(IN)        :: Init                    !< A flag to tell the routine to read only the file header for initialization purposes.
  
     CHARACTER(*),        INTENT(  OUT)     :: ErrMsg                  !< An optional error message to be returned to the calling routine.
  
     TYPE (FASTdataType), INTENT(INOUT)     :: FASTdata                !< The derived type for holding FAST output data.
  
  
        ! Local declarations.
  
negative.code:          IF ( ALLOCATED( ColOff             ) ) DEALLOCATE( ColOff             )
           IF ( ALLOCATED( ColScl             ) ) DEALLOCATE( ColScl             )
           IF ( ALLOCATED( DescStrASCII       ) ) DEALLOCATE( DescStrASCII       )
           IF ( ALLOCATED( TmpStrASCII        ) ) DEALLOCATE( TmpStrASCII        )
           IF ( ALLOCATED( TmpInArray         ) ) DEALLOCATE( TmpInArray         )
           IF ( ALLOCATED( TmpR8InArray       ) ) DEALLOCATE( TmpR8InArray         )
           IF ( ALLOCATED( TmpTimeArray       ) ) DEALLOCATE( TmpTimeArray       )
  