C---*----1----*----2----*----3----*----4----*----5----*----6----*----7 SUBROUTINE KPMSF > (KNV3,RLTV,NKX,NKY,NKZ,NKX2,NKY2,NKZ2,NFOUT, < KV3,VX,VY,VZ) IMPLICIT LOGICAL(A-Z) INTEGER KNV3,NKX,NKY,NKZ,NKX2,NKY2,NKZ2,KV3,MM,I2,I3,NFOUT REAL RLTV(3,3),VX(KNV3),VY(KNV3),VZ(KNV3),FVY,FVZ REAL DGVY,DGVZ,FV2,FV3 FVY=DFLOAT(NKY*2) FVZ=DFLOAT(NKZ*2) MM=0 DGVY=0.5D0*(RLTV(2,2)/FVY+RLTV(2,3)/FVZ) DGVZ=0.5D0*(RLTV(3,2)/FVY+RLTV(3,3)/FVZ) DO 100 I2=1,NKY2 FV2=DFLOAT(I2-NKY-1)/FVY DO 100 I3=1,NKZ2 FV3=DFLOAT(I3-NKZ-1)/FVZ MM=MM+1 VX(MM) = 0.D0 VY(MM) = RLTV(2,2)*FV2 + RLTV(2,3)*FV3 + DGVY VZ(MM) = RLTV(3,2)*FV2 + RLTV(3,3)*FV3 + DGVZ 100 CONTINUE WRITE(NFOUT,*) 'NUMBER OF GENERATED K-POINTS=',MM IF(MM.NE.KNV3) WRITE(NFOUT,*) '**WARN MM SHOULD BE KNV3**' KV3=MM RETURN END