first dry run
This commit is contained in:
42
GravityField/realfield.f90
Normal file
42
GravityField/realfield.f90
Normal file
@@ -0,0 +1,42 @@
|
||||
!
|
||||
! project "gravity field"
|
||||
!
|
||||
!-----------------------------------------------------------------------
|
||||
module realfield
|
||||
implicit none
|
||||
|
||||
!-----------------------------------------------------------------------
|
||||
|
||||
type massbody
|
||||
real :: posx, posy
|
||||
real :: mass
|
||||
integer :: serial
|
||||
end type
|
||||
|
||||
!-----------------------------------------------------------------------
|
||||
contains
|
||||
|
||||
function compute_gravity(ix, iy, body)
|
||||
|
||||
integer, intent(in) :: ix, iy
|
||||
type(massbody), intent(in) :: body
|
||||
real :: compute_gravity
|
||||
real :: rx, ry, dist
|
||||
|
||||
rx = real(ix) - body%posx
|
||||
ry = real(iy) - body%posy
|
||||
|
||||
dist = sqrt( (rx*rx) + (ry*ry) )
|
||||
if (dist .LT. 0.15) then
|
||||
write (0, *) "dist too small ", dist
|
||||
compute_gravity = 0e0
|
||||
endif
|
||||
|
||||
compute_gravity = body%mass * (dist ** 2)
|
||||
|
||||
end function
|
||||
|
||||
!-----------------------------------------------------------------------
|
||||
!-----------------------------------------------------------------------
|
||||
|
||||
end module
|
||||
Reference in New Issue
Block a user