Commit db7ac1b0 authored by Fakher F. Assaad's avatar Fakher F. Assaad
Browse files

Included manually a number of changes.

1) The defaut stabilization is now taken from branch 38 (https://git.physik.uni-wuerzburg.de/fassaad/General_QMCT_code/commit/2aa1bbbffe06e4931a3a1a58d6a529d473e8d8b7 )
The compiler flag STAB2 will revert to the older one. Note that the history of stabilization schemes are available with the compiler flags STAB1 and STAB2.
2)  I have implemented the improved timing from the branch improve timing (https://git.physik.uni-wuerzburg.de/fassaad/General_QMCT_code/commit/0dcfd7a10dc2c537efad7e87e17ea485f40b673f)
3)  I have fixed the "bug" in lattice which does not allocate the array imj if the size of the lattice is bigger than 1000.  That was admittedly pretty sloppy.
parent 06a1f0e4
Loading
Loading
Loading
Loading
Loading
+14 −18
Original line number Diff line number Diff line
@@ -280,7 +280,6 @@
           enddo

           !Setup imj 
           If (LQ  .lt. 1000 ) then 
           Allocate ( Latt%imj(LQ,LQ) )
           do nr = 1, Latt%N
              x_p = dble(Latt%list(nr,1))*Latt%a1_p + dble(Latt%list(nr,2))*a2_p  
@@ -295,14 +294,11 @@
                 Latt%imj(nr,nr1) = imj 
              enddo
           enddo
           endif
           
           deallocate ( b1_p, b2_p, xk_p, b_p )
           deallocate ( BZ1_p, BZ2_p )
           deallocate ( x_p,  x1_p, d_p,  a_p )



         end subroutine MAKE_LATTICE

 !********
+1 −1
Original line number Diff line number Diff line
OBJS=zgeqr2.o zgeqrf.o zlarf.o zlarfb.o zlarfg.o zlarft.o zung2r.o zungqr.o
OBJS=zgeqr2.o zgeqrf.o zlarf.o zlarfb.o zlarfg.o zlarft.o zung2r.o zungqr.o  zlapmr.o

all: $(OBJS)
	ar -r libqrref.a $(OBJS)
+204 −0
Original line number Diff line number Diff line
*> \brief \b ZLAPMR rearranges rows of a matrix as specified by a permutation vector.
*
*  =========== DOCUMENTATION ===========
*
* Online html documentation available at
*            http://www.netlib.org/lapack/explore-html/
*
*> \htmlonly
*> Download ZLAPMR + dependencies
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zlapmr.f">
*> [TGZ]</a>
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zlapmr.f">
*> [ZIP]</a>
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlapmr.f">
*> [TXT]</a>
*> \endhtmlonly
*
*  Definition:
*  ===========
*
*       SUBROUTINE ZLAPMR( FORWRD, M, N, X, LDX, K )
*
*       .. Scalar Arguments ..
*       LOGICAL            FORWRD
*       INTEGER            LDX, M, N
*       ..
*       .. Array Arguments ..
*       INTEGER            K( * )
*       COMPLEX*16         X( LDX, * )
*       ..
*
*
*> \par Purpose:
*  =============
*>
*> \verbatim
*>
*> ZLAPMR rearranges the rows of the M by N matrix X as specified
*> by the permutation K(1),K(2),...,K(M) of the integers 1,...,M.
*> If FORWRD = .TRUE.,  forward permutation:
*>
*>      X(K(I),*) is moved X(I,*) for I = 1,2,...,M.
*>
*> If FORWRD = .FALSE., backward permutation:
*>
*>      X(I,*) is moved to X(K(I),*) for I = 1,2,...,M.
*> \endverbatim
*
*  Arguments:
*  ==========
*
*> \param[in] FORWRD
*> \verbatim
*>          FORWRD is LOGICAL
*>          = .TRUE., forward permutation
*>          = .FALSE., backward permutation
*> \endverbatim
*>
*> \param[in] M
*> \verbatim
*>          M is INTEGER
*>          The number of rows of the matrix X. M >= 0.
*> \endverbatim
*>
*> \param[in] N
*> \verbatim
*>          N is INTEGER
*>          The number of columns of the matrix X. N >= 0.
*> \endverbatim
*>
*> \param[in,out] X
*> \verbatim
*>          X is COMPLEX*16 array, dimension (LDX,N)
*>          On entry, the M by N matrix X.
*>          On exit, X contains the permuted matrix X.
*> \endverbatim
*>
*> \param[in] LDX
*> \verbatim
*>          LDX is INTEGER
*>          The leading dimension of the array X, LDX >= MAX(1,M).
*> \endverbatim
*>
*> \param[in,out] K
*> \verbatim
*>          K is INTEGER array, dimension (M)
*>          On entry, K contains the permutation vector. K is used as
*>          internal workspace, but reset to its original value on
*>          output.
*> \endverbatim
*
*  Authors:
*  ========
*
*> \author Univ. of Tennessee
*> \author Univ. of California Berkeley
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \date December 2016
*
*> \ingroup complex16OTHERauxiliary
*
*  =====================================================================
      SUBROUTINE ZLAPMR( FORWRD, M, N, X, LDX, K )
