w90_wannier90_readwrite_read_local_kmesh Subroutine

private subroutine w90_wannier90_readwrite_read_local_kmesh(settings, pw90_calculation, pw90_berry, pw90_dos, pw90_spin, pw90_gyrotropic, pw90_boltzwann, recip_lattice, global_kmesh_set, global_kmesh, error, comm)

Uses

  • proc~~w90_wannier90_readwrite_read_local_kmesh~~UsesGraph proc~w90_wannier90_readwrite_read_local_kmesh w90_wannier90_readwrite_read_local_kmesh module~w90_comms w90_comms proc~w90_wannier90_readwrite_read_local_kmesh->module~w90_comms module~w90_constants w90_constants module~w90_comms->module~w90_constants module~w90_error_base w90_error_base module~w90_comms->module~w90_error_base

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(pw90_calculation_type), intent(in) :: pw90_calculation
type(pw90_berry_mod_type), intent(inout) :: pw90_berry
type(pw90_dos_mod_type), intent(inout) :: pw90_dos
type(pw90_spin_mod_type), intent(inout) :: pw90_spin
type(pw90_gyrotropic_type), intent(inout) :: pw90_gyrotropic
type(pw90_boltzwann_type), intent(inout) :: pw90_boltzwann
real(kind=dp), intent(in) :: recip_lattice(3,3)
logical, intent(in) :: global_kmesh_set
type(kmesh_spacing_type), intent(in) :: global_kmesh
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

Calls

proc~~w90_wannier90_readwrite_read_local_kmesh~~CallsGraph proc~w90_wannier90_readwrite_read_local_kmesh w90_wannier90_readwrite_read_local_kmesh proc~get_module_kmesh get_module_kmesh proc~w90_wannier90_readwrite_read_local_kmesh->proc~get_module_kmesh proc~set_error_input set_error_input proc~get_module_kmesh->proc~set_error_input proc~w90_readwrite_get_keyword w90_readwrite_get_keyword proc~get_module_kmesh->proc~w90_readwrite_get_keyword proc~w90_readwrite_get_keyword_vector w90_readwrite_get_keyword_vector proc~get_module_kmesh->proc~w90_readwrite_get_keyword_vector proc~w90_readwrite_get_vector_length w90_readwrite_get_vector_length proc~get_module_kmesh->proc~w90_readwrite_get_vector_length proc~w90_readwrite_set_kmesh w90_readwrite_set_kmesh proc~get_module_kmesh->proc~w90_readwrite_set_kmesh proc~comms_sync_error comms_sync_error proc~set_error_input->proc~comms_sync_error proc~set_base_error set_base_error proc~set_error_input->proc~set_base_error proc~w90_readwrite_get_keyword->proc~set_error_input proc~set_error_fatal set_error_fatal proc~w90_readwrite_get_keyword->proc~set_error_fatal proc~w90_readwrite_get_keyword_vector->proc~set_error_input proc~w90_readwrite_get_keyword_vector->proc~set_error_fatal proc~w90_readwrite_get_vector_length->proc~set_error_input proc~w90_readwrite_get_vector_length->proc~set_error_fatal proc~set_error_fatal->proc~comms_sync_error proc~set_error_fatal->proc~set_base_error

Called by

proc~~w90_wannier90_readwrite_read_local_kmesh~~CalledByGraph proc~w90_wannier90_readwrite_read_local_kmesh w90_wannier90_readwrite_read_local_kmesh proc~w90_postw90_readwrite_read w90_postw90_readwrite_read proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_local_kmesh proc~w90_postw90_readwrite_readall w90_postw90_readwrite_readall proc~w90_postw90_readwrite_readall->proc~w90_wannier90_readwrite_read_local_kmesh program~postw90 postw90 program~postw90->proc~w90_postw90_readwrite_read

Source Code

  subroutine w90_wannier90_readwrite_read_local_kmesh(settings, pw90_calculation, pw90_berry, &
                                                      pw90_dos, pw90_spin, pw90_gyrotropic, &
                                                      pw90_boltzwann, recip_lattice, &
                                                      global_kmesh_set, global_kmesh, error, comm)
    !================================================!
    use w90_comms, only: w90_comm_type
    implicit none

    type(pw90_calculation_type), intent(in) :: pw90_calculation
    type(pw90_berry_mod_type), intent(inout) :: pw90_berry
    type(pw90_dos_mod_type), intent(inout) :: pw90_dos
    type(pw90_spin_mod_type), intent(inout) :: pw90_spin
    type(pw90_gyrotropic_type), intent(inout) :: pw90_gyrotropic
    type(pw90_boltzwann_type), intent(inout) :: pw90_boltzwann
    type(kmesh_spacing_type), intent(in) :: global_kmesh
    type(w90_error_type), allocatable, intent(out) :: error
    type(w90_comm_type), intent(in) :: comm
    type(settings_type), intent(inout) :: settings

    real(kind=dp), intent(in) :: recip_lattice(3, 3)
    logical, intent(in) :: global_kmesh_set

    ! To be called after having read the global flag
    call get_module_kmesh(settings, recip_lattice, global_kmesh_set, global_kmesh, error, comm, &
                          moduleprefix='boltz', should_be_defined=pw90_calculation%boltzwann, &
                          module_kmesh=pw90_boltzwann%kmesh)
    if (allocated(error)) return

    call get_module_kmesh(settings, recip_lattice, global_kmesh_set, global_kmesh, error, comm, &
                          moduleprefix='berry', should_be_defined=pw90_calculation%berry, &
                          module_kmesh=pw90_berry%kmesh)
    if (allocated(error)) return

    call get_module_kmesh(settings, recip_lattice, global_kmesh_set, global_kmesh, error, comm, &
                          moduleprefix='gyrotropic', &
                          should_be_defined=pw90_calculation%gyrotropic, &
                          module_kmesh=pw90_gyrotropic%kmesh)
    if (allocated(error)) return

    call get_module_kmesh(settings, recip_lattice, global_kmesh_set, global_kmesh, error, comm, &
                          moduleprefix='spin', should_be_defined=pw90_calculation%spin_moment, &
                          module_kmesh=pw90_spin%kmesh)
    if (allocated(error)) return

    call get_module_kmesh(settings, recip_lattice, global_kmesh_set, global_kmesh, error, comm, &
                          moduleprefix='dos', should_be_defined=pw90_calculation%dos, &
                          module_kmesh=pw90_dos%kmesh)
    if (allocated(error)) return

  end subroutine w90_wannier90_readwrite_read_local_kmesh