Calculate the time-averaged antenna current
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | istep |
Current simulation timestep |
||
real, | intent(inout), | dimension(:,:) | :: | j_ext |
subroutine calc_jext (istep, j_ext)
use mp, only: proc0
use antenna, only: get_jext
implicit none
!> Current simulation timestep
integer, intent (in) :: istep
!Shouldn't really need intent in here but it's beacuse we zero it before calling calc_jext
real, dimension(:,:), intent(in out) :: j_ext
integer :: i
call get_jext(j_ext)
!Do averages with a history variable
if (proc0) then
!Save variable to history
if (navg > 1) then
! This looks a little odd as we ignore the first step
if (istep > 1) &
j_ext_hist(:,:,mod(istep,navg))= j_ext(:,:)
!Use average of history
if (istep >= navg) then
j_ext=0.
do i=0,navg-1
j_ext(:,:) = j_ext(:,:) + j_ext_hist(:,:,i)/ real(navg)
end do
end if
end if
end if
end subroutine calc_jext