Nbody6
 All Files Functions Variables
gcinit.f
Go to the documentation of this file.
1  SUBROUTINE gcinit
2 *
3 *
4 * Initialization of 3D cluster orbit.
5 * -----------------------------------
6 *
7  include 'common6.h'
8  common/galaxy/ gmg,rg(3),vg(3),fg(3),fgd(3),tg,
9  & omega,disk,a,b,v02,rl2,gmb,ar,gam,zdum(7)
10  REAL*8 fd(3),fdd(3)
11 *
12 *
13 * Obtain initial force and first derivative from point-mass galaxy.
14  IF (gmg.GT.0.0d0) THEN
15  rin2 = 1.0/(rg(1)**2 + rg(2)**2 + rg(3)**2)
16  rin3 = rin2*sqrt(rin2)
17  rgvg = 3.0*(rg(1)*vg(1) + rg(2)*vg(2) + rg(3)*vg(3))*rin2
18 *
19  DO 1 k = 1,3
20  fg(k) = -gmg*rg(k)*rin3
21  fgd(k) = -gmg*(vg(k) - rgvg*rg(k))*rin3
22  1 CONTINUE
23  ELSE
24  DO 5 k = 1,3
25  fg(k) = 0.0
26  fgd(k) = 0.0
27  5 CONTINUE
28  END IF
29 *
30 * Add possible effect of the bulge (for determining tidal radius).
31  IF (gmb.GT.0.0d0) THEN
32  CALL fbulge(rg,vg,fd,fdd)
33  DO 10 k = 1,3
34  fg(k) = fg(k) + fd(k)
35  fgd(k) = fgd(k) + fdd(k)
36  10 CONTINUE
37  END IF
38 *
39 * Include optional disk contribution (may dominate tidal field).
40  IF (disk.GT.0.0d0) THEN
41  CALL fdisk(rg,vg,fd,fdd)
42  DO 15 k = 1,3
43  fg(k) = fg(k) + fd(k)
44  fgd(k) = fgd(k) + fdd(k)
45  15 CONTINUE
46  END IF
47 *
48 * Check addition of logarithmic galaxy potential (not linearized).
49  IF (v02.GT.0.0d0) THEN
50  CALL fhalo(rg,vg,fd,fdd)
51  DO 20 k = 1,3
52  fg(k) = fg(k) + fd(k)
53  fgd(k) = fgd(k) + fdd(k)
54  20 CONTINUE
55  END IF
56 *
57 * Initialize the time of GC integration.
58  tg = time + toff
59 *
60  RETURN
61 *
62  END