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