Skip to content

Commit

Permalink
code cleanup and removal of appendix 'io_extra_type'
Browse files Browse the repository at this point in the history
  • Loading branch information
Jerome Jackson committed Jan 15, 2025
1 parent 9eacd6a commit 8943d8f
Show file tree
Hide file tree
Showing 7 changed files with 111 additions and 169 deletions.
9 changes: 4 additions & 5 deletions src/disentangle.F90
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,8 @@ subroutine dis_main(dis_control, dis_spheres, dis_manifold, kmesh_info, kpt_latt

! Set up energy windows
if (dis_manifold%frozen_proj) then
call dis_windows_proj(dis_manifold, eigval_opt, a_matrix, m_matrix_orig_local, kpt_latt, &
recip_lattice, indxfroz, indxnfroz, ndimfroz, dis_manifold%nfirstwin, &
call dis_windows_proj(dis_manifold, eigval_opt, a_matrix, m_matrix_orig_local, &
indxfroz, indxnfroz, ndimfroz, dis_manifold%nfirstwin, &
print_output%iprint, kmesh_info%nnlist, kmesh_info%nntot, num_bands, &
num_kpts, num_wann, print_output%timing_level, lfrozen, linner, &
on_root, stdout, dist_k, global_k, my_node_id, timer, error, comm)
Expand Down Expand Up @@ -1182,7 +1182,7 @@ subroutine dis_windows(dis_spheres, dis_manifold, eigval_opt, kpt_latt, recip_la
end subroutine dis_windows

subroutine dis_windows_proj(dis_manifold, eigval_opt, a_matrix, m_matrix_orig_local, &
kpt_latt, recip_lattice, indxfroz, indxnfroz, ndimfroz, nfirstwin, iprint, nnlist, &
indxfroz, indxnfroz, ndimfroz, nfirstwin, iprint, nnlist, &
nntot, num_bands, num_kpts, num_wann, timing_level, lfrozen, &
linner, on_root, stdout, dist_k, global_k, my_node_id, timer, error, comm)
!==================================================================!
Expand Down Expand Up @@ -1242,7 +1242,6 @@ subroutine dis_windows_proj(dis_manifold, eigval_opt, a_matrix, m_matrix_orig_lo

complex(kind=dp), intent(inout) :: a_matrix(:, :, :)
complex(kind=dp), intent(inout) :: m_matrix_orig_local(:, :, :, :)
real(kind=dp), intent(in) :: kpt_latt(3, num_kpts), recip_lattice(3, 3)
real(kind=dp), intent(inout) :: eigval_opt(:, :)

logical, intent(in) :: on_root
Expand All @@ -1257,7 +1256,7 @@ subroutine dis_windows_proj(dis_manifold, eigval_opt, a_matrix, m_matrix_orig_lo
! orignal outter window, and to generate a new outter window.
! (equals 1 if it is the bottom of outer window)

integer :: nkp, nn, nkp2, nkp_global, ierr
integer :: nkp, nn, nkp2, nkp_global
integer :: i, j, k, l
real(kind=dp) :: projs(num_bands)
integer :: invindxkeep(num_bands)
Expand Down
10 changes: 3 additions & 7 deletions src/library_extra.F90
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ subroutine input_reader_special(common_data, seedname, istdout, istderr, ierr)
use w90_error_base, only: w90_error_type
use w90_error, only: set_error_input, set_error_fatal, set_error_alloc
use w90_readwrite, only: w90_readwrite_in_file, w90_readwrite_clean_infile
use w90_wannier90_readwrite, only: w90_wannier90_readwrite_read_special, w90_extra_io_type
use w90_wannier90_readwrite, only: w90_wannier90_readwrite_read_special

implicit none

Expand Down Expand Up @@ -370,19 +370,15 @@ subroutine write_chkpt(common_data, label, istdout, istderr, ierr)
return
endif

u(:, :, :) = 0.d0
uopt(:, :, :) = 0.d0
u(:, :, :) = common_data%u_matrix
uopt(:, :, :) = common_data%u_opt
m(:, :, :, :) = 0.d0

do ikl = 1, nkrank
ikg = global_k(ikl)
u(:, :, ikg) = common_data%u_matrix(:, :, ikl)
uopt(:, :, ikg) = common_data%u_opt(:, :, ikl)
m(:, :, :, ikg) = common_data%m_matrix_local(1:nw, 1:nw, :, ikl)
enddo

call comms_reduce(u(1, 1, 1), nw*nw*nk, 'SUM', error, common_data%comm)
call comms_reduce(uopt(1, 1, 1), nb*nw*nk, 'SUM', error, common_data%comm)
call comms_reduce(m(1, 1, 1, 1), nw*nw*nn*nk, 'SUM', error, common_data%comm)
if (allocated(error)) then
call prterr(error, ierr, istdout, istderr, common_data%comm)
Expand Down
15 changes: 6 additions & 9 deletions src/library_interface.F90
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ subroutine w90_input_setopt(common_data, seedname, istdout, istderr, ierr)
use w90_comms, only: w90_comm_type, valid_communicator
use w90_kmesh, only: kmesh_get
use w90_wannier90_readwrite, only: w90_wannier90_readwrite_read, &
w90_wannier90_readwrite_read_special, w90_extra_io_type
w90_wannier90_readwrite_read_special

implicit none

Expand All @@ -235,7 +235,6 @@ subroutine w90_input_setopt(common_data, seedname, istdout, istderr, ierr)

! local variables
type(w90_error_type), allocatable :: error
type(w90_extra_io_type) :: io_params
logical :: cp_pp, disentanglement

ierr = 0
Expand Down Expand Up @@ -333,7 +332,7 @@ subroutine w90_input_setopt(common_data, seedname, istdout, istderr, ierr)
common_data%wvfn_read, common_data%wann_control, &
common_data%real_space_ham, common_data%kpoint_path, &
common_data%w90_system, common_data%tran, &
common_data%print_output, common_data%wann_plot, io_params, &
common_data%print_output, common_data%wann_plot, &
common_data%ws_region, common_data%real_lattice, &
common_data%w90_calculation, common_data%physics%bohr, &
common_data%sitesym%symmetrize_eps, common_data%num_bands, &
Expand Down Expand Up @@ -361,7 +360,7 @@ subroutine w90_input_reader(common_data, istdout, istderr, ierr)
use w90_error_base, only: w90_error_type
use w90_error, only: set_error_input, set_error_fatal, set_error_alloc, code_mpi
use w90_readwrite, only: w90_readwrite_in_file, w90_readwrite_clean_infile
use w90_wannier90_readwrite, only: w90_wannier90_readwrite_read, w90_extra_io_type
use w90_wannier90_readwrite, only: w90_wannier90_readwrite_read

implicit none

Expand All @@ -372,7 +371,6 @@ subroutine w90_input_reader(common_data, istdout, istderr, ierr)

! local variables
type(w90_error_type), allocatable :: error
type(w90_extra_io_type) :: io_params
logical :: cp_pp

ierr = 0
Expand Down Expand Up @@ -408,7 +406,7 @@ subroutine w90_input_reader(common_data, istdout, istderr, ierr)
common_data%wvfn_read, common_data%wann_control, &
common_data%real_space_ham, common_data%kpoint_path, &
common_data%w90_system, common_data%tran, &
common_data%print_output, common_data%wann_plot, io_params, &
common_data%print_output, common_data%wann_plot, &
common_data%ws_region, common_data%real_lattice, &
common_data%w90_calculation, common_data%physics%bohr, &
common_data%sitesym%symmetrize_eps, common_data%num_bands, &
Expand Down Expand Up @@ -1157,7 +1155,7 @@ end subroutine w90_set_comm
subroutine input_print_details(common_data, istdout, istderr, ierr)
use w90_error_base, only: w90_error_type
use w90_readwrite, only: w90_readwrite_write_header
use w90_wannier90_readwrite, only: w90_wannier90_readwrite_write, w90_extra_io_type
use w90_wannier90_readwrite, only: w90_wannier90_readwrite_write
use w90_comms, only: mpisize, mpirank

implicit none
Expand All @@ -1169,7 +1167,6 @@ subroutine input_print_details(common_data, istdout, istderr, ierr)

! local variables
type(w90_error_type), allocatable :: error
type(w90_extra_io_type) :: io_params ! what is this? fixme
integer :: mpi_size

ierr = 0
Expand All @@ -1194,7 +1191,7 @@ subroutine input_print_details(common_data, istdout, istderr, ierr)
common_data%select_proj, common_data%kpoint_path, &
common_data%tran, common_data%print_output, &
common_data%wannier_data, &
common_data%wann_plot, io_params, &
common_data%wann_plot, &
common_data%w90_calculation, common_data%real_lattice, &
common_data%sitesym%symmetrize_eps, common_data%mp_grid, &
common_data%num_bands, common_data%num_kpts, &
Expand Down
2 changes: 1 addition & 1 deletion src/plot.F90
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,7 @@ subroutine plot_interpolate_bands(mp_grid, real_lattice, band_plot, kpoint_path,
character(len=20), allocatable :: ctemp(:)

! mpi variables
integer :: my_node_id, num_nodes, size_rdist, size_ndeg
integer :: my_node_id, num_nodes
logical :: on_root
integer, allocatable :: counts(:)
integer, allocatable :: displs(:)
Expand Down
24 changes: 20 additions & 4 deletions src/readwrite.F90
Original file line number Diff line number Diff line change
Expand Up @@ -3564,28 +3564,38 @@ subroutine w90_readwrite_get_range_vector(settings, keyword, found, length, lcou
return
end subroutine w90_readwrite_get_range_vector

subroutine w90_readwrite_get_centre_constraints(settings, ccentres_frac, ccentres_cart, &
subroutine w90_readwrite_get_centre_constraints(settings, ccentres_cart, &
proj_site, num_wann, real_lattice, error, comm)
!================================================!
!! assigns projection centres as default centre constraints and global
!! Lagrange multiplier as individual Lagrange multipliers then reads
!! the centre_constraints block for individual centre constraint parameters
!
!================================================!
use w90_error, only: w90_error_type, set_error_input
use w90_error, only: w90_error_type, set_error_input, set_error_alloc, set_error_dealloc
use w90_utility, only: utility_frac_to_cart
implicit none
real(kind=dp), intent(inout) :: ccentres_frac(:, :), ccentres_cart(:, :)

! arguments
real(kind=dp), intent(inout) :: ccentres_cart(:, :)
real(kind=dp), intent(in) :: proj_site(:, :)
integer, intent(in) :: num_wann
real(kind=dp), intent(in) :: real_lattice(3, 3)
type(w90_error_type), allocatable, intent(out) :: error
type(w90_comm_type), intent(in) :: comm
type(settings_type), intent(inout) :: settings

integer :: loop1, index1, constraint_num, loop2
! local variables
integer :: loop1, index1, constraint_num, loop2, ierr
integer :: column, start, finish, wann
character(len=maxlen) :: dummy
real(kind=dp), allocatable :: ccentres_frac(:, :)

allocate (ccentres_frac(num_wann, 3), stat=ierr)
if (ierr /= 0) then
call set_error_alloc(error, 'Error allocating ccentres_frac in w90_readwrite_get_centre_constraints', comm)
return
endif

do loop1 = 1, num_wann
do loop2 = 1, 3
Expand Down Expand Up @@ -3655,6 +3665,12 @@ subroutine w90_readwrite_get_centre_constraints(settings, ccentres_frac, ccentre
call utility_frac_to_cart(ccentres_frac(loop1, :), &
ccentres_cart(loop1, :), real_lattice)
end do

deallocate (ccentres_frac, stat=ierr)
if (ierr /= 0) then
call set_error_dealloc(error, 'Error deallocating ccentres_frac in w90_readwrite_get_centre_constraints', comm)
return
endif
end subroutine w90_readwrite_get_centre_constraints

!================================================!
Expand Down
Loading

0 comments on commit 8943d8f

Please sign in to comment.