5 &(op,x,w,iw,y,iy,limvoi,mxptvs,npmax)
55 INTEGER,
INTENT(IN) :: NPMAX,MXPTVS
56 INTEGER,
INTENT(IN) :: IW(npmax,*),IY(npmax,*)
58 INTEGER,
INTENT(IN) :: LIMVOI(11,2)
59 DOUBLE PRECISION,
INTENT(INOUT) :: X(*)
60 DOUBLE PRECISION,
INTENT(IN) :: W(*),Y(*)
61 CHARACTER(LEN=8),
INTENT(IN) :: OP
71 778
FORMAT(1x,
'OPASS (BIEF): IMPLEMENTED UP TO 11 NEIGHBOURS ONLY',/,
72 & 1x,
'CHOOSE STORAGE OF MATRICES : 1')
79 IF(op(1:8).EQ.
'X=WY ')
THEN 81 IF(limvoi(1,1).GT.0)
THEN 83 DO i = limvoi(1,1) , limvoi(1,2)
84 x(i) = w(iw(i,1))*y(iy(i,1))
88 IF(limvoi(2,1).GT.0)
THEN 90 DO i = limvoi(2,1) , limvoi(2,2)
91 x(i) = w(iw(i,1))*y(iy(i,1)) + w(iw(i,2))*y(iy(i,2))
95 IF(mxptvs.GE.3.AND.limvoi(3,1).GT.0)
THEN 96 DO i = limvoi(3,1) , limvoi(3,2)
97 x(i) = w(iw(i,1))*y(iy(i,1)) + w(iw(i,2))*y(iy(i,2))
98 & + w(iw(i,3))*y(iy(i,3))
102 IF(mxptvs.GE.4.AND.limvoi(4,1).GT.0)
THEN 103 DO i = limvoi(4,1) , limvoi(4,2)
104 x(i) = w(iw(i,1))*y(iy(i,1)) + w(iw(i,2))*y(iy(i,2))
105 & + w(iw(i,3))*y(iy(i,3)) + w(iw(i,4))*y(iy(i,4))
109 IF(mxptvs.GE.5.AND.limvoi(5,1).GT.0)
THEN 110 DO i = limvoi(5,1) , limvoi(5,2)
111 x(i) = w(iw(i,1))*y(iy(i,1)) + w(iw(i,2))*y(iy(i,2))
112 & + w(iw(i,3))*y(iy(i,3)) + w(iw(i,4))*y(iy(i,4))
113 & + w(iw(i,5))*y(iy(i,5))
117 IF(mxptvs.GE.6.AND.limvoi(6,1).GT.0)
THEN 118 DO i = limvoi(6,1) , limvoi(6,2)
119 x(i) = w(iw(i,1))*y(iy(i,1)) + w(iw(i,2))*y(iy(i,2))
120 & + w(iw(i,3))*y(iy(i,3)) + w(iw(i,4))*y(iy(i,4))
121 & + w(iw(i,5))*y(iy(i,5)) + w(iw(i,6))*y(iy(i,6))
125 IF(mxptvs.GE.7.AND.limvoi(7,1).GT.0)
THEN 126 DO i = limvoi(7,1) , limvoi(7,2)
127 x(i) = w(iw(i,1))*y(iy(i,1)) + w(iw(i,2))*y(iy(i,2))
128 & + w(iw(i,3))*y(iy(i,3)) + w(iw(i,4))*y(iy(i,4))
129 & + w(iw(i,5))*y(iy(i,5)) + w(iw(i,6))*y(iy(i,6))
130 & + w(iw(i,7))*y(iy(i,7))
134 IF(mxptvs.GE.8.AND.limvoi(8,1).GT.0)
THEN 135 DO i = limvoi(8,1) , limvoi(8,2)
136 x(i) = w(iw(i,1))*y(iy(i,1)) + w(iw(i,2))*y(iy(i,2))
137 & + w(iw(i,3))*y(iy(i,3)) + w(iw(i,4))*y(iy(i,4))
138 & + w(iw(i,5))*y(iy(i,5)) + w(iw(i,6))*y(iy(i,6))
139 & + w(iw(i,7))*y(iy(i,7)) + w(iw(i,8))*y(iy(i,8))
143 IF(mxptvs.GE.9.AND.limvoi(9,1).GT.0)
THEN 144 DO i = limvoi(9,1) , limvoi(9,2)
145 x(i) = w(iw(i,1))*y(iy(i,1)) + w(iw(i,2))*y(iy(i,2))
146 & + w(iw(i,3))*y(iy(i,3)) + w(iw(i,4))*y(iy(i,4))
147 & + w(iw(i,5))*y(iy(i,5)) + w(iw(i,6))*y(iy(i,6))
148 & + w(iw(i,7))*y(iy(i,7)) + w(iw(i,8))*y(iy(i,8))
149 & + w(iw(i,9))*y(iy(i,9))
153 IF(mxptvs.GE.10.AND.limvoi(10,1).GT.0)
THEN 154 DO i = limvoi(10,1) , limvoi(10,2)
155 x(i) = w(iw(i,1))*y(iy(i,1)) + w(iw(i,2))*y(iy(i,2))
156 & + w(iw(i,3))*y(iy(i,3)) + w(iw(i,4))*y(iy(i,4))
157 & + w(iw(i,5))*y(iy(i,5)) + w(iw(i,6))*y(iy(i,6))
158 & + w(iw(i,7))*y(iy(i,7)) + w(iw(i,8))*y(iy(i,8))
159 & + w(iw(i,9))*y(iy(i,9)) + w(iw(i,10))*y(iy(i,10))
163 IF(mxptvs.GE.11.AND.limvoi(11,1).GT.0)
THEN 164 DO i = limvoi(11,1) , limvoi(11,2)
165 x(i) = w(iw(i,1))*y(iy(i,1)) + w(iw(i,2))*y(iy(i,2))
166 & + w(iw(i,3))*y(iy(i,3)) + w(iw(i,4))*y(iy(i,4))
167 & + w(iw(i,5))*y(iy(i,5)) + w(iw(i,6))*y(iy(i,6))
168 & + w(iw(i,7))*y(iy(i,7)) + w(iw(i,8))*y(iy(i,8))
169 & + w(iw(i,9))*y(iy(i,9)) + w(iw(i,10))*y(iy(i,10))
170 & + w(iw(i,11))*y(iy(i,11))
177 3001
FORMAT(1x,
'OPASS (BIEF) : UNKNOWN OPERATION : ',a8)
subroutine opass(OP, X, W, IW, Y, IY, LIMVOI, MXPTVS, NPMAX)