00001 subroutine interpolation_cartesian_spin_BNS_mpt(impt)
00002 use phys_constant, only : long
00003 use grid_parameter, only : nrf, ntf, npf, &
00004 & ntfeq, npfxzp, npfxzm, NS_shape
00005 use coordinate_grav_r, only : rg
00006 use trigonometry_grav_theta, only : sinthg, costhg
00007 use trigonometry_grav_phi, only : sinphig, cosphig
00008 use grid_parameter_cartesian, only : nx, ny, nz
00009 use grid_parameter_binary_excision, only : ex_rgmid, ex_radius
00010 use coordinate_grav_xyz, only : x, y, z
00011 use def_binary_parameter, only : dis
00012 use def_metric
00013 use def_matter, only : emd, rs, vep, vepxf, vepyf, vepzf
00014 use def_velocity_rot
00015 use def_matter_parameter, only : ome
00016 use def_metric_cartesian
00017 use def_matter_cartesian
00018 use def_matter_velocity
00019 use interface_flgrad_4th_gridpoint
00020 use interface_flgrad_2nd_gridpoint
00021 use interface_modules_cartesian
00022 implicit none
00023 real(long), pointer :: fnc(:,:,:)
00024 real(long), pointer :: fncca(:,:,:)
00025 real(long) :: xxxx, yyyy, par, dxvep,dyvep,dzvep
00026 integer :: ix, iy, iz, impt, impt_ex, ir, it, ip
00027
00028 if(impt.eq.1) then
00029 impt_ex = 2
00030 par = 1.0d0
00031 end if
00032 if(impt.eq.2) then
00033 impt_ex = 1
00034 par = -1.0d0
00035 end if
00036
00037 call interpolation_fillup_cartesian_parity_BNS_mpt(psi, psica, impt, impt_ex, 1.0d0)
00038 call interpolation_fillup_cartesian_parity_BNS_mpt(alph,alphca, impt, impt_ex, 1.0d0)
00039 call interpolation_fillup_cartesian_parity_BNS_mpt(bvxd,bvxdca, impt, impt_ex,-1.0d0)
00040 call interpolation_fillup_cartesian_parity_BNS_mpt(bvyd,bvydca, impt, impt_ex,-1.0d0)
00041 call interpolation_fillup_cartesian_parity_BNS_mpt(bvzd,bvzdca, impt, impt_ex, 1.0d0)
00042
00043 write(6,*) ' Spinning model.'
00044 do ip = 0, npf
00045 do it = 0, ntf
00046 do ir = 0, nrf
00047 dxvep = vepxf(ir,it,ip)
00048 dyvep = vepyf(ir,it,ip)
00049 dzvep = vepzf(ir,it,ip)
00050 vxu(ir,it,ip) = dxvep*par
00051 vyu(ir,it,ip) = dyvep*par
00052 vzu(ir,it,ip) = dzvep
00053 end do
00054 end do
00055 end do
00056
00057 vxu(0,0:ntf,0:npf) = 0.0d0
00058 vzu(0,0:ntf,0:npf) = 0.0d0
00059
00060
00061 vxu(0:nrf,ntfeq,0) = 0.0d0
00062 vxu(0:nrf,ntfeq,npf) = 0.0d0
00063 vxu(0:nrf,ntfeq,npfxzm) = 0.0d0
00064 vzu(0:nrf,ntfeq,0) = 0.0d0
00065 vzu(0:nrf,ntfeq,npf) = 0.0d0
00066 vzu(0:nrf,ntfeq,npfxzm) = 0.0d0
00067
00068
00069 do ir = 1, nrf
00070 do ip = 0, npf
00071 vzu(ir,ntfeq,ip) = 0.0d0
00072 end do
00073 end do
00074
00075 call interpolation_matter(emd,emdca)
00076 call interpolation_matter(vep,vepca)
00077 call interpolation_matter(vxu, vxca)
00078 call interpolation_matter(vyu, vyca)
00079 call interpolation_matter(vzu, vzca)
00080 call interpolation_matter(wxspf, wxspca)
00081 call interpolation_matter(wyspf, wyspca)
00082 call interpolation_matter(wzspf, wzspca)
00083
00084 end subroutine interpolation_cartesian_spin_BNS_mpt