      subroutine comple(noac,numac,nca,ic,ncompl,icompl)
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!     complement d'une liste incluse dans une autre liste
!
!           
!     noac : dimension de la grande liste
!     numac : grande liste
!     nca : dimension de la petite liste en entree
!     ic : petite liste
!     ncomple : dimension de la liste complementaire
!     icompl : liste complementaire
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
      IMPLICIT REAL*8(A-H,O-X,Z),LOGICAL*1 (Y)
      dimension numac(noac)
      dimension ic(nca)
      dimension icompl(noac-nca)
      allocatable ycompl(:)
      allocate (ycompl(maxval(numac(:))))
      yw=.false.
      do k=1,noac
         ycompl(numac(k))=.true.
      enddo
      do k=1,nca
         ycompl(ic(k))=.not.ycompl(ic(k))
      enddo
      ncompl=0
      do k=1,noac
         if(ycompl(numac(k))) then
            ncompl=ncompl+1
            icompl(ncompl)=numac(k)
         endif
      enddo
      if(yw)write(6,*)'comple   ref',
     *(numac(k),k=1,noac),' sous',(ic(k),k=1,nca),
     *' icompl',(icompl(k),k=1,ncompl)
      deallocate (ycompl)
      return
      end
