advance_fields Subroutine

public subroutine advance_fields(g, phi, apar, bpar, dist, implicit_solve)

This calls the appropriate routines needed to all fields in the main code. This routine calls the appropriate update depending on the effects included in the simulation (e.g. Electrostatic, Full Flux surface effects or Radiatl Variation effects).

Layouts Arrays Parameters Grids Routines from other field modules Time the communications + field solve

Do we need Full Flux surface effects? This is the routine for advancing fields in fluxtube. Note that this will include Electrostatic and Electromagnetic effects as well as any radial variation effects This is if Full Flux Surface effects are included This routine is only needed in the 'implicit_solve' algorithm This routine is for advancing the full field in the code with FFS effects Set a flag to indicate that the fields have been updated this helps avoid unnecessary field solves Time the communications + field solve

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:, :, -nzgrid:, :, vmu_lo%llim_proc:) :: g
complex, intent(out), dimension(:, :, -nzgrid:, :) :: phi
complex, intent(out), dimension(:, :, -nzgrid:, :) :: apar
complex, intent(out), dimension(:, :, -nzgrid:, :) :: bpar
character(len=*), intent(in) :: dist
logical, intent(in), optional :: implicit_solve