write postw90 parameters to stdout
subroutine param_postw90_write
!==================================================================!
! !
!! write postw90 parameters to stdout
! !
!===================================================================
implicit none
integer :: i, loop, nat, nsp
! System
write (stdout, *)
write (stdout, '(36x,a6)') '------'
write (stdout, '(36x,a6)') 'SYSTEM'
write (stdout, '(36x,a6)') '------'
write (stdout, *)
if (lenconfac .eq. 1.0_dp) then
write (stdout, '(30x,a21)') 'Lattice Vectors (Ang)'
else
write (stdout, '(28x,a22)') 'Lattice Vectors (Bohr)'
endif
write (stdout, 101) 'a_1', (real_lattice(1, I)*lenconfac, i=1, 3)
write (stdout, 101) 'a_2', (real_lattice(2, I)*lenconfac, i=1, 3)
write (stdout, 101) 'a_3', (real_lattice(3, I)*lenconfac, i=1, 3)
write (stdout, *)
write (stdout, '(19x,a17,3x,f11.5)', advance='no') &
'Unit Cell Volume:', cell_volume*lenconfac**3
if (lenconfac .eq. 1.0_dp) then
write (stdout, '(2x,a7)') '(Ang^3)'
else
write (stdout, '(2x,a8)') '(Bohr^3)'
endif
write (stdout, *)
if (lenconfac .eq. 1.0_dp) then
write (stdout, '(24x,a33)') 'Reciprocal-Space Vectors (Ang^-1)'
else
write (stdout, '(22x,a34)') 'Reciprocal-Space Vectors (Bohr^-1)'
endif
write (stdout, 101) 'b_1', (recip_lattice(1, I)/lenconfac, i=1, 3)
write (stdout, 101) 'b_2', (recip_lattice(2, I)/lenconfac, i=1, 3)
write (stdout, 101) 'b_3', (recip_lattice(3, I)/lenconfac, i=1, 3)
write (stdout, *) ' '
! Atoms
if (num_atoms > 0) then
write (stdout, '(1x,a)') '*----------------------------------------------------------------------------*'
if (lenconfac .eq. 1.0_dp) then
write (stdout, '(1x,a)') '| Site Fractional Coordinate Cartesian Coordinate (Ang) |'
else
write (stdout, '(1x,a)') '| Site Fractional Coordinate Cartesian Coordinate (Bohr) |'
endif
write (stdout, '(1x,a)') '+----------------------------------------------------------------------------+'
do nsp = 1, num_species
do nat = 1, atoms_species_num(nsp)
write (stdout, '(1x,a1,1x,a2,1x,i3,3F10.5,3x,a1,1x,3F10.5,4x,a1)') &
& '|', atoms_symbol(nsp), nat, atoms_pos_frac(:, nat, nsp),&
& '|', atoms_pos_cart(:, nat, nsp)*lenconfac, '|'
end do
end do
write (stdout, '(1x,a)') '*----------------------------------------------------------------------------*'
else
write (stdout, '(25x,a)') 'No atom positions specified'
end if
write (stdout, *) ' '
! Main
write (stdout, *) ' '
write (stdout, '(1x,a78)') '*-------------------------------- POSTW90 -----------------------------------*'
write (stdout, '(1x,a46,10x,I8,13x,a1)') '| Number of Wannier Functions :', num_wann, '|'
write (stdout, '(1x,a46,10x,I8,13x,a1)') '| Number of electrons per state :', num_elec_per_state, '|'
if (abs(scissors_shift) > 1.0e-7_dp .or. iprint > 0) then
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Scissor shift applied to conduction bands :', scissors_shift, '|'
if (num_valence_bands > 0) then
write (stdout, '(1x,a46,10x,i8,13x,a1)') '| Number of valence bands :', num_valence_bands, '|'
else
write (stdout, '(1x,a78)') '| Number of valence bands : not defined |'
endif
endif
if (spin_decomp .or. iprint > 2) &
write (stdout, '(1x,a46,10x,L8,13x,a1)') '| Spin decomposition :', spin_decomp, '|'
if (spin_moment .or. iprint > 2) &
write (stdout, '(1x,a46,10x,L8,13x,a1)') '| Compute Spin moment :', spin_moment, '|'
if (spin_decomp .or. spin_moment .or. iprint > 2) then
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Polar angle of spin quantisation axis :', spin_axis_polar, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Azimuthal angle of spin quantisation axis :', spin_axis_azimuth, '|'
if (spn_formatted) then
write (stdout, '(1x,a46,9x,a9,13x,a1)') '| Spn file-type :', 'formatted', '|'
else
write (stdout, '(1x,a46,7x,a11,13x,a1)') '| Spn file-type :', 'unformatted', '|'
endif
if (uHu_formatted) then
write (stdout, '(1x,a46,9x,a9,13x,a1)') '| uHu file-type :', 'formatted', '|'
else
write (stdout, '(1x,a46,7x,a11,13x,a1)') '| uHu file-type :', 'unformatted', '|'
endif
end if
if (size(fermi_energy_list) == 1) then
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Fermi energy (eV) :', fermi_energy_list(1), '|'
else
write (stdout, '(1x,a21,I8,a12,f8.3,a4,f8.3,a3,13x,a1)') '| Fermi energy :', size(fermi_energy_list), &
' steps from ', fermi_energy_list(1), ' to ', &
fermi_energy_list(size(fermi_energy_list)), ' eV', '|'
end if
write (stdout, '(1x,a46,10x,I8,13x,a1)') '| Output verbosity (1=low, 5=high) :', iprint, '|'
write (stdout, '(1x,a46,10x,I8,13x,a1)') '| Timing Level (1=low, 5=high) :', timing_level, '|'
write (stdout, '(1x,a46,10x,I8,13x,a1)') '| Optimisation (0=memory, 3=speed) :', optimisation, '|'
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Length Unit :', trim(length_unit), '|'
write (stdout, '(1x,a78)') '*----------------------------------------------------------------------------*'
write (stdout, '(1x,a78)') '*------------------------ Global Smearing Parameters ------------------------*'
if (adpt_smr) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Adaptive width smearing :', ' T', '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Adaptive smearing factor :', adpt_smr_fac, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Maximum allowed smearing width (eV) :', adpt_smr_max, '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Fixed width smearing :', ' T', '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Smearing width :', smr_fixed_en_width, '|'
endif
write (stdout, '(1x,a21,5x,a47,4x,a1)') '| Smearing Function ', trim(param_get_smearing_type(smr_index)), '|'
if (global_kmesh_set) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Global interpolation k-points defined :', ' T', '|'
if (kmesh_spacing > 0.0_dp) then
write (stdout, '(1x,a15,i4,1x,a1,i4,1x,a1,i4,16x,a11,f8.3,11x,1a)') '| Grid size = ', &
kmesh(1), 'x', kmesh(2), 'x', kmesh(3), ' Spacing = ', kmesh_spacing, '|'
else
write (stdout, '(1x,a46,2x,i4,1x,a1,i4,1x,a1,i4,13x,1a)') '| Grid size :' &
, kmesh(1), 'x', kmesh(2), 'x', kmesh(3), '|'
endif
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Global interpolation k-points defined :', ' F', '|'
endif
write (stdout, '(1x,a78)') '*----------------------------------------------------------------------------*'
! DOS
if (dos .or. iprint > 2) then
write (stdout, '(1x,a78)') '*---------------------------------- DOS -------------------------------------*'
write (stdout, '(1x,a46,10x,L8,13x,a1)') '| Plotting Density of States :', dos, '|'
if (num_dos_project > 1) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Compute Wannier Projected DOS :', ' T', '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Compute Wannier Projected DOS :', ' F', '|'
endif
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Minimum energy range for DOS plot :', dos_energy_min, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Maximum energy range for DOS plot :', dos_energy_max, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Energy step for DOS plot :', dos_energy_step, '|'
if (dos_adpt_smr .eqv. adpt_smr .and. dos_adpt_smr_fac == adpt_smr_fac .and. dos_adpt_smr_max == adpt_smr_max &
.and. dos_smr_fixed_en_width == smr_fixed_en_width .and. smr_index == dos_smr_index) then
write (stdout, '(1x,a78)') '| Using global smearing parameters |'
else
if (dos_adpt_smr) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Adaptive width smearing :', ' T', '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Adaptive smearing factor :', dos_adpt_smr_fac, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Maximum allowed smearing width :', dos_adpt_smr_max, '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Fixed width smearing :', ' T', '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Smearing width :', dos_smr_fixed_en_width, '|'
endif
write (stdout, '(1x,a21,5x,a47,4x,a1)') '| Smearing Function ', trim(param_get_smearing_type(dos_smr_index)), '|'
endif
if (kmesh(1) == dos_kmesh(1) .and. kmesh(2) == dos_kmesh(2) .and. kmesh(3) == dos_kmesh(3)) then
write (stdout, '(1x,a78)') '| Using global k-point set for interpolation |'
else
if (dos_kmesh_spacing > 0.0_dp) then
write (stdout, '(1x,a15,i4,1x,a1,i4,1x,a1,i4,16x,a11,f8.3,11x,1a)') '| Grid size = ', &
dos_kmesh(1), 'x', dos_kmesh(2), 'x', dos_kmesh(3), ' Spacing = ', dos_kmesh_spacing, '|'
else
write (stdout, '(1x,a46,2x,i4,1x,a1,i4,1x,a1,i4,13x,1a)') '| Grid size :' &
, dos_kmesh(1), 'x', dos_kmesh(2), 'x', dos_kmesh(3), '|'
endif
endif
endif
write (stdout, '(1x,a78)') '*----------------------------------------------------------------------------*'
if (kpath .or. iprint > 2) then
write (stdout, '(1x,a78)') '*--------------------------------- KPATH ------------------------------------*'
write (stdout, '(1x,a46,10x,L8,13x,a1)') '| Plot Properties along a path in k-space :', kpath, '|'
write (stdout, '(1x,a46,10x,I8,13x,a1)') '| Divisions along first kpath section :', kpath_num_points, '|'
if (index(kpath_task, 'bands') > 0) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Plot energy bands :', ' T', '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Plot energy bands :', ' F', '|'
endif
if (index(kpath_task, 'curv') > 0) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Plot Berry curvature :', ' T', '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Plot Berry curvature :', ' F', '|'
endif
if (index(kpath_task, 'morb') > 0) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Plot orbital magnetisation contribution :', ' T', '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Plot orbital magnetisation contribution :', ' F', '|'
endif
if (index(kpath_task, 'shc') > 0) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Plot spin Hall conductivity contribution :', ' T', '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Plot spin Hall conductivity contribution :', ' F', '|'
endif
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Property used to colour code the bands :', trim(kpath_bands_colour), '|'
write (stdout, '(1x,a78)') '*----------------------------------------------------------------------------*'
write (stdout, '(1x,a78)') '| K-space path sections: |'
if (bands_num_spec_points == 0) then
write (stdout, '(1x,a78)') '| None defined |'
else
do loop = 1, bands_num_spec_points, 2
write (stdout, '(1x,a10,2x,a1,2x,3F7.3,5x,a3,2x,a1,2x,3F7.3,7x,a1)') '| From:', bands_label(loop), &
(bands_spec_points(i, loop), i=1, 3), 'To:', bands_label(loop + 1), (bands_spec_points(i, loop + 1), i=1, 3), '|'
end do
end if
write (stdout, '(1x,a78)') '*----------------------------------------------------------------------------*'
endif
if (kslice .or. iprint > 2) then
write (stdout, '(1x,a78)') '*--------------------------------- KSLICE -----------------------------------*'
write (stdout, '(1x,a46,10x,L8,13x,a1)') '| Plot Properties along a slice in k-space :', kslice, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Fermi level used for slice :', fermi_energy_list(1), '|'
write (stdout, '(1x,a46,10x,I8,13x,a1)') '| Divisions along first kpath section :', kpath_num_points, '|'
if (index(kslice_task, 'fermi_lines') > 0) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Plot energy contours (fermi lines) :', ' T', '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Plot energy contours (fermi lines) :', ' F', '|'
endif
if (index(kslice_task, 'curv') > 0) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Plot Berry curvature (sum over occ states):', ' T', '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Plot Berry curvature (sum over occ states):', ' F', '|'
endif
if (index(kslice_task, 'morb') > 0) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Plot orbital magnetisation contribution :', ' T', '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Plot orbital magnetisation contribution :', ' F', '|'
endif
if (index(kslice_task, 'shc') > 0) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Plot spin Hall conductivity contribution :', ' T', '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Plot spin Hall conductivity contribution :', ' F', '|'
endif
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Property used to colour code the lines :', &
trim(kslice_fermi_lines_colour), '|'
write (stdout, '(1x,a78)') '| 2D slice parameters (in reduced coordinates): |'
write (stdout, '(1x,a14,2x,3F8.3,37x,a1)') '| Corner: ', (kslice_corner(i), i=1, 3), '|'
write (stdout, '(1x,a14,2x,3F8.3,10x,a12,2x,i4,9x,a1)') &
'| Vector1: ', (kslice_b1(i), i=1, 3), ' Divisions:', kslice_2dkmesh(1), '|'
write (stdout, '(1x,a14,2x,3F8.3,10x,a12,2x,i4,9x,a1)') &
'| Vector2: ', (kslice_b2(i), i=1, 3), ' Divisions:', kslice_2dkmesh(1), '|'
write (stdout, '(1x,a78)') '*----------------------------------------------------------------------------*'
endif
if (berry .or. iprint > 2) then
write (stdout, '(1x,a78)') '*--------------------------------- BERRY ------------------------------------*'
write (stdout, '(1x,a46,10x,L8,13x,a1)') '| Compute Berry Phase related properties :', berry, '|'
if (index(berry_task, 'kubo') > 0) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Compute Optical Conductivity and JDOS :', ' T', '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Compute Optical Conductivity and JDOS :', ' F', '|'
endif
if (index(berry_task, 'ahc') > 0) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Compute Anomalous Hall Conductivity :', ' T', '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Compute Anomalous Hall Conductivity :', ' F', '|'
endif
if (index(berry_task, 'sc') > 0) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Compute Shift Current :', ' T', '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Compute Shift Current :', ' F', '|'
endif
if (index(berry_task, 'morb') > 0) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Compute Orbital Magnetisation :', ' T', '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Compute Orbital Magnetisation :', ' F', '|'
endif
if (index(berry_task, 'shc') > 0) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Compute Spin Hall Conductivity :', ' T', '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Compute Spin Hall Conductivity :', ' F', '|'
endif
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Lower frequency for optical responses :', kubo_freq_min, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Upper frequency for optical responses :', kubo_freq_max, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Step size for optical responses :', kubo_freq_step, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Upper eigenvalue for optical responses :', kubo_eigval_max, '|'
if (index(berry_task, 'sc') > 0) then
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Smearing factor for shift current :', sc_eta, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Frequency theshold for shift current :', sc_w_thr, '|'
write (stdout, '(1x,a46,1x,a27,3x,a1)') '| Bloch sums :', &
trim(param_get_convention_type(sc_phase_conv)), '|'
end if
if (kubo_adpt_smr .eqv. adpt_smr .and. kubo_adpt_smr_fac == adpt_smr_fac .and. kubo_adpt_smr_max == adpt_smr_max &
.and. kubo_smr_fixed_en_width == smr_fixed_en_width .and. smr_index == kubo_smr_index) then
write (stdout, '(1x,a78)') '| Using global smearing parameters |'
else
if (kubo_adpt_smr) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Adaptive width smearing :', ' T', '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Adaptive smearing factor :', kubo_adpt_smr_fac, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Maximum allowed smearing width :', kubo_adpt_smr_max, '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Fixed width smearing :', ' T', '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Smearing width :', kubo_smr_fixed_en_width, '|'
endif
write (stdout, '(1x,a21,5x,a47,4x,a1)') '| Smearing Function ', trim(param_get_smearing_type(kubo_smr_index)), '|'
endif
if (kmesh(1) == berry_kmesh(1) .and. kmesh(2) == berry_kmesh(2) .and. kmesh(3) == berry_kmesh(3)) then
write (stdout, '(1x,a78)') '| Using global k-point set for interpolation |'
else
if (berry_kmesh_spacing > 0.0_dp) then
write (stdout, '(1x,a15,i4,1x,a1,i4,1x,a1,i4,16x,a11,f8.3,11x,1a)') '| Grid size = ', &
berry_kmesh(1), 'x', berry_kmesh(2), 'x', berry_kmesh(3), ' Spacing = ', berry_kmesh_spacing, '|'
else
write (stdout, '(1x,a46,2x,i4,1x,a1,i4,1x,a1,i4,13x,1a)') '| Grid size :' &
, berry_kmesh(1), 'x', berry_kmesh(2), 'x', berry_kmesh(3), '|'
endif
endif
if (berry_curv_adpt_kmesh > 1) then
write (stdout, '(1x,a46,10x,i8,13x,a1)') '| Using an adaptive refinement mesh of size :', berry_curv_adpt_kmesh, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Threshold for adaptive refinement :', &
berry_curv_adpt_kmesh_thresh, '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Adaptive refinement :', ' none', '|'
endif
write (stdout, '(1x,a78)') '*----------------------------------------------------------------------------*'
endif
if (gyrotropic .or. iprint > 2) then
write (stdout, '(1x,a78)') '*--------------------------------- GYROTROPIC ------------------------------------*'
write (stdout, '(1x,a46,10x,L8,13x,a1)') '| Compute Gyrotropic properties :', gyrotropic, '|'
write (stdout, '(1x,a46,10x,a20,1x,a1)') '| gyrotropic_task :', gyrotropic_task, '|'
call parameters_gyro_write_task(gyrotropic_task, '-d0', 'calculate the D tensor')
call parameters_gyro_write_task(gyrotropic_task, '-dw', 'calculate the tildeD tensor')
call parameters_gyro_write_task(gyrotropic_task, '-c', 'calculate the C tensor')
call parameters_gyro_write_task(gyrotropic_task, '-k', 'calculate the K tensor')
call parameters_gyro_write_task(gyrotropic_task, '-noa', 'calculate the interbad natural optical activity')
call parameters_gyro_write_task(gyrotropic_task, '-dos', 'calculate the density of states')
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Lower frequency for tildeD,NOA :', gyrotropic_freq_min, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Upper frequency :', gyrotropic_freq_max, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Step size for frequency :', gyrotropic_freq_step, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Upper eigenvalue :', gyrotropic_eigval_max, '|'
if (gyrotropic_smr_fixed_en_width == smr_fixed_en_width .and. smr_index == gyrotropic_smr_index) then
write (stdout, '(1x,a78)') '| Using global smearing parameters |'
else
write (stdout, '(1x,a78)') '| Using local smearing parameters |'
endif
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Fixed width smearing :', ' T', '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Smearing width :', &
gyrotropic_smr_fixed_en_width, '|'
write (stdout, '(1x,a21,5x,a47,4x,a1)') '| Smearing Function :', &
trim(param_get_smearing_type(gyrotropic_smr_index)), '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| degen_thresh :', gyrotropic_degen_thresh, '|'
if (kmesh(1) == gyrotropic_kmesh(1) .and. kmesh(2) == gyrotropic_kmesh(2) .and. kmesh(3) == gyrotropic_kmesh(3)) then
write (stdout, '(1x,a78)') '| Using global k-point set for interpolation |'
elseif (gyrotropic_kmesh_spacing > 0.0_dp) then
write (stdout, '(1x,a15,i4,1x,a1,i4,1x,a1,i4,16x,a11,f8.3,11x,1a)') '| Grid size = ', &
gyrotropic_kmesh(1), 'x', gyrotropic_kmesh(2), 'x', gyrotropic_kmesh(3), ' Spacing = ', gyrotropic_kmesh_spacing, '|'
else
write (stdout, '(1x,a46,2x,i4,1x,a1,i4,1x,a1,i4,13x,1a)') '| Grid size :' &
, gyrotropic_kmesh(1), 'x', gyrotropic_kmesh(2), 'x', gyrotropic_kmesh(3), '|'
endif
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| Adaptive refinement :', ' not implemented', '|'
write (stdout, '(1x,a78)') '*----------------------------------------------------------------------------*'
endif
if (boltzwann .or. iprint > 2) then
write (stdout, '(1x,a78)') '*------------------------------- BOLTZWANN ----------------------------------*'
write (stdout, '(1x,a46,10x,L8,13x,a1)') '| Compute Boltzmann transport properties :', boltzwann, '|'
if (boltz_2d_dir_num > 0) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| 2d structure: non-periodic dimension :', trim(boltz_2d_dir), '|'
else
write (stdout, '(1x,a78)') '| 3d Structure : T |'
endif
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Relaxation Time (fs) :', boltz_relax_time, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Minimum Value of Chemical Potential (eV) :', boltz_mu_min, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Maximum Value of Chemical Potential (eV) :', boltz_mu_max, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Step size for Chemical Potential (eV) :', boltz_mu_step, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Minimum Value of Temperature (K) :', boltz_temp_min, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Maximum Value of Temperature (K) :', boltz_temp_max, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Step size for Temperature (K) :', boltz_temp_step, '|'
if (kmesh(1) == boltz_kmesh(1) .and. kmesh(2) == boltz_kmesh(2) .and. kmesh(3) == boltz_kmesh(3)) then
write (stdout, '(1x,a78)') '| Using global k-point set for interpolation |'
else
if (boltz_kmesh_spacing > 0.0_dp) then
write (stdout, '(1x,a15,i4,1x,a1,i4,1x,a1,i4,16x,a11,f8.3,11x,1a)') '| Grid size = ', &
boltz_kmesh(1), 'x', boltz_kmesh(2), 'x', boltz_kmesh(3), ' Spacing = ', boltz_kmesh_spacing, '|'
else
write (stdout, '(1x,a46,2x,i4,1x,a1,i4,1x,a1,i4,13x,1a)') '| Grid size :' &
, boltz_kmesh(1), 'x', boltz_kmesh(2), 'x', boltz_kmesh(3), '|'
endif
endif
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Step size for TDF (eV) :', boltz_tdf_energy_step, '|'
write (stdout, '(1x,a25,5x,a43,4x,a1)') '| TDF Smearing Function ', trim(param_get_smearing_type(boltz_tdf_smr_index)), '|'
if (boltz_tdf_smr_fixed_en_width > 0.0_dp) then
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') &
'| TDF fixed Smearing width (eV) :', boltz_tdf_smr_fixed_en_width, '|'
else
write (stdout, '(1x,a78)') '| TDF fixed Smearing width : unsmeared |'
endif
write (stdout, '(1x,a46,10x,L8,13x,a1)') '| Compute DOS at same time :', boltz_calc_also_dos, '|'
if (boltz_calc_also_dos .and. iprint > 2) then
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Minimum energy range for DOS plot :', boltz_dos_energy_min, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Maximum energy range for DOS plot :', boltz_dos_energy_max, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| Energy step for DOS plot :', boltz_dos_energy_step, '|'
if (boltz_dos_adpt_smr .eqv. adpt_smr .and. boltz_dos_adpt_smr_fac == adpt_smr_fac &
.and. boltz_dos_adpt_smr_max == adpt_smr_max &
.and. boltz_dos_smr_fixed_en_width == smr_fixed_en_width .and. smr_index == boltz_dos_smr_index) then
write (stdout, '(1x,a78)') '| Using global smearing parameters |'
else
if (boltz_dos_adpt_smr) then
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| DOS Adaptive width smearing :', ' T', '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') &
'| DOS Adaptive smearing factor :', boltz_dos_adpt_smr_fac, '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') &
'| DOS Maximum allowed smearing width :', boltz_dos_adpt_smr_max, '|'
else
write (stdout, '(1x,a46,10x,a8,13x,a1)') '| DOS Fixed width smearing :', ' T', '|'
write (stdout, '(1x,a46,10x,f8.3,13x,a1)') '| DOS Smearing width :', &
boltz_dos_smr_fixed_en_width, '|'
endif
write (stdout, '(1x,a21,5x,a47,4x,a1)') '| Smearing Function ', trim(param_get_smearing_type(boltz_dos_smr_index)), '|'
endif
endif
write (stdout, '(1x,a78)') '*----------------------------------------------------------------------------*'
endif
if (geninterp .or. iprint > 2) then
write (stdout, '(1x,a78)') '*------------------------Generic Band Interpolation--------------------------*'
write (stdout, '(1x,a46,10x,L8,13x,a1)') '| Compute Properties at given k-points :', geninterp, '|'
write (stdout, '(1x,a46,10x,L8,13x,a1)') '| Calculate band gradients :', geninterp_alsofirstder, '|'
write (stdout, '(1x,a46,10x,L8,13x,a1)') '| Write data into a single file :', geninterp_single_file, '|'
write (stdout, '(1x,a78)') '*----------------------------------------------------------------------------*'
endif
101 format(20x, a3, 2x, 3F11.6)
end subroutine param_postw90_write