Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
!-----------------------------------------------------------------------------
!
!
SUBROUTINE upd_vel
!
!
!-----------------------------------------------------------------------------
!
!
! Subroutine to advance the velocities of the bodies for a
! timestep dtime.
!
!
!-----------------------------------------------------------------------------
USE fly_h
implicit none
! Declaration of local variables.
! -------------------------------
INTEGER :: p,k
REAL(KIND=8) :: tn2,a_dot
!-----------------------------------------------------------------------------
!-----------------------------------------------------------------------------
! Loop over all velocity components for all bodies.
!-----------------------------------------------------------------------------
!
!
tn2=tnow+dtime2
ap=f_ap/tn2
a_dot = (om_sum+Omega_l*(tn2**three_o_alpha))
bp = 1./(alpha2*(hubble*hubble)*a_dot*(tn2**2.))
!$OMP PARALLEL PRIVATE(k)
!$OMP PARALLEL DO
DO p=1,nb_res_loc(me+1)
DO k=1,ndim
vel(k,p)=vel(k,p)*(1.-ap*dtime)/ &
(1.+ap*dtime) + acc(k,p)*bp*dtime/(1.+ap*dtime)
! vel(k,p)=vel(k,p) + acc(k,p)*dtime ! Newtonian velocity update
ENDDO
ENDDO
!$OMP END PARALLEL
RETURN
END