1 SUBROUTINE vpassm(a, b, c, d, trigs, inc1, inc2, inc3, inc4, lot,
8 REAL(rprec),
PARAMETER :: SIN36=0.587785252292473_dp
9 REAL(rprec),
PARAMETER :: COS36=0.809016994374947_dp
10 REAL(rprec),
PARAMETER :: SIN72=0.951056516295154_dp
11 REAL(rprec),
PARAMETER :: COS72=0.309016994374947_dp
12 REAL(rprec),
PARAMETER :: SIN60=0.866025403784437_dp
13 REAL(rprec),
PARAMETER :: p5 = 0.5_dp
17 INTEGER inc1, inc2, inc3, inc4, lot, n, ifac, la
18 REAL(rprec),
DIMENSION(*) :: a, b, c, d
19 REAL(rprec),
DIMENSION(*) :: trigs
23 INTEGER :: m, iink, jink, jump, ibase, jbase, igo, ia, ja, ib, jb
24 1 , l, i, j, ijk, la1, k, kb, ic, jc, kc, id, jd, kd, ie, je, ke
25 REAL(rprec) :: c1,s1,c2,s2,c3,s3,c4,s4
53 IF (igo .gt. 4)
RETURN
54 GOTO (10,50,90,130),igo
67 c(ja+j)=a(ia+i)+a(ib+i)
68 d(ja+j)=b(ia+i)+b(ib+i)
69 c(jb+j)=a(ia+i)-a(ib+i)
70 d(jb+j)=b(ia+i)-b(ib+i)
89 c(ja+j)=a(ia+i)+a(ib+i)
90 d(ja+j)=b(ia+i)+b(ib+i)
91 c(jb+j)=c1*(a(ia+i)-a(ib+i))-s1*(b(ia+i)-b(ib+i))
92 d(jb+j)=s1*(a(ia+i)-a(ib+i))+c1*(b(ia+i)-b(ib+i))
116 c(ja+j)=a(ia+i)+(a(ib+i)+a(ic+i))
117 d(ja+j)=b(ia+i)+(b(ib+i)+b(ic+i))
118 c(jb+j)=(a(ia+i)-p5*(a(ib+i)+a(ic+i)))-(sin60*(b(ib+i)-b(ic+i)))
119 c(jc+j)=(a(ia+i)-p5*(a(ib+i)+a(ic+i)))+(sin60*(b(ib+i)-b(ic+i)))
120 d(jb+j)=(b(ia+i)-p5*(b(ib+i)+b(ic+i)))+(sin60*(a(ib+i)-a(ic+i)))
121 d(jc+j)=(b(ia+i)-p5*(b(ib+i)+b(ic+i)))-(sin60*(a(ib+i)-a(ic+i)))
143 c(ja+j)=a(ia+i)+(a(ib+i)+a(ic+i))
144 d(ja+j)=b(ia+i)+(b(ib+i)+b(ic+i))
146 * c1*((a(ia+i)-p5*(a(ib+i)+a(ic+i)))-(sin60*(b(ib+i)-b(ic+i))))
147 * -s1*((b(ia+i)-p5*(b(ib+i)+b(ic+i)))+(sin60*(a(ib+i)-a(ic+i))))
149 * s1*((a(ia+i)-p5*(a(ib+i)+a(ic+i)))-(sin60*(b(ib+i)-b(ic+i))))
150 * +c1*((b(ia+i)-p5*(b(ib+i)+b(ic+i)))+(sin60*(a(ib+i)-a(ic+i))))
152 * c2*((a(ia+i)-p5*(a(ib+i)+a(ic+i)))+(sin60*(b(ib+i)-b(ic+i))))
153 * -s2*((b(ia+i)-p5*(b(ib+i)+b(ic+i)))-(sin60*(a(ib+i)-a(ic+i))))
155 * s2*((a(ia+i)-p5*(a(ib+i)+a(ic+i)))+(sin60*(b(ib+i)-b(ic+i))))
156 * +c2*((b(ia+i)-p5*(b(ib+i)+b(ic+i)))-(sin60*(a(ib+i)-a(ic+i))))
182 c(ja+j)=(a(ia+i)+a(ic+i))+(a(ib+i)+a(id+i))
183 c(jc+j)=(a(ia+i)+a(ic+i))-(a(ib+i)+a(id+i))
184 d(ja+j)=(b(ia+i)+b(ic+i))+(b(ib+i)+b(id+i))
185 d(jc+j)=(b(ia+i)+b(ic+i))-(b(ib+i)+b(id+i))
186 c(jb+j)=(a(ia+i)-a(ic+i))-(b(ib+i)-b(id+i))
187 c(jd+j)=(a(ia+i)-a(ic+i))+(b(ib+i)-b(id+i))
188 d(jb+j)=(b(ia+i)-b(ic+i))+(a(ib+i)-a(id+i))
189 d(jd+j)=(b(ia+i)-b(ic+i))-(a(ib+i)-a(id+i))
214 c(ja+j)=(a(ia+i)+a(ic+i))+(a(ib+i)+a(id+i))
215 d(ja+j)=(b(ia+i)+b(ic+i))+(b(ib+i)+b(id+i))
217 * c2*((a(ia+i)+a(ic+i))-(a(ib+i)+a(id+i)))
218 * -s2*((b(ia+i)+b(ic+i))-(b(ib+i)+b(id+i)))
220 * s2*((a(ia+i)+a(ic+i))-(a(ib+i)+a(id+i)))
221 * +c2*((b(ia+i)+b(ic+i))-(b(ib+i)+b(id+i)))
223 * c1*((a(ia+i)-a(ic+i))-(b(ib+i)-b(id+i)))
224 * -s1*((b(ia+i)-b(ic+i))+(a(ib+i)-a(id+i)))
226 * s1*((a(ia+i)-a(ic+i))-(b(ib+i)-b(id+i)))
227 * +c1*((b(ia+i)-b(ic+i))+(a(ib+i)-a(id+i)))
229 * c3*((a(ia+i)-a(ic+i))+(b(ib+i)-b(id+i)))
230 * -s3*((b(ia+i)-b(ic+i))-(a(ib+i)-a(id+i)))
232 * s3*((a(ia+i)-a(ic+i))+(b(ib+i)-b(id+i)))
233 * +c3*((b(ia+i)-b(ic+i))-(a(ib+i)-a(id+i)))
261 c(ja+j)=a(ia+i)+(a(ib+i)+a(ie+i))+(a(ic+i)+a(id+i))
262 d(ja+j)=b(ia+i)+(b(ib+i)+b(ie+i))+(b(ic+i)+b(id+i))
263 c(jb+j)=(a(ia+i)+cos72*(a(ib+i)+a(ie+i))-cos36*(a(ic+i)+a(id+i)))
264 * -(sin72*(b(ib+i)-b(ie+i))+sin36*(b(ic+i)-b(id+i)))
265 c(je+j)=(a(ia+i)+cos72*(a(ib+i)+a(ie+i))-cos36*(a(ic+i)+a(id+i)))
266 * +(sin72*(b(ib+i)-b(ie+i))+sin36*(b(ic+i)-b(id+i)))
267 d(jb+j)=(b(ia+i)+cos72*(b(ib+i)+b(ie+i))-cos36*(b(ic+i)+b(id+i)))
268 * +(sin72*(a(ib+i)-a(ie+i))+sin36*(a(ic+i)-a(id+i)))
269 d(je+j)=(b(ia+i)+cos72*(b(ib+i)+b(ie+i))-cos36*(b(ic+i)+b(id+i)))
270 * -(sin72*(a(ib+i)-a(ie+i))+sin36*(a(ic+i)-a(id+i)))
271 c(jc+j)=(a(ia+i)-cos36*(a(ib+i)+a(ie+i))+cos72*(a(ic+i)+a(id+i)))
272 * -(sin36*(b(ib+i)-b(ie+i))-sin72*(b(ic+i)-b(id+i)))
273 c(jd+j)=(a(ia+i)-cos36*(a(ib+i)+a(ie+i))+cos72*(a(ic+i)+a(id+i)))
274 * +(sin36*(b(ib+i)-b(ie+i))-sin72*(b(ic+i)-b(id+i)))
275 d(jc+j)=(b(ia+i)-cos36*(b(ib+i)+b(ie+i))+cos72*(b(ic+i)+b(id+i)))
276 * +(sin36*(a(ib+i)-a(ie+i))-sin72*(a(ic+i)-a(id+i)))
277 d(jd+j)=(b(ia+i)-cos36*(b(ib+i)+b(ie+i))+cos72*(b(ic+i)+b(id+i)))
278 * -(sin36*(a(ib+i)-a(ie+i))-sin72*(a(ic+i)-a(id+i)))
306 c(ja+j)=a(ia+i)+(a(ib+i)+a(ie+i))+(a(ic+i)+a(id+i))
307 d(ja+j)=b(ia+i)+(b(ib+i)+b(ie+i))+(b(ic+i)+b(id+i))
309 * c1*((a(ia+i)+cos72*(a(ib+i)+a(ie+i))-cos36*(a(ic+i)+a(id+i)))
310 * -(sin72*(b(ib+i)-b(ie+i))+sin36*(b(ic+i)-b(id+i))))
311 * -s1*((b(ia+i)+cos72*(b(ib+i)+b(ie+i))-cos36*(b(ic+i)+b(id+i)))
312 * +(sin72*(a(ib+i)-a(ie+i))+sin36*(a(ic+i)-a(id+i))))
314 * s1*((a(ia+i)+cos72*(a(ib+i)+a(ie+i))-cos36*(a(ic+i)+a(id+i)))
315 * -(sin72*(b(ib+i)-b(ie+i))+sin36*(b(ic+i)-b(id+i))))
316 * +c1*((b(ia+i)+cos72*(b(ib+i)+b(ie+i))-cos36*(b(ic+i)+b(id+i)))
317 * +(sin72*(a(ib+i)-a(ie+i))+sin36*(a(ic+i)-a(id+i))))
319 * c4*((a(ia+i)+cos72*(a(ib+i)+a(ie+i))-cos36*(a(ic+i)+a(id+i)))
320 * +(sin72*(b(ib+i)-b(ie+i))+sin36*(b(ic+i)-b(id+i))))
321 * -s4*((b(ia+i)+cos72*(b(ib+i)+b(ie+i))-cos36*(b(ic+i)+b(id+i)))
322 * -(sin72*(a(ib+i)-a(ie+i))+sin36*(a(ic+i)-a(id+i))))
324 * s4*((a(ia+i)+cos72*(a(ib+i)+a(ie+i))-cos36*(a(ic+i)+a(id+i)))
325 * +(sin72*(b(ib+i)-b(ie+i))+sin36*(b(ic+i)-b(id+i))))
326 * +c4*((b(ia+i)+cos72*(b(ib+i)+b(ie+i))-cos36*(b(ic+i)+b(id+i)))
327 * -(sin72*(a(ib+i)-a(ie+i))+sin36*(a(ic+i)-a(id+i))))
329 * c2*((a(ia+i)-cos36*(a(ib+i)+a(ie+i))+cos72*(a(ic+i)+a(id+i)))
330 * -(sin36*(b(ib+i)-b(ie+i))-sin72*(b(ic+i)-b(id+i))))
331 * -s2*((b(ia+i)-cos36*(b(ib+i)+b(ie+i))+cos72*(b(ic+i)+b(id+i)))
332 * +(sin36*(a(ib+i)-a(ie+i))-sin72*(a(ic+i)-a(id+i))))
334 * s2*((a(ia+i)-cos36*(a(ib+i)+a(ie+i))+cos72*(a(ic+i)+a(id+i)))
335 * -(sin36*(b(ib+i)-b(ie+i))-sin72*(b(ic+i)-b(id+i))))
336 * +c2*((b(ia+i)-cos36*(b(ib+i)+b(ie+i))+cos72*(b(ic+i)+b(id+i)))
337 * +(sin36*(a(ib+i)-a(ie+i))-sin72*(a(ic+i)-a(id+i))))
339 * c3*((a(ia+i)-cos36*(a(ib+i)+a(ie+i))+cos72*(a(ic+i)+a(id+i)))
340 * +(sin36*(b(ib+i)-b(ie+i))-sin72*(b(ic+i)-b(id+i))))
341 * -s3*((b(ia+i)-cos36*(b(ib+i)+b(ie+i))+cos72*(b(ic+i)+b(id+i)))
342 * -(sin36*(a(ib+i)-a(ie+i))-sin72*(a(ic+i)-a(id+i))))
344 * s3*((a(ia+i)-cos36*(a(ib+i)+a(ie+i))+cos72*(a(ic+i)+a(id+i)))
345 * +(sin36*(b(ib+i)-b(ie+i))-sin72*(b(ic+i)-b(id+i))))
346 * +c3*((b(ia+i)-cos36*(b(ib+i)+b(ie+i))+cos72*(b(ic+i)+b(id+i)))
347 * -(sin36*(a(ib+i)-a(ie+i))-sin72*(a(ic+i)-a(id+i))))
357 END SUBROUTINE vpassm