Commit ff00fc36 authored by Marco Govoni's avatar Marco Govoni

Merge branch 'develop' into 'master'

Version 4.3.0

See merge request west-devel/West!42
parents feea2ef5 e4829510
Pipeline #3265 passed with stages
in 12 minutes and 22 seconds
variables:
GIT_STRATEGY: none
GIT_STRATEGY: none
QE_VERSION: qe-6.1.0
stages:
- build
- test
- doc
- build
- test
- doc
# Templates
.template_bot_start:
tags: [rcc,docker,node-01]
image: miccomcenter/bot:$CI_JOB_NAME
before_script:
before_script:
- if [ -z $GCC_VERSION ]; then echo "not set"; else echo $GCC_VERSION; fi
- if [ -z $LAPACK_VERSION ]; then echo "not set"; else echo $LAPACK_VERSION; fi
- if [ -z $XERCES_VERSION ]; then echo "not set"; else echo $XERCES_VERSION; fi
......@@ -17,299 +20,136 @@ stages:
- if [ -z $MPICH_VERSION ]; then echo "not set"; else echo $MPICH_VERSION; fi
- if [ -z $SCALAPACK_VERSION ]; then echo "not set"; else echo $SCALAPACK_VERSION; fi
- if [ -z $FFTW_VERSION ]; then echo "not set"; else echo $FFTW_VERSION; fi
- if [ -z PYTHON_VERSION ]; then echo "not set"; else echo $PYTHON_VERSION; fi
- if [ -z PYTHON_PIP_VERSION ]; then echo "not set"; else echo $PYTHON_PIP_VERSION; fi
- if [ -z $PYTHON_VERSION ]; then echo "not set"; else echo $PYTHON_VERSION; fi
- if [ -z $PYTHON_PIP_VERSION ]; then echo "not set"; else echo $PYTHON_PIP_VERSION; fi
.template_build:
stage: build
script:
- git clone -b 'qe-6.1.0' --single-branch --depth 1 https://gitlab.com/QEF/q-e.git QEDIR
- git clone -b $QE_VERSION --single-branch --depth 1 https://gitlab.com/QEF/q-e.git QEDIR
- cd QEDIR
- git describe
- ./configure
- make -j pw
- git describe --tags --always
- ./configure
- make -j4 pw
- ls bin
- git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West
- cd West
- git describe
- git describe --tags --always
- make conf PYT=python3 PYT_LDFLAGS="`python3-config --ldflags --embed`"
- make all
- ls ../bin
- make -j4 all
- ls ../bin
.template_test:
stage: test
script:
- git clone -b 'qe-6.1.0' --single-branch --depth 1 https://gitlab.com/QEF/q-e.git QEDIR
- git clone -b $QE_VERSION --single-branch --depth 1 https://gitlab.com/QEF/q-e.git QEDIR
- cd QEDIR
- git describe
- ./configure
- make -j pw
- git describe --tags --always
- ./configure
- make -j4 pw
- ls bin
- git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West
- cd West
- cd West
- git describe --tags --always
- make conf PYT=python3 PYT_LDFLAGS="`python3-config --ldflags --embed`"
- make all > /dev/null
- useradd -m qe
- cp -r test-suite /home/qe
- su - qe
- cd test-suite
- make NP=14 NI=1 NT=1
gcc650_0001:
extends:
- .template_bot_start
- .template_build
gcc650_0002:
extends:
- .template_bot_start
- .template_build
- make -j4 all
- cd test-suite
- make NP=$CI_NP NI=$CI_NI NB=$CI_NB NT=$CI_NT
artifacts:
when: on_failure
paths:
- QEDIR/West/test-suite/test*/*.out
- QEDIR/West/test-suite/test*/*.err
- QEDIR/West/test-suite/test*/*.tab
- QEDIR/West/test-suite/test*/test*/*.xml
- QEDIR/West/test-suite/test*/test*/*.json
expire_in: 3 days
gcc740_0001:
extends:
- .template_bot_start
- .template_build
gcc740_0002:
extends:
- .template_bot_start
- .template_build
# Builds
gcc830_0001:
extends:
- .template_bot_start
- .template_build
gcc840:
extends:
- .template_bot_start
- .template_build
gcc830_0002:
extends:
- .template_bot_start
- .template_build
gcc830_0001_t:
extends:
- .template_bot_start
- .template_test
image: miccomcenter/bot:gcc830_0001
gcc930:
extends:
- .template_bot_start
- .template_build
gcc830_0002_t:
extends:
- .template_bot_start
- .template_test
image: miccomcenter/bot:gcc830_0002
# Tests
#west_build_gcc:
# tags: [rcc,docker,node-01]
# stage: build
# image: ubuntu:latest
# before_script:
# - apt-get update > /dev/null
# - apt-get install -qq git > /dev/null
# - apt-get install -qq build-essential gfortran wget python-pip python-dev > /dev/null
# - apt-get install -qq libopenmpi-dev openmpi-bin > /dev/null
# - apt-get install -qq libblas-dev liblapack-dev fftw3 fftw3-dev pkg-config > /dev/null
# script:
# - git clone -b 'qe-6.1.0' --single-branch --depth 1 https://gitlab.com/QEF/q-e.git QEDIR
# - cd QEDIR
# - git describe
# - ./configure
# - make -j pw
# - ls bin
# - git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West
# - cd West
# - git describe
# - make
# - ls ../bin
gcc840_t:
variables:
CI_NP: 8
CI_NI: 1
CI_NB: 1
CI_NT: 1
extends:
- .template_bot_start
- .template_test
image: miccomcenter/bot:gcc840
#west_build_intel:
# tags: [rcc,docker,node-01]
# stage: build
# image: centos:centos7
# before_script:
# - yum -y update > /dev/null
# - yum -y install yum-utils > /dev/null
# - yum -y install centos-release-scl-rh > /dev/null
# - yum -y install devtoolset-3 > /dev/null
# - yum -y install gcc gcc-c++ autoconf automake
# - yum -y install vim > /dev/null
# - yum -y install wget pkgconfig git make > /dev/null
# - export TZ="US/Central"
# - rm -f /etc/localtime
# - cp /usr/share/zoneinfo/$TZ /etc/localtime
# - export PATH=/software/intel/impi/5.1.3.210/intel64/bin:/software/intel/parallel_studio_xe_2016_update3/bin:$PATH
# - export LD_LIBRARY_PATH=/software/intel/parallel_studio_xe_2017/mkl/lib/intel64:/software/intel/impi/5.1.3.210/intel64/lib:$LD_LIBRARY_PATH
# - export LD_LIBRARY_PATH=/software/intel/parallel_studio_xe_2016_update3/ipp/lib/intel64:/software/intel/parallel_studio_xe_2016_update3/lib/intel64:$LD_LIBRARY_PATH
# - export LIBRARY_PATH=/software/intel/parallel_studio_xe_2017/mkl/lib/intel64:$LIBRARY_PATH
# - export CPATH=/software/intel/parallel_studio_xe_2016_update3/ipp/include:/software/intel/parallel_studio_xe_2017/mkl/include
# - export I_MPI_CC=icc
# - export I_MPI_CXX=icpc
# - export I_MPI_FC=ifort
# - export I_MPI_F77=ifort
# - export I_MPI_F90=ifort
# - export I_MPI_F95=ifort
# - export I_MPI_PROCESS_MANAGER=hydra
# - export I_MPI_ROOT=/software/intel/impi/5.1.3.210
# script:
# - echo "$PATH"
# - echo "$LD_LIBRARY_PATH"
# - echo "$I_MPI_F90"
# - git clone -b 'qe-6.1.0' --single-branch --depth 1 https://gitlab.com/QEF/q-e.git QEDIR
# - cd QEDIR
# - git describe
# - export F77=mpiifort
# - export CC=mpiicc
# - export MPIF90=mpiifort
# - export FC=mpiifort
# - which ifort
# - which icc
# - which mpiifort
# - export CFLAGS="-O3 -xHost -fno-alias -ansi-alias -g -mkl"
# - export FFLAGS="-O3 -xHost -fno-alias -ansi-alias -g -mkl"
# - export DFLAGS="-D__DFTI -D__MPI -D__SCALAPACK"
# - export BLAS_LIBS_SWITCH="external"
# - export BLAS_LIBS=" -lmkl_intel_lp64 -lmkl_sequential -lmkl_core"
# - export LAPACK_LIBS_SWITCH="external"
# - export LAPACK_LIBS=""
# - export SCALAPACK_LIBS=" -lmkl_scalapack_lp64 -Wl,--start-group -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -Wl,--end-group"
# - ./configure --enable-openmp --with-scalapack
# - make -j pw
# - ls bin
# - git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West
# - cd West
# - git describe
# - make
# - ls ../bin
# - ldd ../bin/pw.x
gcc930_t:
variables:
CI_NP: 8
CI_NI: 2
CI_NB: 2
CI_NT: 1
extends:
- .template_bot_start
- .template_test
image: miccomcenter/bot:gcc930
#west_test_intel:
# tags: [rcc,docker,node-01]
# stage: test
# image: centos:centos7
# before_script:
# - yum -y update > /dev/null
# - yum -y install yum-utils > /dev/null
# - yum -y install centos-release-scl-rh > /dev/null
# - yum -y install devtoolset-3 > /dev/null
# - yum -y install gcc gcc-c++ autoconf automake
# - yum -y install vim > /dev/null
# - yum -y install wget pkgconfig git make > /dev/null
# - export TZ="US/Central"
# - rm -f /etc/localtime
# - cp /usr/share/zoneinfo/$TZ /etc/localtime
# - export PATH=/software/intel/impi/5.1.3.210/intel64/bin:/software/intel/parallel_studio_xe_2016_update3/bin:$PATH
# - export LD_LIBRARY_PATH=/software/intel/parallel_studio_xe_2017/mkl/lib/intel64:/software/intel/impi/5.1.3.210/intel64/lib:$LD_LIBRARY_PATH
# - export LD_LIBRARY_PATH=/software/intel/parallel_studio_xe_2016_update3/ipp/lib/intel64:/software/intel/parallel_studio_xe_2016_update3/lib/intel64:$LD_LIBRARY_PATH
# - export LIBRARY_PATH=/software/intel/parallel_studio_xe_2017/mkl/lib/intel64:$LIBRARY_PATH
# - export CPATH=/software/intel/parallel_studio_xe_2016_update3/ipp/include:/software/intel/parallel_studio_xe_2017/mkl/include
# - export I_MPI_CC=icc
# - export I_MPI_CXX=icpc
# - export I_MPI_FC=ifort
# - export I_MPI_F77=ifort
# - export I_MPI_F90=ifort
# - export I_MPI_F95=ifort
# - export I_MPI_PROCESS_MANAGER=hydra
# - export I_MPI_ROOT=/software/intel/impi/5.1.3.210
# script:
# - echo "$PATH"
# - echo "$LD_LIBRARY_PATH"
# - echo "$I_MPI_F90"
# - git clone -b 'qe-6.1.0' --single-branch --depth 1 https://gitlab.com/QEF/q-e.git QEDIR
# - cd QEDIR
# - git describe
# - export F77=mpiifort
# - export CC=mpiicc
# - export MPIF90=mpiifort
# - export FC=mpiifort
# - which ifort
# - which icc
# - which mpiifort
# - export CFLAGS="-O3 -xHost -fno-alias -ansi-alias -g -mkl"
# - export FFLAGS="-O3 -xHost -fno-alias -ansi-alias -g -mkl"
# - export DFLAGS="-D__DFTI -D__MPI -D__SCALAPACK"
# - export BLAS_LIBS_SWITCH="external"
# - export BLAS_LIBS=" -lmkl_intel_lp64 -lmkl_sequential -lmkl_core"
# - export LAPACK_LIBS_SWITCH="external"
# - export LAPACK_LIBS=""
# - export SCALAPACK_LIBS=" -lmkl_scalapack_lp64 -Wl,--start-group -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -Wl,--end-group"
# - ./configure --enable-openmp --with-scalapack
# - make -j pw
# - ls bin
# - git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West
# - cd West
# - git describe
# - make
# - ls ../bin
# - useradd -m qe
# - cp -r test-suite /home/qe
# - su - qe
# - cd test-suite
# - make NP=14 NI=1 NT=1
# Nightly tests
#west_test_gcc:
# tags: [rcc,docker,node-01]
# stage: test
# image: ubuntu:latest
# before_script:
# - apt-get update > /dev/null
# - apt-get install -qq git > /dev/null
# - apt-get install -qq build-essential gfortran wget python-pip python-dev > /dev/null
# - apt-get install -qq libopenmpi-dev openmpi-bin > /dev/null
# - apt-get install -qq libblas-dev liblapack-dev fftw3 fftw3-dev pkg-config > /dev/null
# script:
# - git clone -b 'qe-6.1.0' --single-branch --depth 1 https://gitlab.com/QEF/q-e.git QEDIR
# - cd QEDIR
# - ./configure FFLAGS="-ffpe-summary=none" > /dev/null
# - make -j pw > /dev/null
# - git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West
# - cd West
# - make > /dev/null
# - useradd -m qe
# - cp -r test-suite /home/qe
# - su - qe
# - cd test-suite
# - make NP=14 NI=1 NT=1
#gcc830_0001:
# extends: .template_bot
# script:
# - git clone -b 'qe-6.1.0' --single-branch --depth 1 https://gitlab.com/QEF/q-e.git QEDIR
# - cd QEDIR
# - git describe
# - ./configure
# - make -j pw
# - ls bin
# - git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West
# - cd West
# - make > /dev/null
# - useradd -m qe
# - cp -r test-suite /home/qe
# - su - qe
# - cd test-suite
# - make NP=14 NI=1 NT=1
gcc840_t2:
variables:
CI_NP: 8
CI_NI: 2
CI_NB: 1
CI_NT: 2
only:
- schedules
extends:
- .template_bot_start
- .template_test
image: miccomcenter/bot:gcc840
gcc930_t2:
variables:
CI_NP: 8
CI_NI: 1
CI_NB: 2
CI_NT: 2
only:
- schedules
extends:
- .template_bot_start
- .template_test
image: miccomcenter/bot:gcc930
#gcc830_0002:
# extends: .template_bot
# Doc
west_doc_build:
tags: [rcc,docker,node-01]
stage: doc
image: continuumio/miniconda3:latest
before_script:
- apt-get update > /dev/null
- export TZ="US/Central"
- apt-get install -qq make > /dev/null
- apt-get install -qq pandoc > /dev/null
- rm -f /etc/localtime
- cp /usr/share/zoneinfo/$TZ /etc/localtime
- pip install -q --upgrade pip
- pip install -q nbsphinx
- pip install -q sphinx_rtd_theme
- pip install -q ipython
script:
- git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West
- cd West
- git describe
- cd Doc
- make html
- ls _build/html
tags: [rcc,docker,node-01]
stage: doc
image: continuumio/miniconda3:latest
before_script:
- apt-get update > /dev/null
- export TZ="US/Central"
- apt-get install -qq make > /dev/null
- apt-get install -qq pandoc > /dev/null
- rm -f /etc/localtime
- cp /usr/share/zoneinfo/$TZ /etc/localtime
- pip install -q --upgrade pip
- pip install -q nbsphinx
- pip install -q sphinx_rtd_theme
- pip install -q ipython
script:
- git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL West
- cd West
- git describe --tags --always
- cd Doc
- make html
- ls _build/html
......@@ -9,19 +9,21 @@ This file lists the authors of the WEST code as well as the known contributors.
The current list of developers, in alphabetical order:
- Sijia Dong (Argonne National Laboratory)
- Marco Govoni (Argonne National Laboratory and University of Chicago)
- Lan Huang (Argonne National Laboratory)
- Yu Jin (University of Chicago)
- He Ma (University of Chicago)
- Nan Sheng (University of Chicago)
- Han Yang (University of Chicago)
- Wenzhe Yu (Argonne National Laboratory)
# Former Developers
The former list of developers, in alphabetical order:
- Nicholas Brawand (2016-2018)
- Sijia Dong (2019-2020)
- Matteo Gerosa (2017-2018)
- Lan Huang (2019-2020)
- He Ma (2017-2020)
- Ryan McAvoy (2017-2018)
- Ngoc Linh Nguyen (2017-2018)
- Peter Scherpelz (2016-2017)
......@@ -29,7 +31,7 @@ The former list of developers, in alphabetical order:
# Contributors
We would like to thank the following people for their contibution (beside generic comments and bugfixes), in alphabetical order:
We would like to thank the following people for their contributions, in alphabetical order:
- Francois Gygi (University of California, Davis)
- Ikutaro Hamada (Osaka University)
......
Change Log
==========
v4.3.0 (2021/05/26)
-------------------
- Introduced new data layout. Parallelization over bands allows to distribute data in a more flexible way in `wstat`. This feature also helps reduce memory per image. Band parallelization is enabled by specifying -nb xxx from the command line.
- Introduced checkpointing in `wstat`. With the new keyword `n_steps_write_restart` one can control how often the code produces restarts (default value is `1`).
- Improved I/O in `wfreq`. The number of I/O operations is reduced in `solve_wfreq`, and in the gamma case of `solve_gfreq`.
- Updated library dependency to Json-Fortran 8.2.1, resolving compilation issues with PGI 19.10.
- Updated the initialization of Forpy, such that in case of a module import error, the code has a better chance to print a clear error message.
- Updated build. Now the code builds with the NVIDIA/PGI Fortran compiler.
- Bug fix. Fixed an undefined variable in `Tools/set_npwq.f90`. Added `IMPLICIT NONE to all program units to let the compiler catch such errors in the future.
- Bug fix. Avoid overflow in `Wstat/wstat_memory_report.f90` in large-scale runs.
- Bug fix. Reset permissions to all source files in Westpp. All files appeared to be executable before.
- Bug fix. Reset `make.depend` files, added support to `make -j`.
- Updated CI/CD. Use updated Docker images.
- Updated CI/CD. Check numerical results and fail the CI if results don't match (see `check.py`). DFT checks error in total energy, WSTAT checks maximum error in PDEP eigenvalues, WFREQ checks maximum error in QP energies.
- Updated CI/CD. Added tests of images and OpenMP threads to nightly tests.
- Updated documentation. Fixed doc build with sphinx 3.5.0+.
- Updated documentation. Update build instructions for ALCF/Theta, NERSC/Cori, UChicago/RCC/Midway3, macOS.
- Updated documentation. Added more tutorials.
- Updated documentation. Updated manual.
v4.2.1 (2020/10/19)
-------------------
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......@@ -169,6 +169,8 @@ MODULE class_coulomb
USE gvect, ONLY : g, ngm
USE types_bz_grid, ONLY : q_grid
!
IMPLICIT NONE
!
! I/O
!
CLASS(coulomb) :: this
......@@ -304,6 +306,8 @@ MODULE class_coulomb
USE io_global, ONLY : stdout
USE types_bz_grid, ONLY : q_grid
!
IMPLICIT NONE
!
! I/O
!
CLASS(coulomb) :: this
......
store_sqvc.o : ../../Modules/cell_base.o
store_sqvc.o : ../../Modules/constants.o
store_sqvc.o : ../../Modules/io_global.o
store_sqvc.o : ../../Modules/kind.o
store_sqvc.o : ../../Modules/recvec.o
store_sqvc.o : ../Tools/class_bz_grid.o
store_sqvc.o : ../Tools/types_bz_grid.o
store_sqvc.o : ../../PW/src/exx.o
store_sqvc.o : ../../PW/src/pwcom.o
store_sqvc.o : ../../West/Modules/westcom.o
store_vspx.o : ../../Modules/cell_base.o
store_vspx.o : ../../Modules/constants.o
store_vspx.o : ../../Modules/kind.o
store_vspx.o : ../../Modules/recvec.o
store_vspx.o : ../../PW/src/exx.o
store_vspx.o : ../../PW/src/pwcom.o
class_coulomb.o : ../../Modules/cell_base.o
class_coulomb.o : ../../Modules/constants.o
class_coulomb.o : ../../Modules/control_flags.o
class_coulomb.o : ../../Modules/gvecw.o
class_coulomb.o : ../../Modules/io_global.o
class_coulomb.o : ../../Modules/kind.o
class_coulomb.o : ../../Modules/mp.o
class_coulomb.o : ../../Modules/mp_global.o
class_coulomb.o : ../../Modules/mp_world.o
class_coulomb.o : ../../Modules/random_numbers.o
class_coulomb.o : ../../Modules/recvec.o
class_coulomb.o : ../Modules/westcom.o
class_coulomb.o : ../Tools/types_bz_grid.o
types_coulomb.o : ../../Modules/kind.o
types_coulomb.o : class_coulomb.o
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
......@@ -9,6 +9,7 @@ MODFLAGS= $(MOD_FLAG)../../iotk/src $(MOD_FLAG)../../Modules $(MOD_FLAG)../../LA
$(MOD_FLAG)../Tools \
$(MOD_FLAG)../FFT_kernel \
$(MOD_FLAG)../Coulomb_kernel \
$(MOD_FLAG)../Para_kernel \
$(MOD_FLAG).
IFLAGS=
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......@@ -7,7 +7,7 @@
!
! This file is part of WEST.
!
! Contributors to this file:
! Contributors to this file:
! Marco Govoni
!
!-----------------------------------------------------------------------
......@@ -40,7 +40,7 @@ SUBROUTINE apply_sternheimerop_to_m_wfcs(nbndval, psi, hpsi, e, alpha, m)
! input: the vector
! output: the operator applied to the vector
!
! Workspace
! Workspace
!
INTEGER :: ibnd, ig
COMPLEX(DP) :: za
......@@ -50,11 +50,15 @@ SUBROUTINE apply_sternheimerop_to_m_wfcs(nbndval, psi, hpsi, e, alpha, m)
! compute the product of the hamiltonian with the h vector
!
hpsi=(0.0_DP,0.0_DP)
!
!
IF(l_kinetic_only) THEN
CALL k_psi( npwx, npw, m, psi, hpsi )
ELSE
CALL h_psi( npwx, npw, m, psi, hpsi )
!
! use h_psi_, i.e. h_psi without band parallelization, as wstat
! handles band parallelization separately in dfpt_module
!
CALL h_psi_( npwx, npw, m, psi, hpsi )
ENDIF
!
! then we compute the operator H-epsilon S
......@@ -74,4 +78,4 @@ SUBROUTINE apply_sternheimerop_to_m_wfcs(nbndval, psi, hpsi, e, alpha, m)
!
CALL stop_clock ('stern')
!
END SUBROUTINE
END SUBROUTINE
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......@@ -7,7 +7,7 @@
!
! This file is part of WEST.
!
! Contributors to this file:
! Contributors to this file:
! Marco Govoni
!
!-----------------------------------------------------------------------
......@@ -23,31 +23,29 @@ MODULE dfpt_module
!-----------------------------------------------------------------------
!
USE kinds, ONLY : DP
USE constants, ONLY : tpi
USE io_global, ONLY : stdout
USE wvfct, ONLY : nbnd,g2kin,et
USE fft_base, ONLY : dfftp,dffts
USE gvect, ONLY : nl,nl,gstart,g,ngm
USE wvfct, ONLY : nbnd,et
USE fft_base, ONLY : dffts
USE gvect, ONLY : gstart
USE wavefunctions_module, ONLY : evc,psic
USE gvecw, ONLY : gcutw
USE mp, ONLY : mp_sum,mp_barrier,mp_bcast
USE mp_global, ONLY : inter_image_comm,inter_pool_comm,my_image_id
USE mp_global, ONLY : inter_image_comm,inter_pool_comm,my_image_id,inter_bgrp_comm
USE fft_at_k, ONLY : single_fwfft_k,single_invfft_k
USE fft_at_gamma, ONLY : single_fwfft_gamma,single_invfft_gamma,double_fwfft_gamma,double_invfft_gamma
USE fft_interfaces, ONLY : fwfft, invfft
USE buffers, ONLY : get_buffer
USE noncollin_module, ONLY : noncolin,npol
USE bar, ONLY : bar_type,start_bar_type,update_bar_type,stop_bar_type
USE pwcom, ONLY : current_spin,wk,nks,nelup,neldw,isk,xk,npw,npwx,lsda,nkstot,&
USE pwcom, ONLY : current_spin,nelup,neldw,isk,xk,npw,npwx,lsda,&
& current_k,ngk,igk_k
USE cell_base, ONLY : tpiba2,omega,at
USE control_flags, ONLY : gamma_only, io_level
USE io_files, ONLY : tmp_dir, nwordwfc, iunwfc, diropn
USE uspp, ONLY : nkb, vkb, okvan
USE cell_base, ONLY : omega
USE control_flags, ONLY : gamma_only
USE uspp, ONLY : nkb, vkb
USE westcom, ONLY : nbnd_occ,iuwfc,lrwfc,npwqx,npwq,igq_q,fftdriver
USE io_push, ONLY : io_push_title
USE mp_world, ONLY : mpime,world_comm
USE mp_world, ONLY : world_comm
USE types_bz_grid, ONLY : k_grid, q_grid, compute_phase
USE class_idistribute, ONLY : idistribute
USE distribution_center, ONLY : occband
!
IMPLICIT NONE
!
......@@ -61,14 +59,15 @@ MODULE dfpt_module
!
! Workspace
!
INTEGER :: ipert, ig, ir, ibnd, iks, ikqs, ikq, ik, is
INTEGER :: i, j, k
INTEGER :: ipert, ig, ir, ibnd, ibnd2, lbnd, iks, ikqs, ikq, ik,