FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(out), | dimension(:), allocatable | :: | aky_out | ||
real, | intent(out), | dimension(:,:), allocatable | :: | theta0_out | ||
real, | intent(out), | dimension(:), allocatable | :: | akx_out | ||
integer, | intent(out), | dimension(:), allocatable | :: | ikx_out | ||
integer, | intent(out) | :: | naky_x | |||
integer, | intent(out) | :: | ntheta0_x | |||
integer, | intent(out) | :: | nx_x | |||
integer, | intent(out) | :: | ny_x | |||
type(kt_grids_specified_element_config_type), | intent(in), | optional, | dimension(:) | :: | kt_grids_specified_element_config_in |
subroutine get_sizes_and_grids_specified (aky_out, theta0_out, akx_out, ikx_out, &
naky_x, ntheta0_x, nx_x, ny_x, kt_grids_specified_element_config_in)
use mp, only: mp_abort
implicit none
real, dimension(:), allocatable, intent(out) :: aky_out, akx_out
real, dimension(:,:), allocatable, intent(out) :: theta0_out
integer, dimension(:), allocatable, intent(out) :: ikx_out
integer, intent (out) :: naky_x, ntheta0_x, nx_x, ny_x
type(kt_grids_specified_element_config_type), intent(in), dimension(:), optional :: kt_grids_specified_element_config_in
integer :: i
naky_x = naky ; ntheta0_x = ntheta0
nx_x = nmodes ; ny_x = nmodes !Should these be 0 like in range?
allocate(aky_out(naky), akx_out(ntheta0), ikx_out(ntheta0), theta0_out(ntheta0, naky))
if (present(kt_grids_specified_element_config_in)) kt_grids_specified_element_config = kt_grids_specified_element_config_in
if(.not.allocated(kt_grids_specified_element_config)) allocate(kt_grids_specified_element_config(nmodes))
if (size(kt_grids_specified_element_config) /= nmodes) &
call mp_abort("Inconsistent number of config elements.", .true.)
do i = 1, nmodes
call read_element (i, aky_out(i), theta0_out(i, :), akx_out(i))
ikx_out(i) = i - 1
end do
end subroutine get_sizes_and_grids_specified