00001 subroutine interpolation_fillup_binary(fnc)
00002 use phys_constant, only : long, pi
00003 use grid_parameter, only : ntg, npg, rgin
00004 use grid_parameter_binary_excision, only : ex_rgmid, ex_radius
00005 use grid_points_binary_excision, only : rb, thb, phib, irg_exin, irg_exout
00006 use coordinate_grav_r, only : rg
00007 use coordinate_grav_theta, only : thg
00008 use coordinate_grav_phi, only : phig
00009 use interface_interpo_gr2gr_4th
00010 implicit none
00011 real(long), pointer :: fnc(:,:,:)
00012 real(long) :: rc, thc, phic, cfn
00013 integer :: irg, itg, ipg, nrg_exin, nrg_exout
00014
00015 do ipg = 0, npg
00016 do itg = 0, ntg
00017 nrg_exin = irg_exin(itg,ipg) + 1
00018 nrg_exout = irg_exout(itg,ipg) - 1
00019 if (nrg_exin.eq.0) cycle
00020 do irg = nrg_exin, nrg_exout
00021 rc = rb(irg,itg,ipg)
00022 thc = thb(irg,itg,ipg)
00023 phic = dmod(phib(irg,itg,ipg)+pi,2.0d0*pi)
00024 if (rc.lt.rgin) cycle
00025 if (rc.gt.ex_radius) stop ' interpolation_fillup_binary '
00026 call interpo_gr2gr_4th(fnc,cfn,rc,thc,phic)
00027 fnc(irg,itg,ipg) = cfn
00028 end do
00029 end do
00030 end do
00031
00032 end subroutine interpolation_fillup_binary