w90_get_excl_bands Subroutine

public subroutine w90_get_excl_bands(common_data, excl_bands, istdout, istderr, ierr)

Uses

  • proc~~w90_get_excl_bands~2~~UsesGraph proc~w90_get_excl_bands~2 w90_get_excl_bands module~w90_error w90_error proc~w90_get_excl_bands~2->module~w90_error module~w90_comms w90_comms module~w90_error->module~w90_comms module~w90_error_base w90_error_base module~w90_error->module~w90_error_base module~w90_comms->module~w90_error_base module~w90_constants w90_constants module~w90_comms->module~w90_constants

Arguments

Type IntentOptional Attributes Name
type(lib_common_type), intent(in) :: common_data

library data object

integer, intent(inout), allocatable :: excl_bands(:)
integer, intent(in) :: istdout
integer, intent(in) :: istderr
integer, intent(out) :: ierr

must be allocated with size >= num_excl_bands


Calls

proc~~w90_get_excl_bands~2~~CallsGraph proc~w90_get_excl_bands~2 w90_get_excl_bands proc~prterr prterr proc~w90_get_excl_bands~2->proc~prterr proc~set_error_fatal set_error_fatal proc~w90_get_excl_bands~2->proc~set_error_fatal interface~comms_no_sync_bcast comms_no_sync_bcast proc~prterr->interface~comms_no_sync_bcast interface~comms_no_sync_recv comms_no_sync_recv proc~prterr->interface~comms_no_sync_recv interface~comms_no_sync_send comms_no_sync_send proc~prterr->interface~comms_no_sync_send proc~mpirank mpirank proc~prterr->proc~mpirank proc~mpisize mpisize proc~prterr->proc~mpisize proc~comms_sync_error comms_sync_error proc~set_error_fatal->proc~comms_sync_error proc~set_base_error set_base_error proc~set_error_fatal->proc~set_base_error proc~comms_no_sync_bcast_char comms_no_sync_bcast_char interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_char proc~comms_no_sync_bcast_cmplx comms_no_sync_bcast_cmplx interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_cmplx proc~comms_no_sync_bcast_int comms_no_sync_bcast_int interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_int proc~comms_no_sync_bcast_logical comms_no_sync_bcast_logical interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_logical proc~comms_no_sync_bcast_real comms_no_sync_bcast_real interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_real proc~comms_no_sync_recv_char comms_no_sync_recv_char interface~comms_no_sync_recv->proc~comms_no_sync_recv_char proc~comms_no_sync_recv_cmplx comms_no_sync_recv_cmplx interface~comms_no_sync_recv->proc~comms_no_sync_recv_cmplx proc~comms_no_sync_recv_int comms_no_sync_recv_int interface~comms_no_sync_recv->proc~comms_no_sync_recv_int proc~comms_no_sync_recv_logical comms_no_sync_recv_logical interface~comms_no_sync_recv->proc~comms_no_sync_recv_logical proc~comms_no_sync_recv_real comms_no_sync_recv_real interface~comms_no_sync_recv->proc~comms_no_sync_recv_real proc~comms_no_sync_send_char comms_no_sync_send_char interface~comms_no_sync_send->proc~comms_no_sync_send_char proc~comms_no_sync_send_cmplx comms_no_sync_send_cmplx interface~comms_no_sync_send->proc~comms_no_sync_send_cmplx proc~comms_no_sync_send_int comms_no_sync_send_int interface~comms_no_sync_send->proc~comms_no_sync_send_int proc~comms_no_sync_send_logical comms_no_sync_send_logical interface~comms_no_sync_send->proc~comms_no_sync_send_logical proc~comms_no_sync_send_real comms_no_sync_send_real interface~comms_no_sync_send->proc~comms_no_sync_send_real

Called by

proc~~w90_get_excl_bands~2~~CalledByGraph proc~w90_get_excl_bands~2 w90_get_excl_bands proc~w90_get_excl_bands w90_get_excl_bands proc~w90_get_excl_bands->proc~w90_get_excl_bands~2

Source Code

  subroutine w90_get_excl_bands(common_data, excl_bands, istdout, istderr, ierr)
    use w90_error, only: w90_error_type, set_error_fatal
    implicit none

    integer, allocatable, intent(inout) :: excl_bands(:)
    integer, intent(in) :: istdout, istderr
    integer, intent(out) :: ierr
    !! must be allocated with size >= num_excl_bands
    type(lib_common_type), intent(in) :: common_data
    !! library data object

    type(w90_error_type), allocatable :: error

    ierr = 0

    if (.not. allocated(excl_bands)) then
      call set_error_fatal(error, &
                           'Error: array argument excl_bands in get_excl_bands() call is not allocated', common_data%comm)
      call prterr(error, ierr, istdout, istderr, common_data%comm)
      return
    else if (.not. allocated(common_data%exclude_bands)) then
      call set_error_fatal(error, &
                           'Error: common_data%exclude_bands in get_excl_bands() call is not allocated', common_data%comm)
      call prterr(error, ierr, istdout, istderr, common_data%comm)
      return
    else if (size(excl_bands) < size(common_data%exclude_bands)) then
      call set_error_fatal(error, &
                           'Error: array argument excl_bands in get_excl_bands() call is incorrectly sized', common_data%comm)
      call prterr(error, ierr, istdout, istderr, common_data%comm)
      return
    else
      excl_bands(:) = common_data%exclude_bands(:)
    end if
  end subroutine w90_get_excl_bands