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.7 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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. *> \ingroup complex_eig
  53. *
  54. * =====================================================================
  55. LOGICAL FUNCTION CSLECT( Z )
  56. *
  57. * -- LAPACK test routine --
  58. * -- LAPACK is a software package provided by Univ. of Tennessee, --
  59. * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
  60. *
  61. * .. Scalar Arguments ..
  62. COMPLEX Z
  63. * ..
  64. *
  65. * =====================================================================
  66. *
  67. * .. Parameters ..
  68. REAL ZERO
  69. PARAMETER ( ZERO = 0.0E0 )
  70. * ..
  71. * .. Local Scalars ..
  72. INTEGER I
  73. REAL RMIN, X
  74. * ..
  75. * .. Scalars in Common ..
  76. INTEGER SELDIM, SELOPT
  77. * ..
  78. * .. Arrays in Common ..
  79. LOGICAL SELVAL( 20 )
  80. REAL SELWI( 20 ), SELWR( 20 )
  81. * ..
  82. * .. Common blocks ..
  83. COMMON / SSLCT / SELOPT, SELDIM, SELVAL, SELWR, SELWI
  84. * ..
  85. * .. Intrinsic Functions ..
  86. INTRINSIC ABS, CMPLX, REAL
  87. * ..
  88. * .. Executable Statements ..
  89. *
  90. IF( SELOPT.EQ.0 ) THEN
  91. CSLECT = ( REAL( Z ).LT.ZERO )
  92. ELSE
  93. RMIN = ABS( Z-CMPLX( SELWR( 1 ), SELWI( 1 ) ) )
  94. CSLECT = SELVAL( 1 )
  95. DO 10 I = 2, SELDIM
  96. X = ABS( Z-CMPLX( SELWR( I ), SELWI( I ) ) )
  97. IF( X.LE.RMIN ) THEN
  98. RMIN = X
  99. CSLECT = SELVAL( I )
  100. END IF
  101. 10 CONTINUE
  102. END IF
  103. RETURN
  104. *
  105. * End of CSLECT
  106. *
  107. END