00001 subroutine sourceterm_HaC_CF_pBH(sou)
00002 use phys_constant, only : long
00003 use grid_parameter, only : nrg, ntg, npg
00004 use def_metric_pBH, only : wme, aijaij_trpBH, index_wme
00005 use interface_interpo_linear_type0
00006 use interface_grgrad_midpoint_r3rd_type0
00007 implicit none
00008 real(long), pointer :: sou(:,:,:)
00009 real(long) :: wmegc, dwdx, dwdy, dwdz, aijaijgc, fac1, fac2, index
00010 integer :: irg, itg, ipg
00011
00012
00013
00014
00015
00016
00017
00018 fac1 = 1.0d0/dble(index_wme)
00019 fac2 = dble(index_wme)/8.0d0
00020 index = 8.0d0/dble(index_wme)
00021 do ipg = 1, npg
00022 do itg = 1, ntg
00023 do irg = 1, nrg
00024 call interpo_linear_type0(wmegc,wme,irg,itg,ipg)
00025 call grgrad_midpoint_r3rd_type0(wme,dwdx,dwdy,dwdz,irg,itg,ipg,'bh')
00026 aijaijgc = aijaij_trpBH(irg,itg,ipg)
00027
00028
00029
00030 sou(irg,itg,ipg)= fac1*(dwdx**2.0d0+dwdy**2.0d0+dwdz**2.0d0)/wmegc**2 &
00031 & + fac2*wmegc**index*aijaijgc
00032 end do
00033 end do
00034 end do
00035
00036 end subroutine sourceterm_HaC_CF_pBH