1 SUBROUTINE TLIP3X(X1,X2,X3,Y,NX1,NX2,NX3,XA1,XA2,XA3,YA,LX1L,LX2L, 2 1LX3L,LX1U,LX2U,LX3U,MESS,NMSS,ROUT) 3C 4C*** LINEAR INTERPOLATION OF PACKED TABLE Y=F(X1,X2,X3) 5C 6C AJT DIMENSION Y(2),X1(2),X2(2),X3(2),NP1(7),DA(3),MESS(20),ROUT(2) 7 DIMENSION Y(2),X1(*),X2(*),X3(*),NP1(7),DA(3),MESS(*),ROUT(*) 8 DIMENSION MSSCL(17),RMSCL(17) 9 EQUIVALENCE (RMSCL(1),MSSCL(1)) 10 LOGICAL NOIN3,NAS3,X3A,X3B,MSSG3,EX3,LG(7) 11 EQUIVALENCE (NOIN3,LG(1)),(X3A,LG(2)),(X3B,LG(3)),(MSSG3,LG(4)), 12 1 (EX3,LG(5)),(DA(1),D0),(DA(2),D1),(DA(3),D2),(NAS3,LG(6)) 13 DATA TLIN /4H1TIN/, HOL1 /4H1EXP/ 14 DATA MSSCL /4HTLIP,4H3X ,2*0,3,12*0/ 15C 16C ----INITIALIZE SWITCHES. 17C 18 CALL SWITCH(LG,LX3L,LX3U,XA3,X3,NX3) 19 IF(LG(7))GO TO 1110 20 1000 CALL GLOOK(NX3,XA3,X3,NAS3,NOIN3,I3,T3) 21 1010 ID=I3 22 DO 1030 I=1,2 23 IX=4-I 24 GO TO 1140 25 1020 IF(NOIN3)GO TO 1070 26 1030 ID=ID-1 27 IF(.NOT.EX3)GO TO 1050 28 IF(NX3.LT.3)GO TO 1040 29 IF(X3A.AND.LX3U.GT.1)GO TO 1120 30 IF(X3B.AND.LX3L.GT.1)GO TO 1180 31 1040 IF(X3A)GO TO 1190 32 1050 D0=D1 33 1060 D2=D0+T3*(D2-D1) 34 1070 YA=D2 35 1080 IF(MSSG3.OR.RO.EQ.HOL1)GO TO 1090 36 RETURN 37 1090 IF(ROUT(1).NE.TLIN)GO TO 1100 38 ROUT(1)=HOL1 39 RETURN 40 1100 CONTINUE 41C 42C ----PRINT EXTRAPOLATION MESSAGE. 43C 44 MSSCL(3)=NMSS 45 RMSCL(4)=YA 46C 47C ----1ST VARIABLE. 48C 49 RMSCL(6)=XA1 50 MSSCL(7)=NX1 51 MSSCL(8)=LX1L 52 MSSCL(9)=LX1U 53C 54C ----2ND VARIABLE. 55C 56 RMSCL(10)=XA2 57 MSSCL(11)=NX2 58 MSSCL(12)=LX2L 59 MSSCL(13)=LX2U 60C 61C ----3RD VARIABLE. 62C 63 RMSCL(14)=XA3 64 MSSCL(15)=NX3 65 MSSCL(16)=LX3L 66 MSSCL(17)=LX3U 67 CALL MESSGE(ROUT,MESS,X1,X2,X3,LG,MSSCL) 68 RETURN 69C 70C ----HERE FOR EXTRAP. 71C 72 1110 IF(X3B)GO TO 1160 73C 74C ----HERE FOR XA3 ABOVE 75C 76 T3=XA3-X3(NX3) 77 I3=NX3 78 GO TO 1170 79 1120 I3=I3-2 80 ID=I3 81 IX=1 82 1130 I=0 83 1140 RO=TLIN 84 NP1(1)=-NX2 85 NP1(2)=NX1 86 NP1(3)=NX3 87 NP1(4)=0 88 NP1(5)=0 89 NP1(6)=ID 90 NP1(7)=0 91 CALL TLIP2X(X1,X2,Y,NP1,NX2,XA1,XA2,DA(IX),LX1L,LX2L,LX1U, 92 1 LX2U,MESS,NMSS,RO) 93 IF(I.NE.0)GO TO 1020 94 1150 CALL QUAD(X3(I3),DA,XA3,YA) 95 GO TO 1080 96C 97C ----HERE FOR XA3 BELOW 98C 99 1160 T3=XA3-X3(1) 100 I3=2 101 1170 T3=T3/(X3(I3)-X3(I3-1)) 102 GO TO 1010 103 1180 D0=D1 104 D1=D2 105 ID=3 106 IX=3 107 I3=1 108 GO TO 1130 109 1190 D0=D2 110 GO TO 1060 111 END 112