w90_get_gkpb Subroutine

public subroutine w90_get_gkpb(common_data, gkpb, istdout, istderr, ierr)

probe w90 library for the triple of reciprocal lattice translations determining phase in k'= k+b setup k-mesh (b vectors) if not already done (sets setup_complete)

Arguments

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

library data object

integer, intent(out) :: gkpb(:,:,:)

gkpb must be dimensioned (3,nk,nnb)

integer, intent(in) :: istdout
integer, intent(in) :: istderr
integer, intent(out) :: ierr

gkpb must be dimensioned (3,nk,nnb)


Calls

proc~~w90_get_gkpb~2~~CallsGraph proc~w90_get_gkpb~2 w90_get_gkpb proc~w90_create_kmesh w90_create_kmesh proc~w90_get_gkpb~2->proc~w90_create_kmesh proc~kmesh_get kmesh_get proc~w90_create_kmesh->proc~kmesh_get proc~prterr prterr proc~w90_create_kmesh->proc~prterr proc~io_stopwatch_start io_stopwatch_start proc~kmesh_get->proc~io_stopwatch_start proc~io_stopwatch_stop io_stopwatch_stop proc~kmesh_get->proc~io_stopwatch_stop proc~kmesh_bvectors_perm kmesh_bvectors_perm proc~kmesh_get->proc~kmesh_bvectors_perm proc~kmesh_get_bvectors kmesh_get_bvectors proc~kmesh_get->proc~kmesh_get_bvectors proc~kmesh_shell_automatic kmesh_shell_automatic proc~kmesh_get->proc~kmesh_shell_automatic proc~kmesh_shell_fixed kmesh_shell_fixed proc~kmesh_get->proc~kmesh_shell_fixed proc~kmesh_shell_from_file kmesh_shell_from_file proc~kmesh_get->proc~kmesh_shell_from_file proc~kmesh_shell_reconstruct kmesh_shell_reconstruct proc~kmesh_get->proc~kmesh_shell_reconstruct proc~kmesh_supercell_sort kmesh_supercell_sort proc~kmesh_get->proc~kmesh_supercell_sort proc~set_error_alloc set_error_alloc proc~kmesh_get->proc~set_error_alloc proc~set_error_dealloc set_error_dealloc proc~kmesh_get->proc~set_error_dealloc proc~set_error_fatal set_error_fatal proc~kmesh_get->proc~set_error_fatal proc~set_error_input set_error_input proc~kmesh_get->proc~set_error_input proc~utility_cart_to_frac utility_cart_to_frac proc~kmesh_get->proc~utility_cart_to_frac proc~utility_compar utility_compar proc~kmesh_get->proc~utility_compar proc~utility_frac_to_cart utility_frac_to_cart proc~kmesh_get->proc~utility_frac_to_cart proc~utility_inverse_mat utility_inverse_mat proc~kmesh_get->proc~utility_inverse_mat proc~utility_recip_lattice utility_recip_lattice proc~kmesh_get->proc~utility_recip_lattice 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_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 proc~kmesh_bvectors_perm->proc~set_error_fatal proc~kmesh_get_bvectors->proc~io_stopwatch_start proc~kmesh_get_bvectors->proc~io_stopwatch_stop proc~kmesh_get_bvectors->proc~set_error_fatal proc~kmesh_shell_automatic->proc~io_stopwatch_start proc~kmesh_shell_automatic->proc~io_stopwatch_stop proc~kmesh_shell_automatic->proc~kmesh_get_bvectors proc~kmesh_shell_automatic->proc~set_error_alloc proc~kmesh_shell_automatic->proc~set_error_dealloc proc~kmesh_shell_automatic->proc~set_error_fatal dgesvd dgesvd proc~kmesh_shell_automatic->dgesvd proc~kmesh_check_condition kmesh_check_condition proc~kmesh_shell_automatic->proc~kmesh_check_condition proc~kmesh_get_amat kmesh_get_amat proc~kmesh_shell_automatic->proc~kmesh_get_amat proc~kmesh_shell_fixed->proc~io_stopwatch_start proc~kmesh_shell_fixed->proc~io_stopwatch_stop proc~kmesh_shell_fixed->proc~kmesh_get_bvectors proc~kmesh_shell_fixed->proc~set_error_alloc proc~kmesh_shell_fixed->proc~set_error_fatal proc~kmesh_shell_fixed->dgesvd proc~kmesh_shell_from_file->proc~io_stopwatch_start proc~kmesh_shell_from_file->proc~io_stopwatch_stop proc~kmesh_shell_from_file->proc~kmesh_get_bvectors proc~kmesh_shell_from_file->proc~set_error_alloc proc~kmesh_shell_from_file->proc~set_error_fatal proc~kmesh_shell_from_file->proc~set_error_input proc~kmesh_shell_from_file->dgesvd proc~set_error_file set_error_file proc~kmesh_shell_from_file->proc~set_error_file proc~kmesh_supercell_sort->proc~io_stopwatch_start proc~kmesh_supercell_sort->proc~io_stopwatch_stop proc~internal_maxloc internal_maxloc proc~kmesh_supercell_sort->proc~internal_maxloc proc~comms_sync_error comms_sync_error proc~set_error_alloc->proc~comms_sync_error proc~set_base_error set_base_error proc~set_error_alloc->proc~set_base_error proc~set_error_dealloc->proc~comms_sync_error proc~set_error_dealloc->proc~set_base_error proc~set_error_fatal->proc~comms_sync_error proc~set_error_fatal->proc~set_base_error proc~set_error_input->proc~comms_sync_error proc~set_error_input->proc~set_base_error proc~utility_inv3 utility_inv3 proc~utility_inverse_mat->proc~utility_inv3 proc~utility_recip_lattice->proc~set_error_fatal proc~utility_recip_lattice_base utility_recip_lattice_base proc~utility_recip_lattice->proc~utility_recip_lattice_base proc~set_error_file->proc~comms_sync_error proc~set_error_file->proc~set_base_error proc~utility_recip_lattice_base->proc~utility_inv3

Called by

proc~~w90_get_gkpb~2~~CalledByGraph proc~w90_get_gkpb~2 w90_get_gkpb proc~w90_get_gkpb w90_get_gkpb proc~w90_get_gkpb->proc~w90_get_gkpb~2

Source Code

  subroutine w90_get_gkpb(common_data, gkpb, istdout, istderr, ierr)
    !! probe w90 library for the triple of reciprocal lattice translations determining phase in k'= k+b
    implicit none

    integer, intent(out) :: gkpb(:, :, :), ierr
    !! gkpb must be dimensioned (3,nk,nnb)
    integer, intent(in) :: istdout, istderr
    type(lib_common_type), intent(inout) :: common_data
    !! library data object

    if (.not. common_data%setup_complete) then
      call w90_create_kmesh(common_data, istdout, istderr, ierr)
      !! setup k-mesh (b vectors) if not already done (sets setup_complete)
      if (ierr > 0) return
    else
      ierr = 0
    end if

    gkpb = common_data%kmesh_info%nncell
  end subroutine w90_get_gkpb