*
*  -- LAPACK auxiliary routine (version 3.7.0) --
*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
*     December 2016
*
*     .. Scalar Arguments ..
      LOGICAL            FORWRD
      INTEGER            LDX, M, N
*     ..
*     .. Array Arguments ..
      INTEGER            K( * )
      COMPLEX*16         X( LDX, * )
*     ..
*
*  =====================================================================
*
*     .. Local Scalars ..
      INTEGER            I, IN, J, JJ
      COMPLEX*16         TEMP
*     ..
*     .. Executable Statements ..
*
      IF( M.LE.1 )
     $   RETURN
*
      DO 10 I = 1, M
         K( I ) = -K( I )
   10 CONTINUE
*
      IF( FORWRD ) THEN
*
*        Forward permutation
*
         DO 50 I = 1, M
*
            IF( K( I ).GT.0 )
     $         GO TO 40
*
            J = I
            K( J ) = -K( J )
            IN = K( J )
*
   20       CONTINUE
            IF( K( IN ).GT.0 )
     $         GO TO 40
*
            DO 30 JJ = 1, N
               TEMP = X( J, JJ )
               X( J, JJ ) = X( IN, JJ )
               X( IN, JJ ) = TEMP
   30       CONTINUE
*
            K( IN ) = -K( IN )
            J = IN
            IN = K( IN )
            GO TO 20
*
   40       CONTINUE
*
   50    CONTINUE
*
      ELSE
*
*        Backward permutation
*
         DO 90 I = 1, M
*
            IF( K( I ).GT.0 )
     $         GO TO 80
*
            K( I ) = -K( I )
            J = K( I )
   60       CONTINUE
            IF( J.EQ.I )
     $         GO TO 80
*
            DO 70 JJ = 1, N
               TEMP = X( I, JJ )
               X( I, JJ ) = X( J, JJ )
               X( J, JJ ) = TEMP
   70       CONTINUE
*
            K( J ) = -K( J )
            J = K( J )
            GO TO 60
*
   80       CONTINUE
*
   90    CONTINUE
*
      END IF
*
      RETURN
*
*     End of ZLAPMT
*
      END
+2 −1
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 \
OBJS=  control_mod.o Operator.o observables_mod.o Hamiltonian_Examples.o QDRP_decompose.o wrap_helpers.o \
       Hop_mod.o  UDV_WRAP.o Global_mod.o \
       tau_m.o  main.o wrapul.o  cgr1.o wrapgrup.o wrapur.o upgrade.o \
       wrapgrdo.o outconfc.o  inconfc.o  cgr2_2.o 

+3 −2
Original line number Diff line number Diff line
TARGET= Hubb.out
OBJS=  control_mod.o Operator.o observables_mod.o print_bin_mod.o Hamiltonian_Hub.o Hop_mod.o UDV_WRAP.o Global_mod.o  \
OBJS=  control_mod.o Operator.o observables_mod.o print_bin_mod.o QDRP_decompose.o wrap_helpers.o \
       Hamiltonian_Hub.o Hop_mod.o UDV_WRAP.o Global_mod.o  \
       tau_m.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  observables_mod.o
       wrapgrdo.o outconfc.o  inconfc.o cgr2.o cgr2_2.o cgr2_1.o  


  
Loading