00001 subroutine interpolation_fillup_cartesian_bh_all
00002 use phys_constant, only : long
00003 use def_metric
00004 use def_metric_cartesian
00005 use grid_parameter_cartesian, only : nx, ny, nz
00006 use grid_parameter_binary_excision, only : ex_rgmid, ex_radius
00007 use coordinate_grav_xyz, only : x, y, z
00008 use interface_modules_cartesian
00009 use grid_parameter, only : rgin
00010 implicit none
00011 real(long) :: xc, yc, zc, cfn, R
00012 integer :: ix, iy, iz
00013 real(long) :: r1,r2, cpsi,calph,cbvxd,cbvyd,cbvzd
00014
00015 do iz = 1, nz
00016 zc = z(iz)
00017 do iy = 1, ny
00018 yc = y(iy)
00019 do ix = 1, nx
00020 xc = x(ix)
00021 r1 = sqrt(xc**2 + yc**2 + zc**2)
00022 r2 = sqrt((xc-ex_rgmid)**2 + yc**2 + zc**2)
00023 if((r1.ge.rgin).and.(r2.ge.rgin)) then
00024 call interpo_gr2cgr_4th(psi,cpsi,xc,yc,zc)
00025 call interpo_gr2cgr_4th(alph,calph,xc,yc,zc)
00026 call interpo_gr2cgr_4th(bvxd,cbvxd,xc,yc,zc)
00027 call interpo_gr2cgr_4th(bvyd,cbvyd,xc,yc,zc)
00028 call interpo_gr2cgr_4th(bvzd,cbvzd,xc,yc,zc)
00029 psica(ix,iy,iz) = cpsi
00030 alphca(ix,iy,iz) = calph
00031 bvxdca(ix,iy,iz) = cbvxd
00032 bvydca(ix,iy,iz) = cbvyd
00033 bvzdca(ix,iy,iz) = cbvzd
00034 else
00035 psica(ix,iy,iz) = 0.0d0
00036 alphca(ix,iy,iz) = 0.0d0
00037 bvxdca(ix,iy,iz) = 0.0d0
00038 bvydca(ix,iy,iz) = 0.0d0
00039 bvzdca(ix,iy,iz) = 0.0d0
00040 endif
00041 end do
00042 end do
00043 end do
00044
00045 do iz = 1, nz
00046 zc = z(iz)
00047 do iy = 1, ny
00048 yc = y(iy)
00049 do ix = 1, nx
00050 xc = x(ix)
00051 R = sqrt((xc-ex_rgmid)**2 + yc**2 + zc**2)
00052 if ((R <= ex_radius*1.2d0).and.(R>=rgin)) then
00053 call interpo_gr2cgr_4th(psi ,cpsi ,-xc+ex_rgmid,-yc,zc)
00054 call interpo_gr2cgr_4th(alph,calph,-xc+ex_rgmid,-yc,zc)
00055 call interpo_gr2cgr_4th(bvxd,cbvxd,-xc+ex_rgmid,-yc,zc)
00056 call interpo_gr2cgr_4th(bvyd,cbvyd,-xc+ex_rgmid,-yc,zc)
00057 call interpo_gr2cgr_4th(bvzd,cbvzd,-xc+ex_rgmid,-yc,zc)
00058 psica(ix,iy,iz) = cpsi
00059 alphca(ix,iy,iz) = calph
00060 bvxdca(ix,iy,iz) = -cbvxd
00061 bvydca(ix,iy,iz) = -cbvyd
00062 bvzdca(ix,iy,iz) = +cbvzd
00063 endif
00064 end do
00065 end do
00066 end do
00067 end subroutine interpolation_fillup_cartesian_bh_all