Commit 2aa1bbbf authored by Florian Goth's avatar Florian Goth
Browse files

fix previous commits. Now only ALLOCATABLE arrays use element access to pass them to lapack.

parent ee7e81e4
Loading
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
TARGET= Examples.out
OBJS=  control_mod.o Operator.o observables_mod.o Hamiltonian_Examples.o Hop_mod.o  UDV_WRAP.o Global_mod.o \
       tau_m.o  main.o wrapul.o QDRP_decompose.o cgr1.o wrapgrup.o wrapur.o upgrade.o \
       wrapgrdo.o outconfc.o  inconfc.o  cgr2_2.o wrap_helpers.o
       tau_m.o  main.o QDRP_decompose.o wrap_helpers.o wrapul.o  cgr1.o wrapgrup.o wrapur.o upgrade.o \
       wrapgrdo.o outconfc.o  inconfc.o  cgr2_2.o 

  
.SUFFIXES: .f90 .f
+2 −2
Original line number Diff line number Diff line
TARGET= Ising.out
OBJS=  control_mod.o Operator.o observables_mod.o print_bin_mod.o Hamiltonian_Ising.o Hop_mod.o  UDV_WRAP.o \
       Global_mod.o tau_m.o QDRP_decompose.o  main.o wrapul.o  cgr1.o wrapgrup.o wrapur.o upgrade.o \
        wrapgrdo.o outconfc.o  inconfc.o cgr2.o cgr2_2.o cgr2_1.o wrap_helpers.o
       Global_mod.o tau_m.o QDRP_decompose.o wrap_helpers.o main.o wrapul.o  cgr1.o wrapgrup.o wrapur.o upgrade.o \
        wrapgrdo.o outconfc.o  inconfc.o cgr2.o cgr2_2.o cgr2_1.o 

.SUFFIXES: .f90 .f
.f.o .f90.o:
+2 −2
Original line number Diff line number Diff line
TARGET= Kondo_Honey.out
OBJS=  control_mod.o Operator.o observables_mod.o print_bin_mod.o Hamiltonian_Kondo_Honey_mod.o Hop_mod.o  UDV_WRAP.o \
       Global_mod.o tau_m.o QDRP_decompose.o main.o wrapul.o  cgr1.o wrapgrup.o wrapur.o upgrade.o \
       wrapgrdo.o outconfc.o  inconfc.o cgr2.o cgr2_2.o cgr2_1.o wrap_helpers.o
       Global_mod.o tau_m.o QDRP_decompose.o wrap_helpers.o main.o wrapul.o  cgr1.o wrapgrup.o wrapur.o upgrade.o \
       wrapgrdo.o outconfc.o  inconfc.o cgr2.o cgr2_2.o cgr2_1.o 

.SUFFIXES: .f90 .f
.f.o .f90.o:
+3 −3
Original line number Diff line number Diff line
TARGET= SPT.out
OBJS=  control_mod.o Operator.o print_bin_mod.o observables_mod.o Hamiltonian_SPT.o Hop_mod.o  UDV_WRAP.o  \
       Global_mod.o tau_m.o QDRP_decompose.o main.o wrapul.o  cgr1.o wrapgrup.o wrapur.o upgrade.o \
        wrapgrdo.o outconfc.o  inconfc.o cgr2.o cgr2_2.o cgr2_1.o wrap_helpers.o
       Global_mod.o tau_m.o QDRP_decompose.o wrap_helpers.o main.o wrapul.o  cgr1.o wrapgrup.o wrapur.o upgrade.o \
        wrapgrdo.o outconfc.o  inconfc.o cgr2.o cgr2_2.o cgr2_1.o 

#block.o  block_obs.o Mol_Dyn.o  Hubb.o  inconfc.o  outconfc.o npbc.o  salph.o  sli.o \
#       sthop.o  wrapul.o wrapur.o cgr1.o \
@@ -14,7 +14,7 @@ OBJS= control_mod.o Operator.o print_bin_mod.o observables_mod.o Hamiltonian_SP
	$(FC) -c $(F90USEFULFLAGS) -o $@ $(FLAGS) $<

$(TARGET): $(OBJS)
	$(FC) -pg $(LF) -o $(TARGET) $(OBJS) $(LIBS)
	$(FC) $(LF) -o $(TARGET) $(OBJS) $(LIBS)

clean:
	rm  $(OBJS)
+5 −4
Original line number Diff line number Diff line
@@ -54,8 +54,9 @@ Implicit None
Integer, intent(in) :: Ndim
Integer, intent(inout) :: LWORK
Integer, Dimension(:), intent(inout), Allocatable :: IPVT
COMPLEX(Kind=Kind(0.d0)), Dimension(:,:), Intent(inout), Allocatable :: Mat
COMPLEX(Kind=Kind(0.d0)), Dimension(:), Intent(inout), Allocatable :: D, TAU
COMPLEX(Kind=Kind(0.d0)), Dimension(:,:), Intent(inout) :: Mat
COMPLEX(Kind=Kind(0.d0)), Dimension(:), Intent(inout) :: D
COMPLEX(Kind=Kind(0.d0)), Dimension(:), Intent(inout), Allocatable :: TAU
COMPLEX(Kind=Kind(0.d0)), Dimension(:), Intent(INOUT), Allocatable :: WORK

COMPLEX(Kind=Kind(0.d0)), Dimension(:), Allocatable :: RWORK
@@ -65,11 +66,11 @@ Real(Kind=Kind(0.d0)) :: X

        ALLOCATE(RWORK(2*Ndim))
        ! Query optimal amount of memory
        call ZGEQP3(Ndim, Ndim, Mat(1, 1), Ndim, IPVT, TAU(1), Z, -1, RWORK(1), INFO)
        call ZGEQP3(Ndim, Ndim, Mat, Ndim, IPVT, TAU(1), Z, -1, RWORK(1), INFO)
        LWORK = INT(DBLE(Z))
        ALLOCATE(WORK(LWORK))
        ! QR decomposition of Mat with full column pivoting, Mat * P = Q * R
        call ZGEQP3(Ndim, Ndim, Mat(1, 1), Ndim, IPVT, TAU(1), WORK(1), LWORK, RWORK(1), INFO)
        call ZGEQP3(Ndim, Ndim, Mat, Ndim, IPVT, TAU(1), WORK(1), LWORK, RWORK(1), INFO)
        DEALLOCATE(RWORK)
        ! separate off D
        do i = 1, Ndim
Loading