Permalink
Browse files

Fixed offset error, to produce correct tests for Y directed current. …

…X directed current still broken.
  • Loading branch information...
1 parent d1eb4d9 commit bfbc0e58bb0eba6d7a338955b85cc91fcbb32bd9 jamesmcm committed May 24, 2012
Showing with 12 additions and 9 deletions.
  1. +10 −7 transfermatrix/driver.f
  2. +2 −2 transfermatrix/tmatrixy.f
@@ -8,32 +8,34 @@ PROGRAM TRANSFERMATIXTWO
DOUBLE PRECISION CHECKUNI2
DOUBLE PRECISION ZLANGE
EXTERNAL CHECKUNI2
+ EXTERNAL TONE
C For X current, LIMY MUST be even, LIMX MUST BE >=3
C FOR Y current, LIMX should be even if WRAPX = 1
CHARACTER CURRENT /'Y'/,
- + GAUGE /'Y'/
+ + GAUGE /'X'/
- INTEGER, PARAMETER :: LIMX = 3,
- + LIMY = 10,
+ INTEGER, PARAMETER :: LIMX = 10,
+ + LIMY = 16,
+ WRAPX = 0,
+ WRAPY = 0,
+ VSIZE = LIMX*LIMY
- DOUBLE PRECISION FLUX/0.0/
+ DOUBLE PRECISION FLUX/0.1/
DOUBLE PRECISION, PARAMETER :: EMIN = -3.0,
- + EMAX = 3.0
- INTEGER, PARAMETER :: NE = 600
+ + EMAX = 4.0
+ INTEGER, PARAMETER :: NE = 700
INTEGER, PARAMETER :: MAXSIZE = 10000
DOUBLE PRECISION TVALS(MAXSIZE)
INTEGER NTVALS
DOUBLE PRECISION E, CONDA/-1.0/, G
INTEGER IE/0/
DOUBLE COMPLEX V(LIMX,LIMY)
+ DOUBLE COMPLEX POT
DATA V/VSIZE*0.0/
C Note that V is different size to every other matrix
@@ -44,7 +46,8 @@ PROGRAM TRANSFERMATIXTWO
c CALL GETARG(1, VALUE)
c READ(UNIT=VALUE, FMT=*) LIMY
-
+ POT=1.0
+ CALL TTWO(V, POT, (-1.0*POT), LIMX, LIMY)
DO IE = 0, NE + 1
E = EMIN + ( (EMAX - EMIN) * IE) / NE
C Function to fill V here - for now just set to zeroes
@@ -34,7 +34,7 @@ SUBROUTINE CALCMULTYX(E, FLUX, POS, WRAPX, MULT, LIMX, LIMY, V)
C$$$ FILL BOTTOM-LEFT SUBMATRIX
MULT(I+LIMX, I)=-1
C$$$ FILL BOTTOM-RIGHT SUBMATRIX
- MULT(LIMX+I,LIMX+I)=E-V(I,POS+1)
+ MULT(LIMX+I,LIMX+I)=E-V(I,POS)
c$$$ Double-check this multiplication analytically at some stage
@@ -112,7 +112,7 @@ SUBROUTINE CALCMULTYY(E, FLUX, POS, WRAPX, MULT, LIMX, LIMY, V)
MULT(I + LIMX, I) = -CNUM
C$$$ FILL BOTTOM-RIGHT SUBMATRIX
CALL ZPOLAR(FLUX*I, CNUM)
- MULT(LIMX+I, LIMX+I) = (E-V(I,POS+1))*CNUM
+ MULT(LIMX+I, LIMX+I) = (E-V(I,POS))*CNUM
c$$$ Double-check this multiplication analytically at some stage

0 comments on commit bfbc0e5

Please sign in to comment.