indxb.f 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. *DECK INDXB
  2. SUBROUTINE INDXB (I, IR, IDX, IDP)
  3. C***BEGIN PROLOGUE INDXB
  4. C***SUBSIDIARY
  5. C***PURPOSE Subsidiary to BLKTRI
  6. C***LIBRARY SLATEC
  7. C***TYPE INTEGER (INDXB-I)
  8. C***AUTHOR (UNKNOWN)
  9. C***SEE ALSO BLKTRI
  10. C***ROUTINES CALLED (NONE)
  11. C***COMMON BLOCKS CBLKT
  12. C***REVISION HISTORY (YYMMDD)
  13. C 801001 DATE WRITTEN
  14. C 891214 Prologue converted to Version 4.0 format. (BAB)
  15. C 900402 Added TYPE section. (WRB)
  16. C 920422 Added statement so IDX would always be defined. (WRB)
  17. C***END PROLOGUE INDXB
  18. C
  19. COMMON /CBLKT/ NPP ,K ,EPS ,CNV ,
  20. 1 NM ,NCMPLX ,IK
  21. C***FIRST EXECUTABLE STATEMENT INDXB
  22. IDX = I
  23. IDP = 0
  24. IF (IR) 107,101,103
  25. 101 IF (I-NM) 102,102,107
  26. 102 IDX = I
  27. IDP = 1
  28. RETURN
  29. 103 IZH = 2**IR
  30. ID = I-IZH-IZH
  31. IDX = ID+ID+(IR-1)*IK+IR+(IK-I)/IZH+4
  32. IPL = IZH-1
  33. IDP = IZH+IZH-1
  34. IF (I-IPL-NM) 105,105,104
  35. 104 IDP = 0
  36. RETURN
  37. 105 IF (I+IPL-NM) 107,107,106
  38. 106 IDP = NM+IPL-I+1
  39. 107 RETURN
  40. END