1
2      SUBROUTINE HS3CRI (XS,XF,L,LBDCND,YS,YF,M,MBDCND,ZS,ZF,N,NBDCND,
3     1                   ELMBDA,LDIMF,MDIMF,IERROR,W)
4C
5C     PACKAGE HS3CRT, VERSION 1, AUGUST 1985
6C
7      DIMENSION W(*)
8C
9C     CHECK FOR INVALID PARAMETERS.
10C
11      IERROR = 0
12      IF (XS.GT.XF) IERROR=1
13      IF (L.LT.3) IERROR=2
14      IF (LBDCND.LT.0 .OR. LBDCND.GT.4) IERROR=3
15      IF (YS.GT.YF) IERROR=4
16      IF (M.LT.3) IERROR=5
17      IF (MBDCND.LT.0 .OR. MBDCND.GT.4) IERROR=6
18      IF (ZS.GT.ZF) IERROR=7
19      IF (N.LT.3) IERROR=8
20      IF (NBDCND.LT.0 .OR. NBDCND.GT.4) IERROR=9
21      IF (LDIMF.LT.L) IERROR=11
22      IF (MDIMF.LT.M) IERROR=12
23      IF (IERROR.NE.0) RETURN
24      IF (ELMBDA.GT.0.) IERROR=10
25      DELTAX = (XF-XS)/L
26      DELTAY = (YF-YS)/M
27      DELTAZ = (ZF-ZS)/N
28      C1=1./DELTAY**2
29      C2=1./DELTAZ**2
30      LP = LBDCND+1
31      MP = MBDCND+1
32      NP = NBDCND+1
33      LPEROD=1
34      IF (LBDCND.EQ.0) LPEROD=0
35C
36C     SAVE PARAMETERS FOR HS3CRT IN WORK ARRAY W.
37C
38      W(1)=DELTAX
39      W(2)=L
40      W(3)=LP
41      W(4)=DELTAY
42      W(5)=M
43      W(6)=MP
44      W(7)=DELTAZ
45      W(8)=N
46      W(9)=NP
47      W(10)=ELMBDA
48C
49C     DEFINE THE A,B,C COEFFICIENTS IN W-ARRAY.
50C
51      IA = 11
52      IB = IA+L
53      IC = IB+L
54      IW = IC+L
55      S = 1./DELTAX**2
56      ST2 = 2.*S
57      DO 101 I=0,L-1
58         W(IA+I) = S
59         W(IB+I) = -ST2+ELMBDA
60         W(IC+I) = S
61  101 CONTINUE
62      GO TO (111,102,102,104,104),LP
63  102 W(IB)= W(IB)-W(IA)
64      GO TO 106
65  104 W(IB) = W(IB)+W(IA)
66  106 GO TO (111,107,109,109,107),LP
67  107 W(IC-1) = W(IC-1)-W(IB-1)
68      GO TO 111
69  109 W(IC-1) = W(IC-1)+W(IB-1)
70  111 CONTINUE
71      IF (LBDCND .EQ. 0) GO TO 124
72      W(IA) = 0.
73      W(IC+L-1) = 0.
74  124 CONTINUE
75C
76C     INITIALIZE SOLVER ROUTINE PSTG3D.
77C
78      CALL PST3DI(LPEROD,L,MBDCND,M,C1,NBDCND,N,C2,W(IA),W(IB),
79     1            W(IC),LDIMF,MDIMF,IERR1,W(IW))
80      RETURN
81      END
82