anchor.diff:              call WrScr('[WARN] Complex eigenvalue found with large imaginary value)')
               Omega2(I) = MAX_EIGENVALUE
            endif
  -         call Fatal('Complex eigenvalue found, system may be ill-conditioned'); return
  +         !call Fatal('Complex eigenvalue found, system may be ill-conditioned'); return
         endif
         ! Capping to avoid overflow
         if (Omega2(I)> MAX_EIGENVALUE) then
  
positive.code:   IMPLICIT NONE
  
    INTEGER, PARAMETER  :: FEKi = R8Ki  ! Define the kind to be used for FEM
   
  CONTAINS
  !------------------------------------------------------------------------------------------------------
  
negative.code:    LOGICAL,   OPTIONAL,    INTENT(IN   )    :: bDOF(nDOF)                         ! Optinal Mask for DOF to keep (True), or reduce (False)
     
     ! LOCALS         
     REAL(LaKi), ALLOCATABLE                   :: K_LaKi(:,:), M_LaKi(:,:) 
     REAL(LaKi), ALLOCATABLE                   :: EigVect_LaKi(:,:), Omega_LaKi(:) 
     INTEGER(IntKi)                            :: N
     INTEGER(IntKi)                            :: ErrStat2
     CHARACTER(ErrMsgLen)                      :: ErrMsg2
     ErrStat = ErrID_None
     ErrMsg  = ''
     EigVect=0.0_FeKi
     Omega=0.0_FeKi
  
     ! --- Unfortunate conversion to FEKi... TODO TODO consider storing M and K in FEKi
     if (present(bDOF)) then
        ! Remove unwanted DOFs
        call RemoveDOF(M, bDOF, M_LaKi, ErrStat2, ErrMsg2); if(Failed()) return
        call RemoveDOF(K, bDOF, K_LaKi, ErrStat2, ErrMsg2); if(Failed()) return
     else
        N=size(K,1)
        CALL AllocAry(K_LaKi      , N, N, 'K_FEKi',    ErrStat2, ErrMsg2); if(Failed()) return
        CALL AllocAry(M_LaKi      , N, N, 'M_FEKi',    ErrStat2, ErrMsg2); if(Failed()) return
        K_LaKi = real( K, LaKi )
        M_LaKi = real( M, LaKi )
     endif
     N=size(K_LaKi,1)
  
     ! Note:  NOmega must be <= N, which is the length of Omega2, Phi!
     if ( NOmega > nDOF ) then
  