      subroutine sign_transfoa
      use module
      IMPLICIT REAL(8)(A-H,O-X,Z),logical(1)(y)
      allocatable y(:)
      character c(3)
      allocate(y(noa),s_troa(noa))
      yw=.false.
      y=.false.
      !print*, 'sign_transfoa',noa
      if(sym==' ') return
      call titre(' Orbitales anti-symetriques dans la '//
     *'localisation# (utile uniquement pour le fichier ORB_IJKLOC#'//
     *'les integrales n''ont pas besoin de la donnee de sym)#'//
     *'sym='//trim(sym)//'#',40)

      op=' '
      op(1)='e'
      iop=1
      do k=2,len_trim(sym)
         if(sym(k-1:k-1)==' '.and.sym(k:k)/=' ') ideb=k
         if(sym(k:k)/=' '.and.sym(k+1:k+1)==' ') then
            iop=iop+1
            op(iop)=sym(ideb:k)
         endif
      enddo
      if(nsym==4) then
         op(4)=trim(op(2))//trim(op(3))
      else if (nsym==8) then
         op(5)=op(4)
         op(4)=trim(op(2))//trim(op(3))
         op(6)=trim(op(2))//trim(op(5))
         op(7)=trim(op(3))//trim(op(5))
         op(8)=trim(op(2))//trim(op(3))//trim(op(5))
      endif
      if(yw) then
      print*,'operations de symetrie'
      do k=1,nsym
         print*,k,op(k)
      enddo
      endif
      ! suppression des operations doubles
      c=(/'x','y','z'/)
      do k=1,3
         do is=2,nsym
            i=0
            do l=1,len_trim(op(is))
               if(op(is)(l:l)==c(k)) i=i+1
               if(i==2) then
                  op(is)(ii:ii)=' '
                  op(is)(i:i)=' '
               else
                  ii=i
               endif
            enddo
         enddo
      enddo
      print*,'Operations de symetrie'
      do k=1,nsym
         print*,k,op(k)
      enddo
      ! boucle sur les OA
      k=0
      s_troa=1
      do ks=1,nsym
         do kk=1,isymng(ks)
            k=k+1
            ypx=orbi(k)(5:7)=='2px'
            ypy=orbi(k)(5:7)=='2py'
            ypz=orbi(k)(5:7)=='2pz'
            if(yw)print*,'orbi ',orbi(k),ypx,ypy,ypz,ks
            if(ypx.and.index(op(ks),'x')/=0) s_troa(k)=-1
            if(ypy.and.index(op(ks),'y')/=0) s_troa(k)=-s_troa(k)
            if(ypz.and.index(op(ks),'z')/=0) s_troa(k)=-s_troa(k)
!            if(ypx.and.index(op(ks),'x')/=0) print*,'ypx ',op(ks),k,
!     *      s_troa(k)
!            if(ypy.and.index(op(ks),'y')/=0) print*,'ypy ',op(ks),k,
!     *      s_troa(k)
!            if(ypz.and.index(op(ks),'z')/=0) print*,'ypz ',op(ks),k,
!     *      s_troa(k)
         enddo
      enddo
      print*,'OA de signe negatif'
      do k=1,noa
         if(s_troa(k)<0)
     *   print'(i5,2a,i3)',k,'  ',orbi(k),s_troa(k)
      enddo
      print*,'*********************************************'
      return
      end
