anchor.diff:            tmpMatrix2 = matmul(integralA%beta,tmpMatrix1)
             tmpMatrix1 = matmul(integralA%alpha,tmpMatrix1)
             call mqc_integral_allocate(integralOut,myLabel,'spin',tmpMatrix1,tmpMatrix2)
  -        case('spin')
  -          tmpVector1 = eigenvaluesB%alpha
  -          tmpVector2 = eigenvaluesB%beta
  -          call tmpVector1%diag(tmpMatrix1)
  -          call tmpVector2%diag(tmpMatrix2)
  -          tmpMatrix1 = matmul(integralA%alpha,tmpMatrix1)
  -          tmpMatrix2 = matmul(integralA%beta,tmpMatrix2)
  -          call mqc_integral_allocate(integralOut,myLabel,'spin',tmpMatrix1,tmpMatrix2)
  -        case('general')
  +        case('spin','general')
             tmpVector1 = eigenvaluesB%alpha
             tmpVector2 = eigenvaluesB%beta
             call tmpVector1%diag(tmpMatrix1)
  
positive.code:           scalarOut = dot_product(eigenvalueA%alpha,eigenvalueB%alpha) + &
              dot_product(eigenvalueA%beta,eigenvalueB%beta)
          case default
            call mqc_error_A('Unknown integral type in mqc_eigenvalue_eigenvalue_multiply', 6, &
                 'eigenvalueB%array_type', eigenvalueB%array_type )
          end select
        case default
          call mqc_error_A('Unknown eigenvalue type in mqc_eigenvalue_eigenvalue_multiply', 6, &
               'eigenvalueA%array_type', eigenvalueA%array_type )
        end select
  !
        end function mqc_eigenvalue_eigenvalue_multiply
  !
  !
  !     PROCEDURE MQC_Integral_Transpose
  
negative.code:         tmpVec2 = eigenvalues%getblock('beta')
          call tmpVec1%power(scalar)
          call tmpVec2%power(scalar)
          call mqc_eigenvalues_allocate(eigenvalues,'eigenvalues exponentiated','spin',tmpVec1,tmpVec2)
        endIf
  !
        end subroutine mqc_scf_eigenvalues_power   
  