00001 subroutine interpolation_cartesian_BNS_mpt(impt)
00002 use phys_constant, only : long
00003 use grid_parameter, only : nrf, ntf, npf
00004 use coordinate_grav_r, only : rg
00005 use trigonometry_grav_theta, only : sinthg, costhg
00006 use trigonometry_grav_phi, only : sinphig, cosphig
00007 use grid_parameter_cartesian, only : nx, ny, nz
00008 use grid_parameter_binary_excision, only : ex_rgmid, ex_radius
00009 use coordinate_grav_xyz, only : x, y, z
00010 use def_binary_parameter, only : dis
00011 use def_metric
00012 use def_matter, only : emd, rs
00013 use def_matter_parameter, only : ome
00014 use def_metric_cartesian
00015 use def_matter_cartesian
00016 use def_matter_velocity
00017 use interface_modules_cartesian
00018 implicit none
00019 real(long), pointer :: fnc(:,:,:)
00020 real(long), pointer :: fncca(:,:,:)
00021 real(long) :: xxxx, yyyy, par
00022 integer :: ix, iy, iz, impt, impt_ex, ir, it, ip
00023
00024 if(impt.eq.1) then
00025 impt_ex = 2
00026 par = 1.0d0
00027 end if
00028 if(impt.eq.2) then
00029 impt_ex = 1
00030 par = -1.0d0
00031 end if
00032
00033 call interpolation_fillup_cartesian_parity_BNS_mpt(psi, psica, impt, impt_ex, 1.0d0)
00034 call interpolation_fillup_cartesian_parity_BNS_mpt(alph,alphca, impt, impt_ex, 1.0d0)
00035 call interpolation_fillup_cartesian_parity_BNS_mpt(bvxd,bvxdca, impt, impt_ex,-1.0d0)
00036 call interpolation_fillup_cartesian_parity_BNS_mpt(bvyd,bvydca, impt, impt_ex,-1.0d0)
00037 call interpolation_fillup_cartesian_parity_BNS_mpt(bvzd,bvzdca, impt, impt_ex, 1.0d0)
00038
00039 write(6,*) ' Co-rotational model.'
00040 do ip = 0, npf
00041 do it = 0, ntf
00042 do ir = 0, nrf
00043 xxxx = rg(ir)*rs(it,ip)*sinthg(it)*cosphig(ip)
00044 yyyy = rg(ir)*rs(it,ip)*sinthg(it)*sinphig(ip)
00045 vxu(ir,it,ip) = - ome*yyyy*par
00046 vyu(ir,it,ip) = ome*(xxxx - dis )*par
00047 vzu(ir,it,ip) = 0.0d0
00048 end do
00049 end do
00050 end do
00051
00052 call interpolation_matter(emd,emdca)
00053 call interpolation_matter(vxu, vxca)
00054 call interpolation_matter(vyu, vyca)
00055 call interpolation_matter(vzu, vzca)
00056
00057 end subroutine interpolation_cartesian_BNS_mpt