2
SUBROUTINE REORT (NCOMP, Y, YP, YHP, NIV, W, S, P, IP, STOWA,
4
C***BEGIN PROLOGUE REORT
6
C***PURPOSE Subsidiary to BVSUP
8
C***TYPE SINGLE PRECISION (REORT-S, DREORT-D)
9
C***AUTHOR Watts, H. A., (SNLA)
12
C **********************************************************************
15
C Y, YP and YHP = homogeneous solution matrix and particular
16
C solution vector to be orthonormalized.
17
C IFLAG = 1 -- store YHP into Y and YP, test for
18
C reorthonormalization, orthonormalize if needed,
20
C 2 -- store YHP into Y and YP, reorthonormalization,
22
C (preset orthonormalization mode)
23
C 3 -- store YHP into Y and YP, reorthonormalization
24
C (when INHOMO=3 and X=XEND).
25
C **********************************************************************
28
C Y, YP = orthonormalized solutions.
29
C NIV = number of independent vectors returned from DMGSBV.
30
C IFLAG = 0 -- reorthonormalization was performed.
31
C 10 -- solution process must be restarted at the last
32
C orthonormalization point.
33
C 30 -- solutions are linearly dependent, problem must
34
C be restarted from the beginning.
35
C W, P, IP = orthonormalization information.
36
C **********************************************************************
39
C***ROUTINES CALLED MGSBV, SDOT, STOR1, STWAY
40
C***COMMON BLOCKS ML15TO, ML18JR, ML8SZ
41
C***REVISION HISTORY (YYMMDD)
43
C 890531 Changed all specific intrinsics to generic. (WRB)
44
C 890831 Modified array declarations. (WRB)
45
C 890921 Realigned order of variables in certain COMMON blocks.
47
C 891214 Prologue converted to Version 4.0 format. (BAB)
48
C 900328 Added TYPE section. (WRB)
49
C 910722 Updated AUTHOR section. (ALS)
50
C***END PROLOGUE REORT
52
DIMENSION Y(NCOMP,*),YP(*),W(*),S(*),P(*),IP(*),
53
1 STOWA(*),YHP(NCOMP,*)
55
C **********************************************************************
57
COMMON /ML8SZ/ C,XSAV,IGOFX,INHOMO,IVP,NCOMPD,NFC
58
COMMON /ML15TO/ PX,PWCND,TND,X,XBEG,XEND,XOT,XOP,INFO(15),ISTKOP,
59
1 KNSWOT,KOP,LOTJP,MNSWOT,NSWOT
60
COMMON /ML18JR/ AE,RE,TOL,NXPTS,NIC,NOPG,MXNON,NDISK,NTAPE,NEQ,
61
1 INDPVT,INTEG,NPS,NTP,NEQIVP,NUMORT,NFCC,
64
C **********************************************************************
65
C***FIRST EXECUTABLE STATEMENT REORT
68
C CHECK TO SEE IF ORTHONORMALIZATION TEST IS TO BE PERFORMED
70
IF (IFLAG .NE. 1) GO TO 5
72
IF (KNSWOT .GE. NSWOT) GO TO 5
73
IF ((XEND-X)*(X-XOT) .LT. 0.) RETURN
74
5 CALL STOR1(Y,YHP,YP,YHP(1,NFCP),1,0,0)
76
C ****************************************
78
C ORTHOGONALIZE THE HOMOGENEOUS SOLUTIONS Y
79
C AND PARTICULAR SOLUTION YP.
82
CALL MGSBV(NCOMP,NFC,Y,NCOMP,NIV,MFLAG,S,P,IP,INHOMO,YP,W,WCND)
84
C ****************************************
86
C CHECK FOR LINEAR DEPENDENCE OF THE SOLUTIONS.
88
IF (MFLAG .EQ. 0) GO TO 25
89
IF (IFLAG .EQ. 2) GO TO 15
90
IF (NSWOT .GT. 1 .OR. LOTJP .EQ. 0) GO TO 20
94
C RETRIEVE DATA FOR A RESTART AT LAST ORTHONORMALIZATION POINT
96
20 CALL STWAY(Y,YP,YHP,1,STOWA)
105
C ****************************************
107
25 IF (IFLAG .NE. 1) GO TO 60
109
C TEST FOR ORTHONORMALIZATION
111
IF (WCND .LT. 50.*TOL) GO TO 60
113
IF (S(IJK) .GT. 1.0E+20) GO TO 60
116
C USE LINEAR EXTRAPOLATION ON LOGARITHMIC VALUES OF THE NORM
117
C DECREMENTS TO DETERMINE NEXT ORTHONORMALIZATION CHECKPOINT.
118
C OTHER CONTROLS ON THE NUMBER OF STEPS TO THE NEXT CHECKPOINT
119
C ARE ADDED FOR SAFETY PURPOSES.
125
IF (WCND .GT. TND+3.) NSWOT=2*NSWOT
126
IF (WCND .GE. PWCND) GO TO 40
129
IF (DND .GE. 4) NSWOT=NSWOT/2
131
IF (ABS(DX*DNDT) .GT. DND*ABS(XEND-X)) GO TO 40
135
50 NSWOT=MIN(MNSWOT,NSWOT)
140
C ****************************************
142
C ORTHONORMALIZATION NECESSARY SO WE NORMALIZE THE HOMOGENEOUS
143
C SOLUTION VECTORS AND CHANGE W ACCORDINGLY.
152
IF (INHOMO .EQ. 1) W(K)=SRP*W(K)
155
KK = KK + NFCC + 1 - K
156
IF (NFC .EQ. NFCC) GO TO 63
157
IF (L .NE. K/2) GO TO 70
159
65 Y(J,L) = Y(J,L)*VNORM
163
IF (INHOMO .NE. 1 .OR. NPS .EQ. 1) GO TO 100
165
C NORMALIZE THE PARTICULAR SOLUTION
167
YPNM=SDOT(NCOMP,YP,1,YP,1)
168
IF (YPNM .EQ. 0.0) YPNM = 1.0
172
80 YP(J) = YP(J) / YPNM
176
100 IF (IFLAG .EQ. 1) CALL STWAY(Y,YP,YHP,0,STOWA)