00001 subroutine bh_boundary_AH_d_alps(sou_surf)
00002 use phys_constant, only : long
00003 use grid_parameter, only : nrg, ntg, npg, rgin
00004 use def_metric, only : psi
00005 use def_bh_parameter, only : ome_bh, spin_bh, alph_bh, psi_bh, bh_bctype
00006 use def_binary_parameter, only : sepa
00007 use def_metric_excurve_grid, only : tfkij_grid
00008 use def_vector_bh, only : hvec_bh_cbh_xg,hvec_bh_cm_phig,hvec_bh_cbh_spin
00009 use make_array_2d
00010 use interface_grdr_gridpoint_type0_nosym
00011 use interface_interpo_linear_type0_2Dsurf
00012 implicit none
00013 real(long), pointer :: sou_surf(:,:), dsou_surf(:,:)
00014 real(long), pointer :: psi_bhsurf(:,:), dpsi_bhsurf(:,:)
00015 real(long) :: work(2,2), deriv, dpsidr
00016 real(long) :: Aij_surf, Aij_sisj, si, sj
00017 real(long) :: psigc, psigc3, psigcinv2
00018 real(long) :: vphi_cm, vphi_cbh
00019 integer :: itg, ipg, ii, jj
00020
00021 call alloc_array2d(psi_bhsurf, 0, ntg, 0, npg)
00022
00023 psi_bhsurf(0:ntg,0:npg) = psi(0,0:ntg,0:npg)
00024
00025 do ipg = 1, npg
00026 do itg = 1, ntg
00027 call interpo_linear_type0_2Dsurf(psigc,psi_bhsurf,itg,ipg)
00028 sou_surf(itg,ipg) = alph_bh*psigc
00029 end do
00030 end do
00031
00032 deallocate(psi_bhsurf)
00033
00034 end subroutine bh_boundary_AH_d_alps