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