00001 subroutine calc_weight_midpoint_fluid_sphcoord
00002 use grid_parameter, only : nrf, ntg, npg
00003 use coordinate_grav_r, only : rg, hrg
00004 use weight_midpoint_grav, only : hwdrg, hwdtg, hwdpg
00005 use def_matter, only : rs
00006 use weight_midpoint_fluid_sphcoord
00007 use interface_interpo_linear_type0_2Dsurf
00008 implicit none
00009 real(long) :: wgr, wgt, wgp, rrff
00010 integer :: irg, itg, ipg
00011
00012
00013
00014
00015
00016 hwrtpg_fc = 0.0d0
00017
00018 do ipg = 1, npg
00019 do itg = 1, ntg
00020 call interpo_linear_type0_2Dsurf(rrff,rs,itg,ipg)
00021 do irg = 1, nrf
00022 wgr = hwdrg(irg)
00023 wgt = hwdtg(itg)
00024 wgp = hwdpg(ipg)
00025 hwrtpg_fc(irg,itg,ipg) = wgr*wgt*wgp
00026 if (hrg(irg+1).gt.rrff*rg(nrf)) then
00027 wgr = hrg(irg)**2*(rrff*rg(nrf) - rg(irg-1))
00028 hwrtpg_fc(irg,itg,ipg) = wgr*wgt*wgp
00029 exit
00030 end if
00031 end do
00032 end do
00033 end do
00034
00035
00036
00037
00038
00039
00040
00041 end subroutine calc_weight_midpoint_fluid_sphcoord
00042