FIXME : Add documentation
!calls every initiation routine we need: le_grids for integration, init_gs2 transforms to initiate fourier transforms routines...
benefit: calls init_theta_grid, init_kt_grids, init_gs2_layouts and init_species for later use
!!! now need to initiate and assign hypervisc_filter
!!! allocate and initialize arrays
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(diagnostics_type), | intent(inout) | :: | gnostics |
subroutine init_collisional(gnostics)
use kt_grids, only: naky, ntheta0, nx, ny
use theta_grid, only: ntgrid
use species, only: nspec
use diagnostics_config, only: diagnostics_type
use le_grids, only: init_le_grids, nlambda, negrid
use gs2_transforms, only: init_transforms
use gs2_layouts, only: g_lo, init_dist_fn_layouts
use hyper, only: init_hyper
use mp, only: nproc, iproc
implicit none
type(diagnostics_type), intent(inout) :: gnostics
logical :: accel_x
if(.not. gnostics%write_collisional .or. initialized) return
initialized = .true.
!!!calls every initiation routine we need: le_grids for integration, init_gs2 transforms to initiate fourier transforms routines...
! benefit: calls init_theta_grid, init_kt_grids, init_gs2_layouts and init_species for later use
call init_le_grids
! in order to use fft transform routines
call init_transforms(ntgrid, naky, ntheta0, nlambda, negrid, nspec, nx, ny, accel_x)
call init_dist_fn_layouts(ntgrid, naky, ntheta0, nlambda, negrid, nspec, nproc, iproc)
!!!!! now need to initiate and assign hypervisc_filter
call init_hyper
!!!!! allocate and initialize arrays
allocate(tot(-ntgrid:ntgrid,ntheta0,naky,nspec))
allocate(g0(-ntgrid:ntgrid,2,g_lo%llim_proc:g_lo%ulim_alloc))
allocate (coll_heating(ntheta0,naky))
coll_heating=0.0
allocate (coll_heating_2(ntheta0,naky))
coll_heating_2=0.0
end subroutine init_collisional