C^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SUBROUTINE GSTEP1(IPRE) C^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ IMPLICIT REAL(A-H,O-Y) IMPLICIT COMPLEX(Z) INCLUDE 'PACVPP' KMAX=KNX+1 KMAY=KNY+1 KMAZ=KNZ+1 IF (IPRE.NE.1) THEN KMAX=KNX-1 KMAY=KNY-1 KMAZ=KNZ-1 END IF KMAX2=2*KMAX+1 KMAY2=2*KMAY+1 KMAZ2=2*KMAZ+1 C ## LARGEST WAVE VECTOR; CUT OFF WAVE NUMBER FOR WAVE FUNCTION ## GMAX2=GMAX*2.0D0 C ////////////////////////////////////////////// C // GENERATION OF RECIPROCAL LATTICE VECTORS // C // STEP 1 // C ////////////////////////////////////////////// B1X = RLTV(1,1) B1Y = RLTV(2,1) B1Z = RLTV(3,1) B2X = RLTV(1,2) B2Y = RLTV(2,2) B2Z = RLTV(3,2) B3X = RLTV(1,3) B3Y = RLTV(2,3) B3Z = RLTV(3,3) MM=0 DO 20 I1=1,KMAX2 F1=FLOAT(I1-KMAX-1) DO 20 I2=1,KMAY2 F2=FLOAT(I2-KMAY-1) DO 20 I3=1,KMAZ2 F3=FLOAT(I3-KMAZ-1) FX= F1*B1X + F2*B2X + F3*B3X FY= F1*B1Y + F2*B2Y + F3*B3Y FZ= F1*B1Z + F2*B2Z + F3*B3Z FR=SQRT(FX*FX+FY*FY+FZ*FZ) IF(FR.LE.GMAX2) THEN MM=MM+1 IG1(MM)=I1-KMAX-1 IG2(MM)=I2-KMAY-1 IG3(MM)=I3-KMAZ-1 GX(MM)=FX GY(MM)=FY GZ(MM)=FZ GR(MM)=FR END IF 20 CONTINUE WRITE(6,*) 'NUMBER OF GENERATED VECTORS=',MM IF(MM.NE.KG) WRITE(6,*) '**WARNING] KG MUST BE EQUAL TO ',MM C----------------------------------------------------------------------- KG=MM IXMA=0 IYMA=0 IZMA=0 DO 643 I=1,KG IXMA= MAX(IXMA,ABS(IG1(I))) IYMA= MAX(IYMA,ABS(IG2(I))) IZMA= MAX(IZMA,ABS(IG3(I))) 643 CONTINUE IXMA = IXMA +1 IYMA = IYMA +1 IZMA = IZMA +1 WRITE(6,*) '**KX1 SHOULD BE =',IXMA WRITE(6,*) '**KY1 SHOULD BE =',IYMA WRITE(6,*) '**KZ1 SHOULD BE =',IZMA C KX1=IXMA KY1=IYMA KZ1=IZMA RETURN END