Commit b1b24dc5 authored by Gregor Michalicek's avatar Gregor Michalicek

Make Fleur compilable again (on MY machine)

This commit should not change anything, but it does.
The Intel compiler seems to be sensitive on the order and position
of use statements. Without this change the compilation of Fleur
hangs at several places. I don't have a general principle on
how and where the use statements should be, but:

1. more general use statements should be before use statements that
themselves use the more general one.
2. use statements should be simple. No ", only ..."
3. Less use statements is better. If there are several subroutines
in a module put the use statements generally into the module and not
into the subroutines.

The reality, however, seems to be slightly more complex.

This might also be connected to the underlying hardware resources.
parent acb7f8c3
......@@ -13,9 +13,9 @@ MODULE m_doswrite
CONTAINS
SUBROUTINE doswrite(eig_id,DIMENSION,kpts,atoms,vacuum,input,banddos,&
sliceplot,noco,sym,cell,dos,mcd,results,slab,orbcomp,oneD)
USE m_types
USE m_evaldos
USE m_cdninf
USE m_types
IMPLICIT NONE
TYPE(t_dimension),INTENT(IN) :: DIMENSION
......
......@@ -51,6 +51,10 @@
MODULE m_exchange_valence_hf
USE m_constants
USE m_types
USE m_util
LOGICAL, PARAMETER:: zero_order = .false., ibs_corr = .false.
INTEGER, PARAMETER:: maxmem = 600
......@@ -60,14 +64,12 @@ CONTAINS
eig_irr, results, pointer_EIBZ, n_q, wl_iks, xcpot, noco, nsest, indx_sest, &
mpi, mat_ex)
USE m_types
USE m_wrapper
USE m_constants
USE m_trafo
USE m_wavefproducts
USE m_olap
USE m_spmvec
USE m_hsefunctional, ONLY: dynamic_hse_adjustment
USE m_hsefunctional
USE m_io_hybrid
USE m_kp_perturbation
......@@ -448,10 +450,6 @@ CONTAINS
SUBROUTINE calc_divergence(cell, kpts, divergence)
USE m_util, ONLY: cerf
USE m_types
USE m_constants
IMPLICIT NONE
TYPE(t_cell), INTENT(IN) :: cell
......
......@@ -7,6 +7,16 @@
MODULE m_hsfock
USE m_judft
USE m_types
USE m_intgrf
USE m_wrapper
USE m_io_hybrid
USE m_hsefunctional
USE m_symm_hf
USE m_exchange_valence_hf
USE m_exchange_core
USE m_symmetrizeh
! c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
! This module is the driver routine for the calculation of the Hartree c
! Fock exchange term by using the mixed basis set. c
......@@ -47,16 +57,6 @@ CONTAINS
SUBROUTINE hsfock(nk, atoms, mpbasis, hybrid, lapw, dimension, kpts, jsp, input, hybdat, eig_irr, sym, cell, noco, &
results, mnobd, xcpot, mpi)
USE m_types
USE m_symm_hf
USE m_intgrf, ONLY: intgrf, intgrf_init
USE m_exchange_valence_hf
USE m_exchange_core
USE m_symmetrizeh
USE m_wrapper
USE m_hsefunctional, ONLY: exchange_vccvHSE, exchange_ccccHSE
USE m_io_hybrid
IMPLICIT NONE
TYPE(t_xcpot_inbuild), INTENT(IN) :: xcpot
......
......@@ -13,12 +13,16 @@ MODULE m_symm_hf
#define irreps .false.
USE m_constants
USE m_types
USE m_util
USE m_intgrf
USE m_io_hybrid
CONTAINS
SUBROUTINE symm_hf_init(sym, kpts, nk, nsymop, rrot, psym)
USE m_types
USE m_util, ONLY: modulo1
IMPLICIT NONE
TYPE(t_sym), INTENT(IN) :: sym
......@@ -70,13 +74,9 @@ CONTAINS
lapw, jsp, rrot, nsymop, psym, nkpt_EIBZ, n_q, parent, &
pointer_EIBZ, nsest, indx_sest)
USE m_constants
USE m_types
USE m_util, ONLY: modulo1
use m_intgrf, only: intgrf, intgrf_init
USE m_olap, ONLY: wfolap_inv, wfolap_noinv, wfolap_init
USE m_trafo, ONLY: waveftrafo_symm
USE m_io_hybrid
USE m_olap
USE m_trafo
IMPLICIT NONE
TYPE(t_hybdat), INTENT(IN) :: hybdat
......
module m_wavefproducts_inv
USE m_constants
USE m_judft
USE m_types
USE m_types_hybrid, ONLY: gptnorm
USE m_util, ONLY: modulo1
USE m_io_hybrid
USE m_wrapper
USE m_constants
USE m_io_hybrid
USE m_wavefproducts_aux
CONTAINS
SUBROUTINE wavefproducts_inv5(bandi, bandf, bandoi, bandof, dimension, input,&
jsp, atoms, lapw, kpts, nk, iq, hybdat, mpbasis, hybrid,&
cell, nbasm_mt, sym, noco, nkqpt, cprod)
USE m_util, ONLY: modulo1
USE m_types_hybrid, ONLY: gptnorm
USE m_wrapper
USE m_constants
USE m_types
USE m_io_hybrid
use m_wavefproducts_aux
IMPLICIT NONE
TYPE(t_dimension), INTENT(IN) :: dimension
......@@ -64,49 +69,10 @@ CONTAINS
END SUBROUTINE wavefproducts_inv5
subroutine wavefproducts_inv_IS_using_noinv(bandi, bandf, bandoi, bandof, dimension, input,&
jsp, atoms, lapw, kpts, nk, iq, g_t, hybdat, mpbasis, hybrid,&
cell, nbasm_mt, sym, noco, nkqpt, rprod)
use m_types
use m_wavefproducts_noinv
use m_judft
implicit NONE
TYPE(t_dimension), INTENT(IN) :: dimension
TYPE(t_mpbasis), intent(in) :: mpbasis
TYPE(t_hybrid), INTENT(IN) :: hybrid
TYPE(t_input), INTENT(IN) :: input
TYPE(t_noco), INTENT(IN) :: noco
TYPE(t_sym), INTENT(IN) :: sym
TYPE(t_cell), INTENT(IN) :: cell
TYPE(t_kpts), INTENT(IN) :: kpts
TYPE(t_atoms), INTENT(IN) :: atoms
TYPE(t_lapw), INTENT(IN) :: lapw
TYPE(t_hybdat), INTENT(INOUT) :: hybdat
! - scalars -
INTEGER, INTENT(IN) :: bandi, bandf, bandoi, bandof, jsp, nk, iq, nbasm_mt
INTEGER, INTENT(IN) :: nkqpt, g_t(3)
! - arrays -
REAL, INTENT(OUT) :: rprod(hybrid%maxbasm1, bandoi:bandof, bandf - bandi + 1)
COMPLEX :: cprod(hybrid%maxbasm1, bandoi:bandof, bandf - bandi + 1)
call wavefproducts_noinv5_IS(bandi, bandf, bandoi, bandof, nk, iq, g_t,&
dimension, input, jsp, cell, atoms, mpbasis, hybrid,&
hybdat, kpts, lapw, sym, nbasm_mt, noco,&
nkqpt, cprod)
rprod = real(cprod)
end subroutine wavefproducts_inv_IS_using_noinv
subroutine wavefproducts_inv_IS(bandi, bandf, bandoi, bandof, dimension, input,&
jsp, atoms, lapw, kpts, nk, iq, g_t, hybdat, mpbasis, hybrid,&
cell, nbasm_mt, sym, noco, nkqpt, cprod)
use m_types
use m_constants
use m_wavefproducts_aux
use m_judft
use m_io_hybrid
implicit NONE
TYPE(t_dimension), INTENT(IN) :: dimension
TYPE(t_mpbasis), intent(in) :: mpbasis
......@@ -227,10 +193,7 @@ CONTAINS
subroutine wavefproducts_inv5_MT(bandi, bandf, bandoi, bandof, dimension,&
atoms, kpts, nk, iq, hybdat, mpbasis, hybrid,&
sym, nkqpt, cprod)
use m_types
use m_judft
use m_io_hybrid
use m_constants
implicit NONE
TYPE(t_dimension), INTENT(IN) :: dimension
TYPE(t_mpbasis), INTENT(IN) :: mpbasis
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment