       function index4(orb,at,atom,natom)
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Fonction index modifiee
! index4=index(orb,at) si at apparait dans orb ET...
! si il n'y a pas d'autre atome dont le nom contient le nom de at
! et dont le nom est inclus dans orb
!
! ex orb=C12C3
! at=C1
! index('C12C3','C1')==1, index4('C12C3','C1')==0
! (si du moins C1 existe dans la liste des atomes)
!
! en entree :
! - les strings orb et at
! - natom : le nb d'atomes de la molecule
! - atom(:) les labels des atomes
!
! Methode: pour index4/=0
! 1.  on doit avoir : at inclus dans orb
! 2.  on cherche les autres atomes (atom(k))pour lesquels at est inclus 
!     dans atom(k)
! 3.  on doit avoir pour ces atomes : at non inclus dans atom(k)
!     mais on peut avoir at=atom(k)

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
      IMPLICIT REAL(8)(A-H,O-X,Z),logical(1)(y)
      character(*) orb,at
      character(4) atom(natom)

! 1.
      if(index(trim(orb),trim(at))==0) then
        !print*,'coucou1',trim(orb),' ',trim(at)
         index4=0
         return

      else
        !print*,'coucou2',trim(orb),' ',trim(at)
         l=len_trim(at)
!2.
         do k=1,natom
            ll=len_trim(atom(k))
            if(ll<=l) cycle
            if(index(atom(k),trim(at))/=0) then
               !print*,'coucou3'
               if(index(orb,trim(atom(k)))==0) then
                  !print*,'coucou4'
                  index4=0
                  return
               endif
            endif
         enddo
         index4=index(orb,trim(at))
      endif
      return
      end
