00001 subroutine sourceterm_HaC_drot_SFC(sou)
00002 use phys_constant, only : long, pi
00003 use grid_parameter, only : nrf, ntf, npf
00004 use def_metric_on_SFC_CF, only : psif, alphf
00005 use def_matter, only : emd, jomef_int
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) :: emdfc, rhofc, prefc, hhfc, utfc, rhoHc
00011 real(long) :: psifc, alpfc, ene, jomef_intfc
00012 integer :: irf, itf, ipf
00013
00014
00015
00016
00017 do ipf = 0, npf
00018 do itf = 0, ntf
00019 do irf = 0, nrf
00020 psifc = psif(irf,itf,ipf)
00021 alpfc = alphf(irf,itf,ipf)
00022 emdfc = emd(irf,itf,ipf)
00023 jomef_intfc = jomef_int(irf,itf,ipf)
00024 if (irf.eq.nrf) then
00025
00026 emdfc = 0.0d0
00027 end if
00028 call peos_q2hprho(emdfc, hhfc, prefc, rhofc, ene)
00029 utfc = hhfc/ber*exp(jomef_intfc)
00030 rhoHc = hhfc*rhofc*(alpfc*utfc)**2 - prefc
00031
00032 sou(irf,itf,ipf) = - radi**2*2.0d0*pi*psifc**5*rhoHc
00033 end do
00034 end do
00035 end do
00036 end subroutine sourceterm_HaC_drot_SFC