00001 subroutine interpolation_fillup_cartesian_parity_BNS_mpt(fnc, fncca, impt, impt_ex, par)
00002 use phys_constant, only : long
00003 use grid_parameter, only : nrg, ntg, npg, nrf, ntf, npf
00004 use grid_parameter_cartesian, only : nx, ny, nz
00005 use grid_parameter_binary_excision, only : ex_rgmid, ex_radius
00006 use coordinate_grav_xyz, only : x, y, z
00007 use def_binary_parameter, only : dis
00008 use interface_modules_cartesian, ignore_me => interpolation_fillup_cartesian_parity_BNS_mpt
00009 use make_array_3d
00010 implicit none
00011 real(long), pointer :: fnc(:,:,:)
00012 real(long), pointer :: fncca(:,:,:)
00013 real(long) :: xc, yc, zc, cfn, R, par
00014 integer :: ix, iy, iz, impt, impt_ex
00015
00016 do iz = 1, nz
00017 zc = z(iz)
00018 do iy = 1, ny
00019 yc = y(iy)
00020 do ix = 1, nx
00021 xc = x(ix)
00022 call interpo_gr2cgr_4th(fnc,cfn,xc,yc,zc)
00023 fncca(ix,iy,iz) = cfn
00024 end do
00025 end do
00026 end do
00027
00028 call copy_from_mpatch_interpolation_utility(impt_ex)
00029 call copy_def_metric_and_matter_from_mpt(impt_ex)
00030 do iz = 1, nz
00031 zc = z(iz)
00032 do iy = 1, ny
00033 yc = y(iy)
00034 do ix = 1, nx
00035 xc = x(ix)
00036 R = sqrt((xc-ex_rgmid)**2+ yc**2 + zc**2)
00037 if (R <= ex_radius*1.45d0.and.xc >= dis) then
00038 call interpo_gr2cgr_4th(fnc,cfn,-xc+ex_rgmid,-yc,zc)
00039 fncca(ix,iy,iz) = cfn*par
00040 endif
00041 end do
00042 end do
00043 end do
00044 call copy_from_mpatch_interpolation_utility(impt)
00045 call copy_def_metric_and_matter_from_mpt(impt)
00046
00047 end subroutine interpolation_fillup_cartesian_parity_BNS_mpt