Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ALF
ALF
Commits
dd534c24
Commit
dd534c24
authored
Jun 13, 2022
by
Jonas Schwab
Browse files
Merge branch 'master' into 221-complining-with-log-option-produces-gnu-compiler-prepocessor-error
parents
d4f047b4
05bbb94f
Pipeline
#15584
passed with stages
in 17 minutes and 37 seconds
Changes
28
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
.gitlab-ci.yml
View file @
dd534c24
variables
:
CONFIG_ARGS
:
"
"
# Variable for additional arguments for configure.sh
ALF_FLAGS_EXT
:
"
-DPIPELINE"
stages
:
-
build
...
...
Libraries/Modules/Makefile
View file @
dd534c24
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)
...
...
Libraries/Modules/Mat_subroutines.F90
→
Libraries/Modules/Mat_subroutines
_mod
.F90
View file @
dd534c24
! Copyright (C) 2016 - 202
0
The ALF project
! Copyright (C) 2016 - 202
2
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
Libraries/Modules/entanglement_mod.F90
View file @
dd534c24
...
...
@@ -32,10 +32,8 @@
Module
entanglement_mod
#ifndef MPI
#ifndef PIPELINE
#warning "You are compiling entanglement without MPI. No results possible"
#endif
#endif
!--------------------------------------------------------------------
!> @author
...
...
Prog/Cotunneling_dimer_obs.F90
View file @
dd534c24
! This file is included by Predefined_Obs_mod.F90
!-------------------------------------------------------------------
!> @author
!> ALF-project
...
...
Prog/Global_mod.F90
View file @
dd534c24
! Copyright (C) 2016 - 20
18
The ALF project
! Copyright (C) 2016 - 20
22
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
...
...
Prog/Langevin_HMC_mod.F90
View file @
dd534c24
! Copyright (C) 2016 - 202
0
The ALF project
! Copyright (C) 2016 - 202
2
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
...
...
Prog/Makefile
View file @
dd534c24
...
...
@@ -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)
...
...
Prog/OpTTypes_mod.F90
View file @
dd534c24
! 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
...
...
Prog/Operator_mod.F90
View file @
dd534c24
! Copyright (C) 2016 - 202
1
The ALF project
! Copyright (C) 2016 - 202
2
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
...
...
Prog/Predefined_Hop_mod.F90
View file @
dd534c24
...
...
@@ -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
...
...
Prog/Set_random.F90
→
Prog/Set_random
_mod
.F90
View file @
dd534c24
...
...
@@ -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
Prog/Wrapgr_mod.F90
View file @
dd534c24
! Copyright (C) 2016 - 20
18
The ALF project
! Copyright (C) 2016 - 20
22
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
...
...
Prog/cgr1.F90
→
Prog/cgr1
_mod
.F90
View file @
dd534c24
! Copyright (C) 2016 - 20
19
The ALF project
! Copyright (C) 2016 - 20
22
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
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
COMPLEX
(
Kind
=
Kind
(
0.d0
)),
Dimension
(:,:),
Allocatable
::
TPUP
,
RHS
...
...
@@ -507,3 +493,4 @@
Deallocate
(
sMat
,
rMat
,
ipiv
)
END
SUBROUTINE
CGRP
end
module
cgr1_mod
Prog/cgr2_2.F90
→
Prog/cgr2_2
_mod
.F90
View file @
dd534c24
! Copyright (C) 2016 - 20
18
The ALF project
! Copyright (C) 2016 - 20
22
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,11 @@
! - 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
cgr2_2_mod
implicit
none
private
public
::
CGR2_2
,
solve_extended_system
,
get_blocks
contains
!--------------------------------------------------------------------
!> @author
...
...
@@ -413,3 +418,5 @@
DEALLOCATE
(
MYU2
,
V1INV
,
HLPB1
,
HLPB2
,
WORK
,
IPVT
,
TAU
,
D3
,
D1m
,
D2m
)
#endif
END
SUBROUTINE
CGR2_2
end
module
cgr2_2_mod
Prog/main.F90
View file @
dd534c24
! Copyright (C) 2016 - 202
0
The ALF project
! Copyright (C) 2016 - 202
2
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
...
...
@@ -128,6 +128,10 @@ Program Main
use
entanglement_mod
use
iso_fortran_env
,
only
:
output_unit
,
error_unit
Use
Langevin_HMC_mod
use
wrapur_mod