Commit 75827bf8 authored by Jonas Schwab's avatar Jonas Schwab
Browse files

Merge branch 'master' into 222-add-wno-error-cpp-to-gnu-devel-flags

parents 753c01d5 7468ad6f
Pipeline #15582 passed with stages
in 21 minutes and 23 seconds
......@@ -23,7 +23,7 @@
%- Interaction expansion (CT-INT).
We are very grateful to B.~Danu, S.~Beyl, M.~Hohenadler, M.~Raczkowski, T.~Sato, M.~Ulybyshev, Z.~Wang, and M.~Weber for their constant support during the development of this project.
We equally thank G.~Hager, M.~Wittmann, and G.~Wellein for useful discussions and overall support.
We equally thank G.~Hager, M.~Wittmann, and G.~Wellein for useful discussions and overall support. And we extend our special thanks to the user community for its valuable feedback.
FFA would also like to thank T.~Lang and Z.~Y.~Meng for developments of the auxiliary field code as well as to T.~Grover.
MB, FFA and FG thank the Bavarian Competence Network for Technical and Scientific High Performance Computing (KONWIHR) for financial support.
FG, JH, and JS thank the SFB-1170 for financial support under projects Z03 and C01.
......
......@@ -9,4 +9,4 @@ In its present form, the auxiliary-field QMC code of the ALF project allows us
There are further capabilities that we would like to see in future versions of ALF. Introducing time-dependent Hamiltonians, for instance, will require some rethinking, but will allow, for example, to access entanglement properties of interacting fermionic systems \cite{Broecker14,Assaad13a,Assaad15}. Moreover, the auxiliary field approach is not the only method to simulate fermionic systems.
It would be desirable to include additional lattice fermion algorithms such as the CT-INT \cite{Rubtsov05,Assaad07}.
Lastly, increased compatibility with other software projects is certainly an improvement to look forward to.
Lastly, increased compatibility with other software projects is certainly an improvement to look forward to, and one priority is making ALF be able to read in external Hamiltonians.
No preview for this file type
......@@ -14,7 +14,27 @@ g(\tau) = \int_{\omega_\mathrm{start}}^{\omega_\mathrm{end}} \d{\omega} K(\tau,
The ALF package includes a standard implementation of the stochastic MaxEnt, as formulated in the article of K. Beach~\cite{Beach04a}, in the module \texttt{Libraries/Modules/\allowbreak{}maxent\_stoch\_mod.F90}. Its wrapper is found in \texttt{Analysis/Max\_SAC.F90} and the Green function is read from the
%file \texttt{g\_dat}, corresponding to the
output of the \texttt{cov\_tau.F90} analysis program.
%Here we will comment on the method's workflow.
In the next section we provide a quick guide on how this facility can be used, followed by sections with more detailed information.
\subsection{Quick Start}
\label{sec:quick_maxent}
\begin{itemize}[itemsep=0pt]
\item Before running the simulation, set in the file \texttt{parameters} the variable \texttt{Ltau=1}, so that the necessary time-displaced Green functions are calculated; also set a large enough number of bins
\item Also in the \texttt{parameters} file, set \texttt{N\_Cov=0} (for shorter runs; \texttt{N\_Cov=1} might give more reliable error estimates)
\item Run the Monte Carlo simulation and the analysis:\\
\lstinline[style=bash]{$ALF_DIR/Prog/ALF.out}\\
\lstinline[style=bash]{$ALF_DIR/Analysis/ana.out *}
\item Then enter the desired results directory, e.g., \texttt{Green\_0.00\_0.00} (they're named in the pattern \texttt{Variable\_name\_kx\_ky}) and copy the parameter file to it:\\
\lstinline[style=bash,morekeywords={cd,cp}]{cd Green_0.00_0.00/ && cp ../parameters .}
\item Run MaxEnt:\\
\lstinline[style=bash]{$ALF_DIR/Analysis/Max_SAC.out}
\end{itemize}
For many purposes it is practical to script some of the steps above, and an example of such a script can be found in \texttt{\$ALF\_DIR/Scripts\_and\_Parameters\_files/Spectral.sh}.
\subsection{General setup}
......
......@@ -16,8 +16,8 @@ A Python interface, \textbf{pyALF}, is also available and can be found, together
We start out by providing step-by-step instructions that allow a first-time user to go from zero to performing a simulation and reading out their first measurement using ALF.
%-------------------------------------------------------------------------------------
\subsection{Zeroth step}
\label{sec:zeroth}
\subsection{Quick Start}
\label{sec:quick_alf}
%-------------------------------------------------------------------------------------
The aim of this section is to provide a fruitful and stress-free first contact with the package. Ideally, it should be possible to copy and paste the instructions below to a Debian/Ubuntu-based Linux shell without further thought\footnote{For other systems and distributions see the package's \href{https://git.physik.uni-wuerzburg.de/ALF/ALF/-/blob/\ALFbranch/README.md}{README}.}. Explanations and further options and details are found in the remaining sections and in the \href{https://git.physik.uni-wuerzburg.de/ALF/ALF_Tutorial/-/blob/master/Tutorial-ALF-\tutALFver/}{Tutorial}.
......@@ -137,6 +137,8 @@ If \texttt{ALF\_SHM\_CHUNK\_SIZE\_GB} is not defined or set to values smaller th
To restart the code using the configuration from a previous simulation as a starting point, first run the script \texttt{out\_to\_in.sh}, which copies outputted field configurations into input files, before calling the ALF executable. This file is located in the directory \path{$ALF_DIR/Scripts_and_Parameters_files/Start/}
Notice that, when compiled with DHF5 the code checks whether the parameters stored in existing data files have the same values as those in the parameter file and exit with an error when they do not.
%
%-------------------------------------------------------------------------------------
\subsection{Error analysis}\label{sec:analysis}
......
LIB=modules_90.a
OBJS=errors_mod.o files_mod.o fourier_mod.o histograms_mod.o histograms_v2_mod.o lattices_v3_mod.o \
log_mesh_mod.o mymats_mod.o matrix_mod.o maxent_mod.o maxent_stoch_mod.o mpi_shared_mem_mod_v2.o \
natural_constants_mod.o precdef_mod.o random_wrap_mod.o Mat_subroutines.o entanglement_mod.o alf_hdf5_mod.o
natural_constants_mod.o precdef_mod.o random_wrap_mod.o Mat_subroutines_mod.o entanglement_mod.o alf_hdf5_mod.o
MODS=errors.mod files_mod.mod fourier.mod histograms.mod histograms_v2.mod lattices_v3.mod \
log_mesh.mod mymats.mod matrix.mod maxent_mod.mod maxent_stoch_mod.mod mpi_shared_memory.mod \
natural_constants.mod precdef.mod random_wrap.mod entanglement_mod.mod alf_hdf5.mod
natural_constants.mod precdef.mod random_wrap.mod mat_subroutines.mod entanglement_mod.mod alf_hdf5.mod
$(LIB): $(OBJS)
ar -r $(LIB) $(OBJS)
......
! Copyright (C) 2016 - 2020 The ALF project
! Copyright (C) 2016 - 2022 The ALF project
!
! This file is part of the ALF project.
!
......@@ -31,7 +31,7 @@
! - If you make substantial changes to the program we require you to either consider contributing
! to the ALF project or to mark your material in a reasonable way as different from the original version.
module mat_subroutines
!--------------------------------------------------------------------
!> @author
!> ALF-project
......@@ -41,6 +41,9 @@
!> type.
!
!--------------------------------------------------------------------
implicit none
contains
subroutine ZSLGEMM(side, op, N, M1, M2, A, P, Mat)
! Small Large general matrix multiplication
......@@ -1418,3 +1421,5 @@ subroutine ZDSLSYMM(side, uplo, N, M1, M2, A, P, Mat)
ENDIF
end subroutine ZDSLSYMM
end module
! This file is included by Predefined_Obs_mod.F90
!-------------------------------------------------------------------
!> @author
!> ALF-project
......
! Copyright (C) 2016 - 2018 The ALF project
! Copyright (C) 2016 - 2022 The ALF project
!
! This file is part of the ALF project.
!
......@@ -106,27 +106,10 @@ Module Global_mod
Subroutine Exchange_Step(Phase,GR, udvr, udvl, Stab_nt, udvst, N_exchange_steps, Tempering_calc_det)
Use UDV_State_mod
Use mpi
use wrapul_mod
use cgr1_mod
Implicit none
Interface
SUBROUTINE WRAPUL(NTAU1, NTAU, udvl)
Use Hamiltonian_main
Use UDV_State_mod
Implicit none
CLASS(UDV_State), intent(inout) :: udvl(N_FL)
Integer :: NTAU1, NTAU
END SUBROUTINE WRAPUL
SUBROUTINE CGR(PHASE,NVAR, GRUP, udvr, udvl)
Use UDV_Wrap_mod
Use UDV_State_mod
Implicit None
CLASS(UDV_State), INTENT(IN) :: udvl, udvr
COMPLEX(Kind=Kind(0.d0)), Dimension(:,:), Intent(Inout) :: GRUP
COMPLEX(Kind=Kind(0.d0)) :: PHASE
INTEGER :: NVAR
END SUBROUTINE CGR
end Interface
! Arguments
COMPLEX (Kind=Kind(0.d0)), INTENT(INOUT) :: Phase
CLASS(UDV_State), intent(inout), allocatable, Dimension(:) :: udvl, udvr
......@@ -452,27 +435,10 @@ Module Global_mod
Subroutine Global_Updates(Phase,GR, udvr, udvl, Stab_nt, udvst,N_Global)
Use UDV_State_mod
use wrapul_mod
use cgr1_mod
Implicit none
Interface
SUBROUTINE WRAPUL(NTAU1, NTAU, udvl)
Use Hamiltonian_main
Use UDV_State_mod
Implicit none
CLASS(UDV_State), intent(inout), allocatable, dimension(:) :: udvl
Integer :: NTAU1, NTAU
END SUBROUTINE WRAPUL
SUBROUTINE CGR(PHASE,NVAR, GRUP, udvr, udvl)
Use UDV_Wrap_mod
Use UDV_State_mod
Implicit None
CLASS(UDV_State), INTENT(IN) :: udvl, udvr
COMPLEX(Kind=Kind(0.d0)), Dimension(:,:), Intent(Inout) :: GRUP
COMPLEX(Kind=Kind(0.d0)) :: PHASE
INTEGER :: NVAR
END SUBROUTINE CGR
end Interface
! Arguments
COMPLEX (Kind=Kind(0.d0)), INTENT(INOUT) :: Phase
CLASS (UDV_State), DIMENSION(:), ALLOCATABLE, INTENT(INOUT) :: udvl, udvr
......@@ -555,7 +521,7 @@ Module Global_mod
! Draw a new spin configuration. This is provided by the user in the Hamiltonian module
! Note that nsigma is a variable in the module Hamiltonian
Call ham%Global_move(T0_Proposal_ratio,nsigma_old,size_clust)
If (T0_Proposal_ratio > 1.D-24) then
If (T0_Proposal_ratio > 0.d0) then
NC = NC + 1
! Compute the new Green function
storage = "Empty"
......@@ -592,6 +558,9 @@ Module Global_mod
nsigma%f = nsigma_old%f
endif
Call Control_upgrade_Glob(TOGGLE,size_clust)
else
nsigma%t = nsigma_old%t
nsigma%f = nsigma_old%f
endif
Enddo
......@@ -762,21 +731,12 @@ Module Global_mod
Subroutine Compute_Fermion_Det(Phase_det,Det_Vec, udvl, udvst, Stab_nt, storage)
!--------------------------------------------------------------------
Use UDV_Wrap_mod
Use UDV_Wrap_mod
Use UDV_State_mod
use wrapul_mod
Implicit none
Interface
SUBROUTINE WRAPUL(NTAU1, NTAU, udvl)
Use Hamiltonian_main
Use UDV_State_mod
Implicit none
CLASS(UDV_State), intent(inout), allocatable, dimension(:) :: udvl
Integer :: NTAU1, NTAU
END SUBROUTINE WRAPUL
end Interface
REAL (Kind=Kind(0.d0)), Dimension(:,:), Intent(OUT) :: Det_Vec
Complex (Kind=Kind(0.d0)), Dimension(:) , Intent(OUT) :: Phase_det
CLASS(UDV_State), DIMENSION(:) , ALLOCATABLE, INTENT(INOUT) :: udvl
......
! Copyright (C) 2016 - 2020 The ALF project
! Copyright (C) 2016 - 2022 The ALF project
!
! The ALF project is free software: you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
......@@ -36,7 +36,13 @@
Use UDV_State_mod
Use Control
Use Hop_mod
use wrapur_mod
use wrapul_mod
use cgr1_mod
Use iso_fortran_env, only: output_unit, error_unit
#ifdef MPI
Use mpi
#endif
Implicit none
......@@ -86,33 +92,6 @@
SUBROUTINE Langevin_HMC_Forces(Phase, GR, GR_Tilde, Test, udvr, udvl, Stab_nt, udvst, LOBS_ST, LOBS_EN,Calc_Obser_eq)
Implicit none
Interface
SUBROUTINE WRAPUR(NTAU, NTAU1, UDVR)
Use Hamiltonian_main
Use UDV_Wrap_mod
Use UDV_State_mod
Implicit None
CLASS(UDV_State), intent(inout), allocatable, dimension(:) :: UDVR
Integer :: NTAU1, NTAU
END SUBROUTINE WRAPUR
SUBROUTINE WRAPUL(NTAU1, NTAU, UDVL)
Use Hamiltonian_main
Use UDV_State_mod
Implicit none
CLASS(UDV_State), intent(inout), allocatable, dimension(:) :: UDVL
Integer :: NTAU1, NTAU
END SUBROUTINE WRAPUL
SUBROUTINE CGR(PHASE,NVAR, GRUP, udvr, udvl)
Use UDV_Wrap_mod
Use UDV_State_mod
Implicit None
CLASS(UDV_State), INTENT(IN) :: UDVL, UDVR
COMPLEX(Kind=Kind(0.d0)), Dimension(:,:), Intent(Inout) :: GRUP
COMPLEX(Kind=Kind(0.d0)) :: PHASE
INTEGER :: NVAR
END SUBROUTINE CGR
end Interface
CLASS(UDV_State), intent(inout), allocatable, dimension(: ) :: udvl, udvr
CLASS(UDV_State), intent(in), allocatable, dimension(:,:) :: udvst
Complex (Kind=Kind(0.d0)), intent(inout) :: Phase
......@@ -249,33 +228,6 @@
Implicit none
Interface
SUBROUTINE WRAPUR(NTAU, NTAU1, UDVR)
Use Hamiltonian_main
Use UDV_Wrap_mod
Use UDV_State_mod
Implicit None
CLASS(UDV_State), intent(inout), allocatable, dimension(:) :: UDVR
Integer :: NTAU1, NTAU
END SUBROUTINE WRAPUR
SUBROUTINE WRAPUL(NTAU1, NTAU, UDVL)
Use Hamiltonian_main
Use UDV_State_mod
Implicit none
CLASS(UDV_State), intent(inout), allocatable, dimension(:) :: UDVL
Integer :: NTAU1, NTAU
END SUBROUTINE WRAPUL
SUBROUTINE CGR(PHASE,NVAR, GRUP, udvr, udvl)
Use UDV_Wrap_mod
Use UDV_State_mod
Implicit None
CLASS(UDV_State), INTENT(IN) :: UDVL, UDVR
COMPLEX(Kind=Kind(0.d0)), Dimension(:,:), Intent(Inout) :: GRUP
COMPLEX(Kind=Kind(0.d0)) :: PHASE
INTEGER :: NVAR
END SUBROUTINE CGR
end Interface
CLASS(UDV_State), intent(inout), allocatable, dimension(: ) :: udvl, udvr
CLASS(UDV_State), intent(inout), allocatable, dimension(:,:) :: udvst
Complex (Kind=Kind(0.d0)), intent(inout) :: Phase
......@@ -425,9 +377,6 @@
SUBROUTINE Langevin_HMC_setup(this,Langevin,HMC, Delta_t_Langevin_HMC, Max_Force, Leapfrog_steps )
#ifdef MPI
Use mpi
#endif
Implicit none
......@@ -509,10 +458,6 @@
SUBROUTINE Langevin_HMC_clear(this)
#ifdef MPI
Use mpi
#endif
Implicit none
class (Langevin_HMC_type) :: this
......
......@@ -4,17 +4,20 @@ OHAM = `while read -r ham; do \
echo "Hamiltonians/Hamiltonian_$${ham}_smod.o"; \
done < Hamiltonians.list`
OBJS = Hamiltonians/LRC_mod.o Set_random.o control_mod.o Fields_mod.o Operator_mod.o WaveFunction_mod.o observables_mod.o \
OBJS = Hamiltonians/LRC_mod.o control_mod.o Fields_mod.o Operator_mod.o WaveFunction_mod.o observables_mod.o \
ContainerElementBase_mod.o DynamicMatrixArray_mod.o OpTTypes_mod.o \
Predefined_Int_mod.o Predefined_Obs_mod.o Predefined_Latt_mod.o Predefined_Hop_mod.o Predefined_Trial_mod.o \
Hamiltonian_main_mod.o QDRP_decompose_mod.o udv_state_mod.o Hop_mod.o UDV_WRAP_mod.o \
Global_mod.o Langevin_HMC_mod.o Wrapgr_mod.o tau_m_mod.o tau_p_mod.o main.o wrapul.o cgr1.o wrapur.o cgr2_2.o upgrade.o
wrapul_mod.o cgr1_mod.o wrapur_mod.o cgr2_2_mod.o upgrade_mod.o Set_random_mod.o \
Global_mod.o Langevin_HMC_mod.o Wrapgr_mod.o tau_m_mod.o tau_p_mod.o \
main.o
MODS = control.mod fields_mod.mod global_mod.mod hop_mod.mod lrc_mod.mod observables.mod \
operator_mod.mod predefined_int.mod predefined_lattices.mod predefined_obs.mod \
predefined_hoppings.mod predefined_trial.mod qdrp_mod.mod tau_m_mod.mod tau_p_mod.mod \
udv_state_mod.mod udv_wrap_mod.mod wavefunction_mod.mod wrapgr_mod.mod hamiltonian.mod \
containerelementbase_mod.mod opttypes_mod.mod dynamicmatrixarray_mod.mod langevin_hmc_mod.mod
containerelementbase_mod.mod opttypes_mod.mod dynamicmatrixarray_mod.mod langevin_hmc_mod.mod \
wrapul_mod.mod cgr1_mod.mod wrapur_mod.mod cgr2_2_mod.mod upgrade_mod.mod set_random.mod
program: git.h parse_parameters Hamiltonians_interface.h Hamiltonians_case.h echo_compile_mods $(OBJS)
make $(OHAM)
......
! Copyright (C) 2020 The ALF project
! Copyright (C) 2020 - 2022 The ALF project
!
! The ALF project is free software: you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
......@@ -33,6 +33,7 @@
module OpTTypes_mod
use ContainerElementBase_mod
use Operator_mod
use mat_subroutines
implicit none
private
......
! Copyright (C) 2016 - 2021 The ALF project
! Copyright (C) 2016 - 2022 The ALF project
!
! This file is part of the ALF project.
!
......@@ -42,6 +42,7 @@
Module Operator_mod
Use mpi_shared_memory
Use mat_subroutines
Use MyMats
Use Fields_mod
......
......@@ -268,6 +268,8 @@
Real (Kind = Kind(0.d0) ) :: Zero = 1.0E-8, Ham_T_max
Real (Kind = Kind(0.d0) ), allocatable :: Ham_T_perp_vec(:)
If ( Xnorm(Latt%L2_p - Latt%a2_p) < Zero ) then
Allocate( Ham_T_perp_vec(N_FL) )
Ham_T_perp_vec = 0.d0
......@@ -276,6 +278,11 @@
& List, Invlist, Latt, Latt_unit )
Deallocate ( Ham_T_perp_vec )
else
If ( mod(nint(latt%L1_p(1)),2) /= 0 .or. mod(nint(latt%L2_p(2)),2) /= 0 ) then
Write(error_unit,*) '*** For the square lattice, our implementation of the checkerborad '
Write(error_unit,*) 'decomposition requires even values of L_1 and L_2 ***'
error stop 1
endif
Allocate( this(N_FL) )
Ham_T_max = 0.d0
......@@ -377,7 +384,8 @@
Integer :: nf,N_Bonds, nc, I, I1, n, no
Real (Kind=Kind(0.d0)) :: Zero = 1.0E-8
select case (Latt%N)
case(1) ! Here the length of the N_leg_ladder is unity such that it
! effectivley maps onto a one-dimensional chain with open boundary conditions.
......@@ -442,6 +450,12 @@
case default
If ( mod(nint(latt%L1_p(1)),2) /= 0 ) then
Write(error_unit,*) '*** For the N_leg_ladder lattice, our implementation of the checkerborad '
Write(error_unit,*) 'decomposition requires L_1 = 1 or L_1 even ***'
error stop 1
endif
!Write(6,*) Ham_T_vec, Ham_T_perp_vec, Ham_chem_vec
Allocate( this(N_FL) )
do nf = 1,N_FL
......@@ -655,7 +669,12 @@
Logical :: Test=.false.
Real (Kind=Kind(0.d0)) :: Ham_T1_max, Ham_T2_max, Ham_Tperp_max
If ( mod(nint(latt%L1_p(1)),2) /= 0 .or. mod(nint(latt%L2_p(2)),2) /= 0 ) then
Write(error_unit,*) '*** For the Bilayer square lattice, our implementation of the checkerborad '
Write(error_unit,*) 'decomposition requires L_1 and L_2 to be even ***'
error stop 1
endif
Ham_T1_max = 0.d0
Ham_T2_max = 0.d0
Ham_Tperp_max = 0.d0
......
......@@ -29,6 +29,9 @@
! - If you make substantial changes to the program we require you to either consider contributing
! to the ALF project or to mark your material in a reasonable way as different from the original version.
module set_random
implicit none
contains
!--------------------------------------------------------------------
!> @author
......@@ -98,3 +101,5 @@
#endif
end Subroutine Set_Random_number_Generator
end module
! Copyright (C) 2016 - 2018 The ALF project
! Copyright (C) 2016 - 2022 The ALF project
!
! This file is part of the ALF project.
!
......@@ -49,6 +49,9 @@ Module Wrapgr_mod
Use Control
Use Random_Wrap
Use Fields_mod
Use Hamiltonian_main
Use Hop_mod
use upgrade_mod
Implicit none
......@@ -86,31 +89,8 @@ Contains
!> NTAU: [0:LTROT-1]
!
!--------------------------------------------------------------------
Use Hamiltonian_main
Use Hop_mod
Implicit none
Interface
Subroutine Upgrade2(GR,N_op,NT,PHASE,Hs_new, Prev_Ratiotot, S0_ratio, T0_proposal_ratio, toggle, mode)
Use Hamiltonian_main
Use Random_wrap
Use Control
Use Fields_mod
Implicit none
Complex (Kind=Kind(0.d0)), INTENT(INOUT) :: GR(Ndim,Ndim, N_FL)
Complex (Kind=Kind(0.d0)), INTENT(INOUT) :: Prev_Ratiotot
Integer , INTENT(IN) :: N_op, Nt
Complex (Kind=Kind(0.d0)), INTENT(INOUT) :: Phase
Real (Kind=Kind(0.d0)), INTENT(IN) :: Hs_new
Real (Kind=Kind(0.d0)), INTENT(IN) :: S0_ratio, T0_proposal_ratio
Character (Len=64) , INTENT(IN) :: Mode
Logical , INTENT(INOUT) :: toggle
End Subroutine Upgrade2
end Interface
! Arguments
COMPLEX (Kind=Kind(0.d0)), INTENT(INOUT), allocatable :: GR(:,:,:)
COMPLEX (Kind=Kind(0.d0)), INTENT(INOUT) :: PHASE
......@@ -185,31 +165,8 @@ Contains
!> NTAU: [LTROT:1]
!
!--------------------------------------------------------------------
Use Hamiltonian_main
Use MyMats
Use Hop_mod
Implicit None
Interface
Subroutine Upgrade2(GR,N_op,NT,PHASE,Hs_new, Prev_Ratiotot, S0_ratio, T0_proposal_ratio, toggle, mode)
Use Hamiltonian_main
Use Random_wrap
Use Control
Use Fields_mod
Implicit none
Complex (Kind=Kind(0.d0)), INTENT(INOUT) :: GR(Ndim,Ndim, N_FL)
Complex (Kind=Kind(0.d0)), INTENT(INOUT) :: Prev_Ratiotot
Integer , INTENT(IN) :: N_op, Nt
Complex (Kind=Kind(0.d0)), INTENT(INOUT) :: Phase
Real (Kind=Kind(0.d0)), INTENT(IN) :: Hs_new
Real (Kind=Kind(0.d0)), INTENT(IN) :: S0_ratio, T0_proposal_ratio
Character (Len=64) , INTENT(IN) :: Mode
Logical , INTENT(INOUT) :: toggle
End Subroutine Upgrade2
End Interface
! Given GREEN at time NTAU => GREEN at time NTAU - 1,
! Upgrade NTAU [LTROT:1]
......@@ -376,27 +333,6 @@ Contains
!--------------------------------------------------------------------
Implicit none
Interface
Subroutine Upgrade2(GR,N_op,NT,PHASE,Hs_new, Prev_Ratiotot, S0_ratio, T0_proposal_ratio, toggle, mode)
Use Hamiltonian_main
Use Random_wrap
Use Control
Use Fields_mod
Implicit none
Complex (Kind=Kind(0.d0)), INTENT(INOUT) :: GR(Ndim,Ndim, N_FL)
Complex (Kind=Kind(0.d0)), INTENT(INOUT) :: Prev_Ratiotot
Integer , INTENT(IN) :: N_op, Nt
Complex (Kind=Kind(0.d0)), INTENT(INOUT) :: Phase
Real (Kind=Kind(0.d0)), INTENT(IN) :: Hs_new
Real (Kind=Kind(0.d0)), INTENT(IN) :: S0_ratio, T0_proposal_ratio
Character (Len=64) , INTENT(IN) :: Mode
Logical , INTENT(INOUT) :: toggle
End Subroutine Upgrade2
end Interface
! Arguments
COMPLEX (Kind=Kind(0.d0)), Dimension(:,:,:), INTENT(INOUT), allocatable :: GR
......
! Copyright (C) 2016 - 2019 The ALF project
! Copyright (C) 2016 - 2022 The ALF project
!
! The ALF project is free software: you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
......@@ -29,6 +29,10 @@
! - If you make substantial changes to the program we require you to either consider contributing
! to the ALF project or to mark your material in a reasonable way as different from the original version.
module cgr1_mod
implicit none
contains
SUBROUTINE CGR(PHASE,NVAR, GRUP, udvr, udvl)
!--------------------------------------------------------------------
......@@ -61,15 +65,6 @@
COMPLEX(Kind=Kind(0.d0)), Dimension(:,:), Intent(INOUT) :: GRUP
COMPLEX(Kind=Kind(0.d0)) :: PHASE
INTEGER :: NVAR
interface
subroutine cgrp(PHASE, GRUP, udvr, udvl)
Use UDV_State_mod
CLASS(UDV_State), INTENT(IN) :: udvl, udvr
COMPLEX (Kind=Kind(0.d0)), Dimension(:,:), Intent(OUT) :: GRUP
COMPLEX (Kind=Kind(0.d0)), Intent(OUT) :: PHASE
end subroutine cgrp
end interface
!Local
TYPE(UDV_State) :: udvlocal
......@@ -182,15 +177,6 @@
COMPLEX(Kind=Kind(0.d0)), Dimension(:,:), Intent(INOUT) :: GRUP
COMPLEX(Kind=Kind(0.d0)), Intent(INOUT) :: PHASE