dstor1.f 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. *DECK DSTOR1
  2. SUBROUTINE DSTOR1 (U, YH, V, YP, NTEMP, NDISK, NTAPE)
  3. C***BEGIN PROLOGUE DSTOR1
  4. C***SUBSIDIARY
  5. C***PURPOSE Subsidiary to DBVSUP
  6. C***LIBRARY SLATEC
  7. C***TYPE DOUBLE PRECISION (STOR1-S, DSTOR1-D)
  8. C***AUTHOR Watts, H. A., (SNLA)
  9. C***DESCRIPTION
  10. C
  11. C **********************************************************************
  12. C 0 -- storage at output points.
  13. C NTEMP =
  14. C 1 -- temporary storage
  15. C **********************************************************************
  16. C
  17. C***SEE ALSO DBVSUP
  18. C***ROUTINES CALLED (NONE)
  19. C***COMMON BLOCKS DML8SZ
  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 891214 Prologue converted to Version 4.0 format. (BAB)
  26. C 900328 Added TYPE section. (WRB)
  27. C 910722 Updated AUTHOR section. (ALS)
  28. C***END PROLOGUE DSTOR1
  29. INTEGER IGOFX, INHOMO, IVP, J, NCOMP, NCTNF, NDISK, NFC, NTAPE,
  30. 1 NTEMP
  31. DOUBLE PRECISION C, U(*), V(*), XSAV, YH(*), YP(*)
  32. C
  33. C ******************************************************************
  34. C
  35. COMMON /DML8SZ/ C,XSAV,IGOFX,INHOMO,IVP,NCOMP,NFC
  36. C
  37. C *****************************************************************
  38. C
  39. C BEGIN BLOCK PERMITTING ...EXITS TO 80
  40. C***FIRST EXECUTABLE STATEMENT DSTOR1
  41. NCTNF = NCOMP*NFC
  42. DO 10 J = 1, NCTNF
  43. U(J) = YH(J)
  44. 10 CONTINUE
  45. IF (INHOMO .EQ. 1) GO TO 30
  46. C
  47. C ZERO PARTICULAR SOLUTION
  48. C
  49. C ......EXIT
  50. IF (NTEMP .EQ. 1) GO TO 80
  51. DO 20 J = 1, NCOMP
  52. V(J) = 0.0D0
  53. 20 CONTINUE
  54. GO TO 70
  55. 30 CONTINUE
  56. C
  57. C NONZERO PARTICULAR SOLUTION
  58. C
  59. IF (NTEMP .EQ. 0) GO TO 50
  60. C
  61. DO 40 J = 1, NCOMP
  62. V(J) = YP(J)
  63. 40 CONTINUE
  64. C .........EXIT
  65. GO TO 80
  66. 50 CONTINUE
  67. C
  68. DO 60 J = 1, NCOMP
  69. V(J) = C*YP(J)
  70. 60 CONTINUE
  71. 70 CONTINUE
  72. C
  73. C IS OUTPUT INFORMATION TO BE WRITTEN TO DISK
  74. C
  75. IF (NDISK .EQ. 1)
  76. 1 WRITE (NTAPE) (V(J), J = 1, NCOMP),(U(J), J = 1, NCTNF)
  77. 80 CONTINUE
  78. C
  79. RETURN
  80. END