      subroutine sc01e(in,jn,kn,ln,ispint,dum,hii)
      IMPLICIT REAL*8(A-H,O-X,Z),LOGICAL*1 (Y)
      parameter(maxsym=8,maxorbcas=16)
      include 'maxorb.prm'
c
c    |-*-*-*-*-*-*-*-|-*-*-*-*-*-*-*-|-*-*-*-*-*-*-*-|-*-*-*-*-*-*-*-|
c    |                      hii      |(iadrv)|       | |
c                                                     (ysgn)
c
      common/dim/iadri ; integer(8) iadri
      common /cs/ noac,nelac,numac(maxorbcas),itype(maxorb),is0,ms2
      common /icd1/ispin(2)
      common/sgn/ksgn(maxorb+maxorb),isgn0,intsgn
      dimension hii(iadri*3)
      character*4 gener
      common /prep/ nca0,ncb0,ic0(maxorbcas),icamun(maxorb+maxorb)
     *,numt(maxorb),nump(maxorb),nv
     *,gener,yoc(maxorb+maxorb),yrefc(maxorbcas),yac(maxorb)
     *,ygmono,ygddci,ygddc2,ygcas,ygtous
      common/scmr/yscmrs
      common/scbid/in1,jn1,kn1,ln1
c      dimension iespaa(2),aa(1),coef(1)
      character*1 coef
      in1=in
      jn1=jn
      kn1=kn
      ln1=ln
      yw=.false.
c
c---------------------------------------------------
c      integrales avec echange
c---------------------------------------------------
c
c___tous les spins sont egaux : il y a des conditions d'inegalite
      if(in.eq.jn) return
      if(in.eq.kn) return
      if(jn.eq.ln) return
      if(kn.eq.ln) return
      if(jn.eq.kn) return
c     do ispint=0,2,2
      if(ispint.eq.-2) then
         ispin(1)=-1
         ispin(2)=-1
      else
         ispin(1)=1
         ispin(2)=1
      endif
c---------integrale directe
      intsgn=1
cnnnn      write(75,'(a22,4i3,a3)')'nnnn int avec echange',in,jn,kn,ln,'
cnnnn      call scril
CYW         if(yw)write(75,*)'int avec echange',in,jn,kn,ln,'$'
CYW         if(yw)call scril
      if(gener(1:2).eq.'MR')then
         yscmrs=.true.
         call cd02s0(in,jn,kn,ln,dum,hii)
         yscmrs=.false.
      else
         call sc02(in,jn,kn,ln,dum,hii)
c
c!!!!!!!!!!!!!!pourquoi sc02 et non sc02j ???????,
      endif
c     enddo
      return
      end
