You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

cslect.f 2.8 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. *> \brief \b CSLECT
  2. *
  3. * =========== DOCUMENTATION ===========
  4. *
  5. * Online html documentation available at
  6. * http://www.netlib.org/lapack/explore-html/
  7. *
  8. * Definition:
  9. * ===========
  10. *
  11. * LOGICAL FUNCTION CSLECT( Z )
  12. *
  13. * .. Scalar Arguments ..
  14. * COMPLEX Z
  15. * ..
  16. *
  17. *
  18. *> \par Purpose:
  19. * =============
  20. *>
  21. *> \verbatim
  22. *>
  23. *> CSLECT returns .TRUE. if the eigenvalue Z is to be selected,
  24. *> otherwise it returns .FALSE.
  25. *> It is used by CCHK41 to test if CGEES successfully sorts eigenvalues,
  26. *> and by CCHK43 to test if CGEESX successfully sorts eigenvalues.
  27. *>
  28. *> The common block /SSLCT/ controls how eigenvalues are selected.
  29. *> If SELOPT = 0, then CSLECT return .TRUE. when real(Z) is less than
  30. *> zero, and .FALSE. otherwise.
  31. *> If SELOPT is at least 1, CSLECT returns SELVAL(SELOPT) and adds 1
  32. *> to SELOPT, cycling back to 1 at SELMAX.
  33. *> \endverbatim
  34. *
  35. * Arguments:
  36. * ==========
  37. *
  38. *> \param[in] Z
  39. *> \verbatim
  40. *> Z is COMPLEX
  41. *> The eigenvalue Z.
  42. *> \endverbatim
  43. *
  44. * Authors:
  45. * ========
  46. *
  47. *> \author Univ. of Tennessee
  48. *> \author Univ. of California Berkeley
  49. *> \author Univ. of Colorado Denver
  50. *> \author NAG Ltd.
  51. *
  52. *> \date June 2016
  53. *
  54. *> \ingroup complex_eig
  55. *
  56. * =====================================================================
  57. LOGICAL FUNCTION CSLECT( Z )
  58. *
  59. * -- LAPACK test routine (version 3.7.0) --
  60. * -- LAPACK is a software package provided by Univ. of Tennessee, --
  61. * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
  62. * June 2016
  63. *
  64. * .. Scalar Arguments ..
  65. COMPLEX Z
  66. * ..
  67. *
  68. * =====================================================================
  69. *
  70. * .. Parameters ..
  71. REAL ZERO
  72. PARAMETER ( ZERO = 0.0E0 )
  73. * ..
  74. * .. Local Scalars ..
  75. INTEGER I
  76. REAL RMIN, X
  77. * ..
  78. * .. Scalars in Common ..
  79. INTEGER SELDIM, SELOPT
  80. * ..
  81. * .. Arrays in Common ..
  82. LOGICAL SELVAL( 20 )
  83. REAL SELWI( 20 ), SELWR( 20 )
  84. * ..
  85. * .. Common blocks ..
  86. COMMON / SSLCT / SELOPT, SELDIM, SELVAL, SELWR, SELWI
  87. * ..
  88. * .. Intrinsic Functions ..
  89. INTRINSIC ABS, CMPLX, REAL
  90. * ..
  91. * .. Executable Statements ..
  92. *
  93. IF( SELOPT.EQ.0 ) THEN
  94. CSLECT = ( REAL( Z ).LT.ZERO )
  95. ELSE
  96. RMIN = ABS( Z-CMPLX( SELWR( 1 ), SELWI( 1 ) ) )
  97. CSLECT = SELVAL( 1 )
  98. DO 10 I = 2, SELDIM
  99. X = ABS( Z-CMPLX( SELWR( I ), SELWI( I ) ) )
  100. IF( X.LE.RMIN ) THEN
  101. RMIN = X
  102. CSLECT = SELVAL( I )
  103. END IF
  104. 10 CONTINUE
  105. END IF
  106. RETURN
  107. *
  108. * End of CSLECT
  109. *
  110. END