C---*----1----*----2----*----3----*----4----*----5----*----6----*----7  
      SUBROUTINE SYMM(KOPR,NOPR,NBZTYP,NEIBRD,NFOUT,RX,RY,RZ) 
      IMPLICIT REAL(A-H,O-Y)                                          
      IMPLICIT COMPLEX(Z)                                            
      INCLUDE 'PACVPP' 
      DIMENSION NPPP(KNG,KO),NAAA(KATM,KO)
      DIMENSION OO(3,3,KO),TAA(3,KO)      
      DIMENSION RX(NEIBRD),RY(NEIBRD),RZ(NEIBRD) 
!XOCL SUBPROCESSOR PT(IPARA)=PQ(1:IPARA)
!XOCL INDEX PARTITION IQ=(PT,INDEX=1:KO,PART=BAND)
!XOCL LOCAL NPPP(:,/IQ),NAAA(:,/IQ),OO(:,:,/IQ),TAA(:,/IQ) 
      EQUIVALENCE (NGPT,NPPP),(NAPT,NAAA),(OP,OO),(TAU,TAA) 
C---------------------------------------------------------------------- 
      IF (NBZTYP.EQ.5) THEN                                             
          A = ABS(ALTV(1,1))*2.D0                                       
        ELSE IF(NBZTYP.EQ.6.OR.NBZTYP.EQ.7) THEN                        
          A = ABS(ALTV(1,1))                                            
          B = ABS(ALTV(2,2))                                            
        ELSE IF(NBZTYP.EQ.8 .OR. NBZTYP.EQ.10) THEN                     
          A = ABS(ALTV(1,1))                                            
          B = ABS(ALTV(3,3))                                            
        ELSE IF(NBZTYP.EQ.9.OR.NBZTYP.GE.11) THEN
          A = ABS(ALTV(1,1))                                            
          B = ABS(ALTV(2,2))                                            
          C = ABS(ALTV(3,3))                                            
      END IF                                                            
C---------------------------------------------                          
      CALL OPGR
     >     (NBZTYP,KOPR,A,B,C,NFOUT,                               
     <      NOPR) 
C--*--SYMMETRY PAIRS FOR G-POINTS ------------
      DO 100 I = 1,KG                                                   
        PX=GX(I)                                                        
        PY=GY(I)                                                        
        PZ=GZ(I)                                                        
!XOCL SPREAD DO /IQ 
        DO 110 NO=1,NOPR                                                
          FX=OO(1,1,NO)*PX +OO(1,2,NO)*PY +OO(1,3,NO)*PZ                
          FY=OO(2,1,NO)*PX +OO(2,2,NO)*PY +OO(2,3,NO)*PZ                
          FZ=OO(3,1,NO)*PX +OO(3,2,NO)*PY +OO(3,3,NO)*PZ                
          DO 120 J = 1,KG                                               
            FF1 = ABS(GX(J)-FX)+ABS(GY(J)-FY)+ABS(GZ(J)-FZ)             
            IF (FF1.LE.1.D-5) THEN                                      
                NPPP(I,NO) = J                                          
                GOTO 110                                                
            END IF                                                      
  120     CONTINUE                                                      
          WRITE(NFOUT,130) I,NO                                         
          STOP                                                          
  110   CONTINUE                                                        
!XOCL END SPREAD 
  100 CONTINUE                                                          
  130 FORMAT(' ','THERE IS NO PAIR FOR NG,NOP=',2I8)                    
C--*--SYMMETRY PAIRS FOR ATOMS                                          
      DDD = 1.0D-5                                                      
      DO 200 I = 1,KATM
        PX=CATX(I)                                                     
        PY=CATY(I)                                                     
        PZ=CATZ(I)                                                     
!XOCL SPREAD DO /IQ 
        DO 210 NO=1,NOPR                                                
          FX=OO(1,1,NO)*PX+OO(1,2,NO)*PY+OO(1,3,NO)*PZ+TAA(1,NO)        
          FY=OO(2,1,NO)*PX+OO(2,2,NO)*PY+OO(2,3,NO)*PZ+TAA(2,NO)        
          FZ=OO(3,1,NO)*PX+OO(3,2,NO)*PY+OO(3,3,NO)*PZ+TAA(3,NO)        
          DO 220 J = 1,KATM
            DO 230 K = 1,NEIBRD                                         
              FFX = ABS( FX - CATX(J) - RX(K) )                        
              FFY = ABS( FY - CATY(J) - RY(K) )                        
              FFZ = ABS( FZ - CATZ(J) - RZ(K) )                        
              IF( (FFX.LE.DDD).AND.                                     
     &            (FFY.LE.DDD).AND.                                     
     &            (FFZ.LE.DDD)     ) THEN                               
                    NAAA(I,NO) = J                                      
                    GOTO 210                                            
              END IF                                                    
  230       CONTINUE                                                    
  220     CONTINUE                                                      
          WRITE(NFOUT,*) ' NO PAIR I, NO ',I,NO                         
          STOP                                                          
  210   CONTINUE                                                        
!XOCL END SPREAD 
  200 CONTINUE                                                          
C--*--OUTPUT                                                            
      IF(IPRI.GE.2) THEN                                                
        WRITE(NFOUT,*) ' NGPT '                                         
        DO 310 I=1,20                                                   
          WRITE(NFOUT,*) ' NG =',I                                      
          WRITE(NFOUT,300) (NGPT(I,J),J=1,NOPR)                         
  310   CONTINUE                                                        
        DO 320 I=KG-20,KG                                               
          WRITE(NFOUT,*) ' NG =',I                                      
          WRITE(NFOUT,300) (NGPT(I,J),J=1,NOPR)                         
  320   CONTINUE                                                        
        WRITE(NFOUT,*) ' NAPT '                                         
        DO 330 I=1,KATM
          WRITE(NFOUT,*) ' NA =',I                                      
          WRITE(NFOUT,300) (NAPT(I,J),J=1,NOPR)                         
  330   CONTINUE                                                        
  300   FORMAT((8I8))                                                   
      END IF                                                            
      RETURN                                                            
      END