1      subroutine pre_rotate(o,p,angle,xw,mwm,mwa,nwm,nwa,xwc,mwmc,nwmc,
2     + xs,msa,nsa)
3c
4c $Id$
5c
6      implicit none
7c
8      integer mwm,mwa,nwm,nwa,mwmc,nwmc,msa,nsa
9      real*8 xw(3,mwa,mwm),xwc(3,mwa,mwmc),xs(3,msa)
10      real*8 angle,o(3),p(3),x(3),y(3)
11c
12      integer i,j
13c
14c     rotate
15c
16      do 1 i=1,nsa
17      x(1)=xs(1,i)
18      x(2)=xs(2,i)
19      x(3)=xs(3,i)
20      call rotate(o,p,angle,x,y)
21      xs(1,i)=y(1)
22      xs(2,i)=y(2)
23      xs(3,i)=y(3)
24    1 continue
25      do 2 i=1,nwmc
26      do 3 j=1,nwa
27      x(1)=xwc(1,j,i)
28      x(2)=xwc(2,j,i)
29      x(3)=xwc(3,j,i)
30      call rotate(o,p,angle,x,y)
31      xwc(1,j,i)=y(1)
32      xwc(2,j,i)=y(2)
33      xwc(3,j,i)=y(3)
34    3 continue
35    2 continue
36      do 4 i=1,nwm
37      do 5 j=1,nwa
38      x(1)=xw(1,j,i)
39      x(2)=xw(2,j,i)
40      x(3)=xw(3,j,i)
41      call rotate(o,p,angle,x,y)
42      xw(1,j,i)=y(1)
43      xw(2,j,i)=y(2)
44      xw(3,j,i)=y(3)
45    5 continue
46    4 continue
47      return
48      end
49