w90_get_nn Subroutine

public subroutine w90_get_nn(common_data, nn, istdout, istderr, ierr)

probe w90 library for number of finite difference k-point neighbours 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) :: nn

nn is the number of neighbours in F.D. scheme

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

nn is the number of neighbours in F.D. scheme


Calls

proc~~w90_get_nn~2~~CallsGraph proc~w90_get_nn~2 w90_get_nn proc~w90_create_kmesh w90_create_kmesh proc~w90_get_nn~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_nn~2~~CalledByGraph proc~w90_get_nn~2 w90_get_nn proc~w90_get_nn w90_get_nn proc~w90_get_nn->proc~w90_get_nn~2 program~wannier wannier program~wannier->proc~w90_get_nn~2

Source Code

  subroutine w90_get_nn(common_data, nn, istdout, istderr, ierr)
    !! probe w90 library for number of finite difference k-point neighbours
    implicit none

    ! arguments
    integer, intent(out) :: nn, ierr
    !! nn is the number of neighbours in F.D. scheme
    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

    nn = common_data%kmesh_info%nntot
  end subroutine w90_get_nn