Commit dd534c24 authored by Jonas Schwab's avatar 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
variables:
CONFIG_ARGS: "" # Variable for additional arguments for configure.sh
ALF_FLAGS_EXT: "-DPIPELINE"
stages:
- build
......
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
......@@ -32,10 +32,8 @@
Module entanglement_mod
#ifndef MPI
#ifndef PIPELINE
#warning "You are compiling entanglement without MPI. No results possible"
#endif
#endif
!--------------------------------------------------------------------
!> @author
......
! 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
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
! Copyright (C) 2016 - 2018 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,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
! 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
......@@ -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