Nbody6
 All Files Functions Variables
ksrot.f
Go to the documentation of this file.
1  SUBROUTINE ksrot(U,UDOT,THETA)
2 *
3 * KS Orbit rotation.
4 * -----------------
5 * Authors: D.J. Urminsky & D.C. Heggie (2005).
6 *
7  IMPLICIT REAL*8 (a-h,o-z)
8  REAL*8 u(4),udot(4),uhat(4),v(4),vhat(4),uhat2(4),vhat2(4)
9 *
10  us = sqrt(u(1)**2 + u(2)**2 + u(3)**2 + u(4)**2)
11  udotr = 0.0
12  DO 5 k = 1,4
13  uhat(k) = u(k)/us
14  udotr = udotr + udot(k)*uhat(k)
15  5 CONTINUE
16 *
17  vs = 0.0
18  DO 10 k = 1,4
19  v(k) = udot(k) - udotr*uhat(k)
20  vs = vs + v(k)**2
21  10 CONTINUE
22  vs = sqrt(vs)
23  DO 15 k = 1,4
24  vhat(k) = v(k)/vs
25  15 CONTINUE
26 *
27 * Perform the rotation of physical angle THETA.
28  DO 20 k = 1,4
29  uhat2(k) = uhat(k)*cos(0.5d0*theta) + vhat(k)*sin(0.5d0*theta)
30  vhat2(k) = vhat(k)*cos(0.5d0*theta) - uhat(k)*sin(0.5d0*theta)
31  u(k) = us*uhat2(k)
32  udot(k) = udotr*uhat2(k) + vs*vhat2(k)
33  20 CONTINUE
34 *
35  RETURN
36  END