00001 subroutine sourceterm_trG_CF_corot(sou)
00002 use phys_constant, only : long, pi
00003 use grid_parameter, only : nrg, ntg, npg
00004 use def_metric, only : psi, alph
00005 use def_matter, only : emdg
00006 use def_matter_parameter, only : ber, radi
00007 use interface_interpo_linear_type0
00008 implicit none
00009 real(long), pointer :: sou(:,:,:)
00010 real(long) :: emdgc, rhogc, pregc, hhgc, rp2s, utgc, zfac
00011 real(long) :: psigc, alpgc, ene
00012 integer :: irg, itg, ipg
00013
00014
00015
00016
00017 do ipg = 1, npg
00018 do itg = 1, ntg
00019 do irg = 1, nrg
00020 call interpo_linear_type0(emdgc,emdg,irg,itg,ipg)
00021 call interpo_linear_type0(psigc,psi,irg,itg,ipg)
00022 call interpo_linear_type0(alpgc,alph,irg,itg,ipg)
00023 zfac = 1.0d0
00024 if (emdgc <= 1.0d-15) then
00025 emdgc = 1.0d-15
00026 zfac = 0.0d0
00027 end if
00028 call peos_q2hprho(emdgc, hhgc, pregc, rhogc, ene)
00029 utgc = hhgc/ber
00030 rp2s = 3.0d0*hhgc*rhogc*(alpgc*utgc)**2 &
00031 & - 2.0d0*hhgc*rhogc + 5.0d0*pregc
00032
00033 sou(irg,itg,ipg) = + radi**2*2.0d0*pi*alpgc*psigc**5*rp2s*zfac
00034 end do
00035 end do
00036 end do
00037 end subroutine sourceterm_trG_CF_corot