FIXME : Add documentation
subroutine allocate_arrays
use gs2_io_grids, only:nc_grid_file_open
use gs2_io_grids, only: nc_get_grid_sizes, nc_get_grid_scalars
implicit none
integer :: unit
character(200) :: line
logical :: ncsource_exist
inquire(file=ncsource, exist=ncsource_exist)
if (ncsource_exist) then
call nc_grid_file_open(ncsource, "r")
call nc_get_grid_sizes(nthetain, ntgridin, nperiodin)
call nc_get_grid_scalars(shat, drhodpsi, kxfac, qval, rmaj)
else
call get_unused_unit(unit)
open (unit=unit, file=trim(source), status="old")
read (unit=unit, fmt="(a)") line
read (unit=unit, fmt=*,err=10) ntgridin, nperiodin, nthetain, drhodpsi, rmaj, shat, kxfac, qval
10 continue
close (unit=unit)
end if
allocate (thetain(nthetain+1),bmagin(nthetain+1),bmagsm(nthetain+1))
allocate (thetaout(nthetaout),bmagout(nthetaout),alambdaout(nlambdaout))
allocate (thetagrid(-ntgridin:ntgridin))
allocate (gbdrift(-ntgridin:ntgridin))
allocate (gradpar(-ntgridin:ntgridin))
allocate (grho(-ntgridin:ntgridin))
allocate (cvdrift(-ntgridin:ntgridin))
allocate (gds2(-ntgridin:ntgridin))
allocate (bmag(-ntgridin:ntgridin))
allocate (gds21(-ntgridin:ntgridin))
allocate (gds22(-ntgridin:ntgridin))
allocate (cvdrift0(-ntgridin:ntgridin))
allocate (gbdrift0(-ntgridin:ntgridin))
allocate (Rplot(-ntgridin:ntgridin))
allocate (Rprime(-ntgridin:ntgridin))
allocate (Zplot(-ntgridin:ntgridin))
allocate (Zprime(-ntgridin:ntgridin))
allocate (aplot(-ntgridin:ntgridin))
allocate (aprime(-ntgridin:ntgridin))
end subroutine allocate_arrays