      subroutine symmsim(symm,sim,nsym)
!
! En entree :
! nsym          nombre de representations irreductibles
! symm          operations de symetrie (donnee genre seward
! exemple 1     nsym=4,symm'Z XY'
! exemple 2     nsym=8,symm'X Y Z'
!
! En sortie :
! sim           les representations irreductibles plus leurs produits
! 
! exemple 1     sim'Z',XY',XYZ'
! exemple 2     sim'X','Y','XY','Z','XZ','YZ','XYZ'
!               (attention XY est avant Z !)
!
      character(*) symm
      character(3) sim(0:nsym-1)
      symm=adjustl(symm)
      long=len_trim(symm)
      call suppdb(symm,long)
      l=index(symm,' ')
      sim(0)='E'
      if(nsym==2) then
         sim(1)=symm(1:l-1)
      else if (nsym==4) then
         sim(1)=symm(1:l-1)
         sim(2)=symm(l+1:l+4)
         call prod_sym(sim(1),sim(2),sim(3))
      else if (nsym==8) then
         sim(1)=symm(1:l-1)
         symm(l:l)='&'
         l1=index(symm,' ')
         sim(2)=symm(l+1:l1-1)
         symm(l1:l1)='&'
         l2=index(symm,' ')
         sim(4)=symm(l1+1:l2-1)
         call prod_sym(sim(1),sim(2),sim(3))
         call prod_sym(sim(1),sim(4),sim(5))
         call prod_sym(sim(2),sim(4),sim(6))
         call prod_sym(sim(2),sim(5),sim(7))
         symm(l:l)=' '
         symm(l1:l1)=' '
      endif
      return
      end
