FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex, | intent(inout), | dimension (-ntgrid:,:,g_lo%llim_proc:) | :: | g1 | ||
complex, | intent(inout), | dimension (-ntgrid:,:,g_lo%llim_proc:) | :: | g2 | ||
complex, | intent(inout), | dimension (-ntgrid:,:,g_lo%llim_proc:) | :: | g3 | ||
complex, | intent(in), | dimension (-ntgrid:,:,:) | :: | phi | ||
complex, | intent(in), | dimension (-ntgrid:,:,:) | :: | apar | ||
complex, | intent(in), | dimension (-ntgrid:,:,:) | :: | bpar | ||
integer, | intent(in) | :: | istep | |||
real, | intent(in) | :: | bd |
subroutine add_explicit_terms (g1, g2, g3, phi, apar, bpar, istep, bd)
use theta_grid, only: ntgrid
use gs2_layouts, only: g_lo
use gs2_time, only: save_dt_cfl
use job_manage, only: time_message
use mp, only: get_mp_times
implicit none
complex, dimension (-ntgrid:,:,g_lo%llim_proc:), intent (in out) :: g1, g2, g3
complex, dimension (-ntgrid:,:,:), intent (in) :: phi, apar, bpar
integer, intent (in) :: istep
real, intent (in) :: bd
real :: dt_cfl
logical, parameter :: nl = .true.
real :: mp_total_after, mp_total
call time_message(.false., time_add_explicit_terms, 'Explicit terms')
call get_mp_times(total_time = mp_total)
if (nonlin) then
if (istep /= 0) then
call add_explicit (g1, g2, g3, phi, apar, bpar, istep, bd, nl)
end if
else
dt_cfl = dt_cfl_default_large
call save_dt_cfl (dt_cfl)
end if
call time_message(.false., time_add_explicit_terms, 'Explicit terms')
call get_mp_times(total_time = mp_total_after)
time_add_explicit_terms_mpi = time_add_explicit_terms_mpi + (mp_total_after - mp_total)
end subroutine add_explicit_terms