00001 subroutine sourceterm_lecc_trG_peos_irrot(sou)
00002 use phys_constant, only : long, pi
00003 use grid_parameter, only : nrg, ntg, npg
00004 use def_metric
00005 use def_matter, only : emdg, jomeg_int, vepxg, vepyg, vepzg
00006 use def_matter_parameter, only : ome, ber, radi, velx
00007 use def_vector_phi
00008 use interface_interpo_linear_type0
00009 implicit none
00010 real(long), pointer :: sou(:,:,:)
00011 real(long) :: emdgc, rhogc, pregc, hhgc, rp2s, utgc, zfac
00012 real(long) :: psigc, alpgc, aijaij, ene, jomeg_intgc
00013 real(long) :: vphig(3), ovdgc(3), bvxdgc, bvydgc, bvzdgc
00014 real(long) :: vepxgc, vepygc, vepzgc, lam
00015 integer :: irg, itg, ipg
00016
00017
00018
00019
00020 do ipg = 1, npg
00021 do itg = 1, ntg
00022 do irg = 1, nrg
00023 call interpo_linear_type0(emdgc,emdg,irg,itg,ipg)
00024 call interpo_linear_type0(vepxgc ,vepxg ,irg,itg,ipg)
00025 call interpo_linear_type0(vepygc ,vepyg ,irg,itg,ipg)
00026 call interpo_linear_type0(vepzgc ,vepzg ,irg,itg,ipg)
00027 call interpo_linear_type0(jomeg_intgc,jomeg_int,irg,itg,ipg)
00028 call interpo_linear_type0(psigc,psi,irg,itg,ipg)
00029 call interpo_linear_type0(alpgc,alph,irg,itg,ipg)
00030 call interpo_linear_type0(bvxdgc,bvxd,irg,itg,ipg)
00031 call interpo_linear_type0(bvydgc,bvyd,irg,itg,ipg)
00032 call interpo_linear_type0(bvzdgc,bvzd,irg,itg,ipg)
00033
00034 aijaij = tfkijkij(irg,itg,ipg)
00035 zfac = 1.0d0
00036 if (emdgc <= 1.0d-15) then
00037 emdgc = 1.0d-15
00038 zfac = 0.0d0
00039 end if
00040 call peos_q2hprho(emdgc, hhgc, pregc, rhogc, ene)
00041
00042 vphig(1) = hvec_phig(irg,itg,ipg,1)
00043 vphig(2) = hvec_phig(irg,itg,ipg,2)
00044 vphig(3) = hvec_phig(irg,itg,ipg,3)
00045
00046 ovdgc(1) = bvxdgc + ome*vphig(1) + velx
00047 ovdgc(2) = bvydgc + ome*vphig(2)
00048 ovdgc(3) = bvzdgc + ome*vphig(3)
00049
00050 lam = ber + ovdgc(1)*vepxgc + ovdgc(2)*vepygc + ovdgc(3)*vepzgc
00051 utgc = lam/hhgc/alpgc/alpgc
00052
00053 rp2s = 3.0d0*hhgc*rhogc*(alpgc*utgc)**2 &
00054 & - 2.0d0*hhgc*rhogc + 5.0d0*pregc
00055
00056 sou(irg,itg,ipg) = + 0.875d0*alpgc*psigc**5*aijaij &
00057 & + radi**2*2.0d0*pi*alpgc*psigc**5*rp2s*zfac
00058 end do
00059 end do
00060 end do
00061 end subroutine sourceterm_lecc_trG_peos_irrot