anchor.diff:           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')
  +            CALL SetErrStat( ErrStatTmp, ErrMsgTmp, ErrStat, ErrMsg, RoutineName)
            ELSE
               CALL SetErrStat( ErrID_Fatal, ' Programming error.  SumQTF method flags incorrectly set by '// &
  -                  'CheckInitInput subroutine.', ErrStat, ErrMsg, 'WAMIT2_Init' )
  +                  'CheckInitInput subroutine.', ErrStat, ErrMsg, RoutineName )
            ENDIF
            IF ( ErrStat >= AbortErrLev ) THEN
               CALL CleanUp
  
positive.code:       INTEGER(IntKi)                   :: NumWvFreq2           !< Number of frequencies in second frequency direction set
        INTEGER(IntKi)                   :: NumWvDir1            !< Number of wave directions in first   wave direction set
        INTEGER(IntKi)                   :: NumWvDir2            !< Number of wave directions in second  wave direction set
        LOGICAL                          :: DataIsSparse(6)      !< Flag to indicate if the data is sparse or complete.  One per component direction
        LOGICAL                          :: WvFreqDiagComplete   !< Flag to indicate if the diagonal element is complete or not (Omega_m, Omega_m).
        LOGICAL                          :: IsSumForce           !< Flag to indicate that this is a sum type array.  Used in setting the F_{nm} term from F_{mn} term.
        LOGICAL                          :: LoadComponents(6)    !< Which load components actually exist in the input file
        COMPLEX(SiKi),    ALLOCATABLE    :: DataSet(:,:,:,:,:)   !< Storage for 4D data from the 2nd order WAMIT file
        LOGICAL,          ALLOCATABLE    :: DataMask(:,:,:,:,:)  !< Mask for knowing which data points are complete, which are missing
        REAL(SiKi),       ALLOCATABLE    :: WvFreq1(:)           !< (1:NumFreq1)  elements -- values correspond to index 1 of DataSet
  
negative.code:             CALL CleanUp
              RETURN
           ENDIF
           TmpCoord(1) =  TmpCoord(1) + ( WvFreq1LoIdx - 1 )     ! shift to the point in the Data4D%WvFreq1 array by adding the zero frequency step function
  
              ! Find the location in the WvFreq2 array that this point corresponds to.  We will check only between the
              ! cutoffs that were added to the frequency range.  This is contained within TmpWvFreq2 from reading in.
  