kslice_print_info Subroutine

private subroutine kslice_print_info(plot_fermi_lines, fermi_lines_color, plot_curv, plot_morb, plot_shc)

Uses

  • proc~~kslice_print_info~~UsesGraph proc~kslice_print_info kslice_print_info module~w90_parameters w90_parameters proc~kslice_print_info->module~w90_parameters module~w90_io w90_io proc~kslice_print_info->module~w90_io module~w90_parameters->module~w90_io module~w90_constants w90_constants module~w90_parameters->module~w90_constants module~w90_io->module~w90_constants

Arguments

Type IntentOptional AttributesName
logical, intent(in) :: plot_fermi_lines
logical, intent(in) :: fermi_lines_color
logical, intent(in) :: plot_curv
logical, intent(in) :: plot_morb
logical, intent(in) :: plot_shc

Called by

proc~~kslice_print_info~~CalledByGraph proc~kslice_print_info kslice_print_info proc~k_slice k_slice proc~k_slice->proc~kslice_print_info

Contents

Source Code


Source Code

  subroutine kslice_print_info(plot_fermi_lines, fermi_lines_color, plot_curv, plot_morb, plot_shc)
    use w90_io, only: stdout, io_error
    use w90_parameters, only: nfermi, fermi_energy_list, berry_curv_unit

    logical, intent(in)     :: plot_fermi_lines, fermi_lines_color, plot_curv, plot_morb, plot_shc

    write (stdout, '(/,/,1x,a)') &
      'Properties calculated in module  k s l i c e'
    write (stdout, '(1x,a)') &
      '--------------------------------------------'

    if (plot_fermi_lines) then
      if (nfermi /= 1) call io_error( &
        'Must specify one Fermi level when kslice_task=fermi_lines')
      select case (fermi_lines_color)
      case (.false.)
        write (stdout, '(/,3x,a)') '* Fermi lines'
      case (.true.)
        write (stdout, '(/,3x,a)') '* Fermi lines coloured by spin'
      end select
      write (stdout, '(/,7x,a,f10.4,1x,a)') &
        '(Fermi level: ', fermi_energy_list(1), 'eV)'
    endif

    if (plot_curv) then
      if (berry_curv_unit == 'ang2') then
        write (stdout, '(/,3x,a)') '* Negative Berry curvature in Ang^2'
      elseif (berry_curv_unit == 'bohr2') then
        write (stdout, '(/,3x,a)') '* Negative Berry curvature in Bohr^2'
      endif
      if (nfermi /= 1) call io_error( &
        'Must specify one Fermi level when kslice_task=curv')
    elseif (plot_morb) then
      write (stdout, '(/,3x,a)') &
        '* Orbital magnetization k-space integrand in eV.Ang^2'
      if (nfermi /= 1) call io_error( &
        'Must specify one Fermi level when kslice_task=morb')
    elseif (plot_shc) then
      if (berry_curv_unit == 'ang2') then
        write (stdout, '(/,3x,a)') '* Berry curvature-like term ' &
          //'of spin Hall conductivity in Ang^2'
      elseif (berry_curv_unit == 'bohr2') then
        write (stdout, '(/,3x,a)') '* Berry curvature-like term ' &
          //'of spin Hall conductivity in Bohr^2'
      endif
      if (nfermi /= 1) call io_error( &
        'Must specify one Fermi level when kslice_task=shc')
    endif

  end subroutine kslice_print_info