anchor.diff:  
         !> This type is only used locally for holding data during the Initialization.  It will not be used outside of the WAMIT2_Init
         !! routine.  The 4D data is of the form F_k( WvFreq1, WvFreq2, WvDir1, WvDir2, k ) where k is coordinate index to the load components
  -      !! (surge, sway, heave, roll, pitch, yaw).  DataSet is of size (NumFreq1,NumFreq2,NumWvDir1,NumWvDir2,6).  The LoadComponents
  +      !! (surge, sway, heave, roll, pitch, yaw).  DataSet is of size (NumFreq1,NumFreq2,NumWvDir1,NumWvDir2,6*NumBodies).  The LoadComponents
         !! array contains flags that will indicate which of the LoadComponents were read in from the data file.
         !!
         !! The DataMask array is of the same size as the DataSet matrix and corresponds to it.  Each point in DataMask that is true
  
positive.code:          IF ( SumQTFData%DataIs4D ) THEN
              SumQTFData%Data4D%IsSumForce = .TRUE.
              CALL Read_DataFile4D( TRIM(SumQTFData%Filename), SumQTFData%Data4D, ErrStatTmp, ErrMsgTmp )
              CALL SetErrStat( ErrStatTmp, ErrMsgTmp, ErrStat, ErrMsg, 'WAMIT2_Init')
           ELSE
              CALL SetErrStat( ErrID_Fatal, ' Programming error.  SumQTF method flags incorrectly set by '// &
                    'CheckInitInput subroutine.', ErrStat, ErrMsg, 'WAMIT2_Init' )
           ENDIF
           IF ( ErrStat >= AbortErrLev ) THEN
              CALL CleanUp
  
negative.code:       IF ( p%MnDriftF ) THEN
           IF ( MnDriftData%DataIs3D ) THEN
              CALL Read_DataFile3D( TRIM(MnDriftData%Filename), MnDriftData%Data3D, ErrStatTmp, ErrMsgTmp )
              CALL SetErrStat( ErrStatTmp, ErrMsgTmp, ErrStat, ErrMsg, RoutineName)
           ELSEIF ( MnDriftData%DataIs4D ) THEN
              MnDriftData%Data4D%IsSumForce = .FALSE.
              CALL Read_DataFile4D( TRIM(MnDriftData%Filename), MnDriftData%Data4D, ErrStatTmp, ErrMsgTmp )
              CALL SetErrStat( ErrStatTmp, ErrMsgTmp, ErrStat, ErrMsg, RoutineName)
           ELSE
              CALL SetErrStat( ErrID_Fatal, ' Programming error.  MnDrift method flags incorrectly set by '// &
                    'CheckInitInput subroutine.', ErrStat, ErrMsg, RoutineName )
           ENDIF
           IF ( ErrStat >= AbortErrLev ) THEN
              CALL CleanUp
  