dvecs.f 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. *DECK DVECS
  2. SUBROUTINE DVECS (NCOMP, LNFC, YHP, WORK, IWORK, INHOMO, IFLAG)
  3. C***BEGIN PROLOGUE DVECS
  4. C***SUBSIDIARY
  5. C***PURPOSE Subsidiary to DBVSUP
  6. C***LIBRARY SLATEC
  7. C***TYPE DOUBLE PRECISION (SVECS-S, DVECS-D)
  8. C***AUTHOR Watts, H. A., (SNLA)
  9. C***DESCRIPTION
  10. C
  11. C This subroutine is used for the special structure of COMPLEX*16
  12. C valued problems. DMGSBV is called upon to obtain LNFC vectors from an
  13. C original set of 2*LNFC independent vectors so that the resulting
  14. C LNFC vectors together with their imaginary product or mate vectors
  15. C form an independent set.
  16. C
  17. C***SEE ALSO DBVSUP
  18. C***ROUTINES CALLED DMGSBV
  19. C***COMMON BLOCKS DML18J
  20. C***REVISION HISTORY (YYMMDD)
  21. C 750601 DATE WRITTEN
  22. C 890831 Modified array declarations. (WRB)
  23. C 890921 Realigned order of variables in certain COMMON blocks.
  24. C (WRB)
  25. C 891009 Removed unreferenced statement label. (WRB)
  26. C 891214 Prologue converted to Version 4.0 format. (BAB)
  27. C 900328 Added TYPE section. (WRB)
  28. C 910722 Updated AUTHOR section. (ALS)
  29. C***END PROLOGUE DVECS
  30. C
  31. INTEGER ICOCO, IDP, IFLAG, INDPVT, INHOMO, INTEG, IWORK(*), K,
  32. 1 KP, LNFC, LNFCC, MXNON, NCOMP, NDISK, NEQ, NEQIVP, NIC, NIV,
  33. 2 NOPG, NPS, NTAPE, NTP, NUMORT, NXPTS
  34. DOUBLE PRECISION AE, DUM, RE, TOL, WORK(*), YHP(NCOMP,*)
  35. COMMON /DML18J/ AE,RE,TOL,NXPTS,NIC,NOPG,MXNON,NDISK,NTAPE,NEQ,
  36. 1 INDPVT,INTEG,NPS,NTP,NEQIVP,NUMORT,LNFCC,
  37. 2 ICOCO
  38. C***FIRST EXECUTABLE STATEMENT DVECS
  39. IF (LNFC .NE. 1) GO TO 20
  40. DO 10 K = 1, NCOMP
  41. YHP(K,LNFC+1) = YHP(K,LNFCC+1)
  42. 10 CONTINUE
  43. IFLAG = 1
  44. GO TO 60
  45. 20 CONTINUE
  46. NIV = LNFC
  47. LNFC = 2*LNFC
  48. LNFCC = 2*LNFCC
  49. KP = LNFC + 2 + LNFCC
  50. IDP = INDPVT
  51. INDPVT = 0
  52. CALL DMGSBV(NCOMP,LNFC,YHP,NCOMP,NIV,IFLAG,WORK(1),WORK(KP),
  53. 1 IWORK(1),INHOMO,YHP(1,LNFC+1),WORK(LNFC+2),DUM)
  54. LNFC = LNFC/2
  55. LNFCC = LNFCC/2
  56. INDPVT = IDP
  57. IF (IFLAG .NE. 0 .OR. NIV .NE. LNFC) GO TO 40
  58. DO 30 K = 1, NCOMP
  59. YHP(K,LNFC+1) = YHP(K,LNFCC+1)
  60. 30 CONTINUE
  61. IFLAG = 1
  62. GO TO 50
  63. 40 CONTINUE
  64. IFLAG = 99
  65. 50 CONTINUE
  66. 60 CONTINUE
  67. CONTINUE
  68. RETURN
  69. END