C---*----1----*----2----*----3----*----4----*----5----*----6----*----7  
      SUBROUTINE KPMWBZ
     >     (KNV3,RLTV,NKX,NKY,NKZ,NKX2,NKY2,NKZ2,NFOUT,                 
     <      KV3,VX,VY,VZ) 
C************************************************************           
      IMPLICIT LOGICAL(A-Z)                                             
      INTEGER IKP,KNV3,NKX,NKY,NKZ,NKX2,NKY2,NKZ2,KV3,MM,I1,I2,I3,NFOUT
      REAL   RLTV(3,3),VX(KNV3),VY(KNV3),VZ(KNV3),FVX,FVY,FVZ         
      REAL   DGVX,DGVY,DGVZ,FV1,FV2,FV3 
      FVX=DFLOAT(NKX*2)                                                 
      FVY=DFLOAT(NKY*2)                                                 
      FVZ=DFLOAT(NKZ*2)                                                 
      IKP=0
      IF (IKP.EQ.0) THEN
        MM=0                                                            
C        DGVX=0.5D0*(RLTV(1,1)/FVX+RLTV(1,2)/FVY+RLTV(1,3)/FVZ)
C        DGVY=0.5D0*(RLTV(2,1)/FVX+RLTV(2,2)/FVY+RLTV(2,3)/FVZ)
C        DGVZ=0.5D0*(RLTV(3,1)/FVX+RLTV(3,2)/FVY+RLTV(3,3)/FVZ) 
        DGVX=0.0D0
        DGVY=0.0D0
        DGVZ=0.0D0 
        DO 100 I1=1,NKX2
                      FV1=DFLOAT(I1-NKX-1)/FVX                          
        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)=RLTV(1,1)*FV1 + RLTV(1,2)*FV2 + RLTV(1,3)*FV3 +DGVX      
        VY(MM)=RLTV(2,1)*FV1 + RLTV(2,2)*FV2 + RLTV(2,3)*FV3 +DGVY      
        VZ(MM)=RLTV(3,1)*FV1 + 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,*) '**WARNING MM SHOULD BE KNV3**'   
        KV3=MM                                                          
      ELSE IF (IKP.EQ.1) THEN
        VX(1)=0.0D0
        VY(1)=0.0D0
        VZ(1)=0.0D0
        KV3=1
      END IF
      RETURN                                                            
      END