00001 subroutine reset_bh_boundary_all
00002 use phys_constant, only : long, pi
00003 use grid_parameter, only : nrg, ntg, npg, rgin
00004 use trigonometry_grav_theta, only : sinthg, costhg
00005 use trigonometry_grav_phi, only : sinphig, cosphig
00006 use def_binary_parameter, only : sepa
00007 use def_metric
00008 implicit none
00009 real(long) :: st, ct, sp, cp, xa,ya,za, rcm2, xycm2, rcm, tcm, pcm
00010 integer :: itg, ipg
00011
00012 do ipg = 0, npg
00013 do itg = 0, ntg
00014 st = sinthg(itg)
00015 ct = costhg(itg)
00016 sp = sinphig(ipg)
00017 cp = cosphig(ipg)
00018
00019 xa = rgin*st*cp
00020 ya = rgin*st*sp
00021 za = rgin*ct
00022
00023 rcm2 = (xa-0.5d0*sepa)**2 + ya**2 + za**2
00024 xycm2= (xa-0.5d0*sepa)**2 + ya**2
00025
00026 rcm = sqrt(rcm2)
00027 tcm = atan2(sqrt(xycm2),za)
00028 pcm = dmod(2.0d0*pi+datan2(ya,xa-0.5d0*sepa),2.0d0*pi)
00029
00030 psi(0,itg,ipg) = 3.0d0
00031 alps(0,itg,ipg) = 1.0d0
00032 bvxd(0,itg,ipg) = -0.08d0*(-rcm*sin(tcm)*sin(pcm))
00033 bvyd(0,itg,ipg) = -0.08d0*(+rcm*sin(tcm)*cos(pcm))
00034 bvzd(0,itg,ipg) = 0.0d0
00035 end do
00036 end do
00037 end subroutine reset_bh_boundary_all