anchor.diff:              ! Set the MnDrift force to 0.0 (Even ones we don't calculate)
            MnDriftForce(I)   = 0.0_SiKi
   
  -            ! Only on the dimensions we requested
  -         IF ( p%MnDriftDims(I) ) THEN
  +        IF (MnDriftData%DataIs3D) THEN
  +           TmpFlag = MnDriftData%Data3D%LoadComponents(I)
  +        ELSE
  +           TmpFlag = MnDriftData%Data4D%LoadComponents(I)
  +        END IF
  +
  +            ! Only on the dimensions we requested, and if it is present in the data
  +         IF ( p%MnDriftDims(I) .AND. TmpFlag ) THEN
   
                  ! Set an initial search index for the 3D and 4D array interpolation
               LastIndex3 = (/0,0,0/)
  
positive.code: 
  
           ! Local Variables
  !      TYPE(FFT_DataType)                                 :: FFT_Data             !< the instance of the FFT module we're using
  
        INTEGER(IntKi)                                     :: I                    !< Generic counter
        INTEGER(IntKi)                                     :: J                    !< Generic counter
  
  
negative.code:             p%MnDriftDims(4)     =  .FALSE.              ! the .8 files don't contain this dimension
              p%MnDriftDims(5)     =  .FALSE.              ! the .8 files don't contain this dimension
              p%MnDriftDims(6)     =  .TRUE.
           ELSE
              p%MnDriftDims        = .TRUE.
           ENDIF
  