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