00001 subroutine source_komar_mass_compact_WL_EMF(soug)
00002 use phys_constant, only : long, pi
00003 use grid_parameter, only : nrg, ntg, npg
00004 use def_metric, only : psi, alph, bvxu, bvyu, bvzu
00005 use def_SEM_tensor_EMF, only : rhoH_EMF, jmd_EMF, trsm_EMF
00006 use interface_interpo_linear_type0
00007 implicit none
00008 real(long), pointer :: soug(:,:,:)
00009 real(long) :: alphw, psiw, rhoHw, esseS
00010 real(long) :: rjjx, rjjy, rjjz, rjjbeta
00011 real(long) :: bvxuw, bvyuw, bvzuw
00012 integer :: irg, itg, ipg
00013
00014
00015 do ipg = 1, npg
00016 do itg = 1, ntg
00017 do irg = 1, nrg
00018 call interpo_linear_type0(psiw,psi,irg,itg,ipg)
00019 call interpo_linear_type0(alphw,alph,irg,itg,ipg)
00020 call interpo_linear_type0(bvxuw,bvxu,irg,itg,ipg)
00021 call interpo_linear_type0(bvyuw,bvyu,irg,itg,ipg)
00022 call interpo_linear_type0(bvzuw,bvzu,irg,itg,ipg)
00023
00024 rhoHw = rhoH_EMF(irg,itg,ipg)
00025 esseS = trsm_EMF(irg,itg,ipg)
00026 rjjx = jmd_EMF(irg,itg,ipg,1)
00027 rjjy = jmd_EMF(irg,itg,ipg,2)
00028 rjjz = jmd_EMF(irg,itg,ipg,3)
00029 rjjbeta = rjjx*bvxuw + rjjy*bvyuw + rjjz*bvzuw
00030
00031 soug(irg,itg,ipg) = (alphw*(esseS+rhoHw) - 2.0d0*rjjbeta)*psiw**6
00032 end do
00033 end do
00034 end do
00035
00036 end subroutine source_komar_mass_compact_WL_EMF