00001 subroutine initial_velocity_potential_NS_mpt(impt)
00002 use phys_constant, only : long, pi
00003 use grid_parameter
00004 use coordinate_grav_r
00005 use trigonometry_grav_theta, only : sinthg, costhg
00006 use trigonometry_grav_phi, only : sinphig, cosphig
00007 use def_binary_parameter, only : sepa, dis
00008 use def_matter_parameter, only : ome
00009 use def_metric
00010 use def_matter
00011 use def_velocity_rot
00012 use def_velocity_potential
00013 implicit none
00014 real(long) :: st, ct, sp, cp, xa,ya,za, rcm2, xycm2, rcm, xycm, tcm, pcm, xcm,ycm,zcm
00015 real(long) :: rr, work_shift, pari, qq, hh, pre, rho0, ene
00016 integer :: irf, itf, ipf, impt, npf_l, npf_r
00017 character(30) :: char1, char2, char3, char4, char5
00018
00019 write( 6,*) sepa, dis
00020
00021 if (impt.eq.2) then
00022 work_shift = dis; pari = -1.0;
00023 else
00024 work_shift = -dis; pari = 1.0;
00025 end if
00026
00027 do irf = 0, nrf
00028 do ipf = 0, npf
00029 do itf = 0, ntf
00030 st = sinthg(itf)
00031 ct = costhg(itf)
00032 sp = sinphig(ipf)
00033 cp = cosphig(ipf)
00034 rr = rg(irf)
00035
00036 xa = rr*st*cp
00037 ya = rr*st*sp
00038 za = rr*ct
00039
00040
00041
00042
00043
00044
00045
00046 xcm = (-dis + xa)*pari
00047 ycm = ya*pari
00048 zcm = 0.0d0
00049 qq = emd(irf,itf,ipf)
00050 call peos_q2hprho(qq, hh, pre, rho0, ene)
00051
00052 vepxf(irf,itf,ipf) = 0.0d0
00053 vepyf(irf,itf,ipf) = ome*(-dis)
00054 vepzf(irf,itf,ipf) = 0.0d0
00055
00056 vep(irf,itf,ipf) = vepyf(irf,itf,ipf)*ya
00057 end do
00058 end do
00059 end do
00060
00061 end subroutine initial_velocity_potential_NS_mpt