2
SUBROUTINE HWSCS1 (INTL, TS, TF, M, MBDCND, BDTS, BDTF, RS, RF, N,
3
+ NBDCND, BDRS, BDRF, ELMBDA, F, IDIMF, PERTRB, W, S, AN, BN, CN,
4
+ R, AM, BM, CM, SINT, BMH)
5
C***BEGIN PROLOGUE HWSCS1
7
C***PURPOSE Subsidiary to HWSCSP
9
C***TYPE SINGLE PRECISION (HWSCS1-S)
12
C***ROUTINES CALLED BLKTRI
13
C***REVISION HISTORY (YYMMDD)
15
C 890531 Changed all specific intrinsics to generic. (WRB)
16
C 891009 Removed unreferenced variables. (WRB)
17
C 891214 Prologue converted to Version 4.0 format. (BAB)
18
C 900402 Added TYPE section. (WRB)
19
C***END PROLOGUE HWSCS1
20
DIMENSION F(IDIMF,*) ,BDRS(*) ,BDRF(*) ,BDTS(*) ,
21
1 BDTF(*) ,AM(*) ,BM(*) ,CM(*) ,
22
2 AN(*) ,BN(*) ,CN(*) ,S(*) ,
23
3 R(*) ,SINT(*) ,BMH(*) ,W(*)
24
C***FIRST EXECUTABLE STATEMENT HWSCS1
33
IF (SINT(I)) 101,102,101
35
AM(I) = T1*SIN(THETA-HDTH)
36
CM(I) = T1*SIN(THETA+HDTH)
37
BM(I) = -(AM(I)+CM(I))
44
CZR = 6.*DTH/(DR2*(COS(TS)-COS(TF)))
47
AN(J) = (R(J)-HDR)**2/DR2
48
CN(J) = (R(J)+HDR)**2/DR2
49
BN(J) = -(AN(J)+CN(J))
54
C BOUNDARY CONDITION AT PHI=PS
56
GO TO (104,104,105,105,106,106,104,105,106),MBDCND
68
C BOUNDARY CONDITION AT PHI=PF
70
107 GO TO (108,109,109,108,108,109,110,110,110),MBDCND
75
AM(M+1) = AM(M+1)+CM(M+1)
81
111 WTS = SINT(ITS+1)*AM(ITS+1)/CM(ITS)
82
WTF = SINT(ITF-1)*CM(ITF-1)/AM(ITF)
86
C BOUNDARY CONDITION AT R=RS
89
GO TO (112,112,113,113,114,114),NBDCND
102
S(L) = AN(L)/(BN(L)-CN(L)*S(L+1))
112
YPS = CZR*WTNM*(S(2)-1.)
114
C BOUNDARY CONDITION AT R=RF
116
118 GO TO (119,120,120,119,119,120),NBDCND
121
AN(N+1) = AN(N+1)+CN(N+1)
123
121 WRS = AN(JRS+1)*R(JRS)**2/CN(JRS)
124
WRF = CN(JRF-1)*R(JRF)**2/AN(JRF)
134
GO TO (132,132,123,132,132,123),NBDCND
135
123 GO TO (132,132,124,132,132,124,132,124,124),MBDCND
136
124 IF (ELMBDA) 132,125,125
138
SUM = WTS*WRS+WTS*WRF+WTF*WRS+WTF*WRF
139
IF (ICTR) 126,127,126
141
127 DO 129 J=JRSP,JRFM
148
SUM = SUM+(WTS+WTF)*R(J)**2
151
SUM = SUM+(WRS+WRF)*SINT(I)
154
132 GO TO (133,133,133,133,134,134,133,133,134),MBDCND
155
133 BM(ITS) = BMH(ITS)+ELMBDA/SINT(ITS)**2
156
134 GO TO (135,135,135,135,135,135,136,136,136),MBDCND
157
135 BM(ITF) = BMH(ITF)+ELMBDA/SINT(ITF)**2
158
136 DO 137 I=ITSP,ITFM
159
BM(I) = BMH(I)+ELMBDA/SINT(I)**2
161
GO TO (138,138,140,140,142,142,138,140,142),MBDCND
163
F(2,J) = F(2,J)-AT*F(1,J)/R(J)**2
167
F(1,J) = F(1,J)+TDT*BDTS(J)*AT/R(J)**2
169
142 GO TO (143,145,145,143,143,145,147,147,147),MBDCND
171
F(M,J) = F(M,J)-CT*F(M+1,J)/R(J)**2
175
F(M+1,J) = F(M+1,J)-TDT*BDTF(J)*CT/R(J)**2
177
147 GO TO (151,151,153,153,148,148),NBDCND
178
148 IF (MBDCND-3) 155,149,155
179
149 YHLD = F(ITS,1)-CZR/TDT*(SIN(TF)*BDTF(2)-SIN(TS)*BDTS(2))
186
F(I,2) = F(I,2)-AR*F(I,1)/RS2
190
F(I,1) = F(I,1)+TDR*BDRS(I)*AR/RS**2
192
155 GO TO (156,158,158,156,156,158),NBDCND
195
F(I,N) = F(I,N)-CR*F(I,N+1)/RF2
199
F(I,N+1) = F(I,N+1)-TDR*BDRF(I)*CR/RF**2
203
IF (ISING) 161,170,161
204
161 SUM = WTS*WRS*F(ITS,JRS)+WTS*WRF*F(ITS,JRF)+WTF*WRS*F(ITF,JRS)+
206
IF (ICTR) 162,163,162
207
162 SUM = SUM+WRZ*F(ITS,1)
208
163 DO 165 J=JRSP,JRFM
211
SUM = SUM+R2*SINT(I)*F(I,J)
215
SUM = SUM+R(J)**2*(WTS*F(ITS,J)+WTF*F(ITF,J))
218
SUM = SUM+SINT(I)*(WRS*F(I,JRS)+WRF*F(I,JRF))
223
F(I,J) = F(I,J)-PERTRB
233
173 CALL BLKTRI (IFLG,NP,NUNK,AN(JRS),BN(JRS),CN(JRS),MP,MUNK,
234
1 AM(ITS),BM(ITS),CM(ITS),IDIMF,F(ITS,JRS),IERROR,W)
236
IF (IFLG-1) 174,173,174
237
174 IF (NBDCND) 177,175,177
239
F(I,JRF+1) = F(I,JRS)
241
177 IF (MBDCND) 180,178,180
243
F(ITF+1,J) = F(ITS,J)
246
IF (ICTR) 181,188,181
247
181 IF (ISING) 186,182,186
248
182 SUM = WTS*F(ITS,2)+WTF*F(ITF,2)
250
SUM = SUM+SINT(I)*F(I,2)
253
XP = (F(ITS,1)-YPH)/YPS