00001 subroutine sourceterm_MWspatial_current_CF(souvec)
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, bvxdf, bvydf, bvzdf
00005 use def_matter, only : emd
00006 use def_emfield, only : jtuf, jxuf, jyuf, jzuf
00007 use def_matter_parameter, only : radi
00008 use make_array_3d
00009 implicit none
00010 real(long), pointer :: souvec(:,:,:,:)
00011 real(long) :: vphig(3)
00012 real(long) :: emdfc, jterm, jtufc, jaufc
00013 real(long) :: psifc, alpfc, bvadfc
00014 integer :: ii, irf, itf, ipf
00015
00016
00017
00018
00019 do ii = 1, 3
00020 do ipf = 0, npf
00021 do itf = 0, ntf
00022 do irf = 0, nrf
00023 psifc = psif(irf,itf,ipf)
00024
00025 jtufc = jtuf(irf,itf,ipf)
00026 if (ii == 1) then
00027 bvadfc = bvxdf(irf,itf,ipf)
00028 jaufc = jxuf(irf,itf,ipf)
00029 end if
00030 if (ii == 2) then
00031 bvadfc = bvydf(irf,itf,ipf)
00032 jaufc = jyuf(irf,itf,ipf)
00033 end if
00034 if (ii == 3) then
00035 bvadfc = bvzdf(irf,itf,ipf)
00036 jaufc = jzuf(irf,itf,ipf)
00037 end if
00038 jterm = jaufc + jtufc*bvadfc
00039
00040 souvec(irf,itf,ipf,ii) = - radi**2*4.0d0*pi*psifc**8*jterm
00041
00042 end do
00043 end do
00044 end do
00045 end do
00046
00047 end subroutine sourceterm_MWspatial_current_CF