get_sizes_and_grids_specified Subroutine

public 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)

Uses

FIXME : Add documentation

Arguments

Type IntentOptional 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

Contents


Source Code

  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