      subroutine stodir4(i,j,k,l,b)
      use mod_casdint
      IMPLICIT REAL*8(A-H,O-x,z),logical*1(y)
!
!--------------------------------------------------
! on calcule l'adresse de l'integrale dans sa classe
!--------------------------------------------------
!     
      yw=.false.
! i1,j1,k1,l1 : indices d'orbitales ecrits dans l'ordre des symetries
! (sans s'occuper de l'occupation)
      i1=inv_iord(i)
      j1=inv_iord(j)
      k1=inv_iord(k)
      l1=inv_iord(l)
      call reoricas(i,j,k,l,icas)
! cas=1,2,3 selon qu'on a i,j,k,l= 4231, 4132 ou 4321 
! pour les vrais indices
      call reoricas2(i1,j1,k1,l1)
! i1,j1,k1,l1 sont maintenant en ordre decroissant
      is=itsym(i1)
      js=itsym(j1)
      ks=itsym(k1)
      ls=itsym(l1)
      ioi=io(i1)
      ioj=io(j1)
      iok=io(k1)
      iol=io(l1)
      if(is==js) then
         if(is==ks) then
! is=js=ks=ls
            iadr=iadr0(i1,js,ks)+jad3(ioj)+jad2(iok)+iol
         else
! is=js>ks=ls
! j varie de 1 a i-1
            iadr=iadr0(i1,js,ks)+(ioj-1)*jad2(nts(ks)+1)+jad2(iok)+iol
         endif
      else
         if(is==ks) then
! is>js=ks>ls
            iadr=iadr0(i1,js,ks)+iol+(jad2(ioj)+iol)*nts(ls)
         else
! is>js>ks>ls
            iadr=iadr0(i1,js,ks)+(ioj-1)*nts(ks)*nts(ls)+
     *      (iok-1)*nts(ls)+iol
         endif
      endif
      if(yw)print'(a,4i4,2x,4i4,2x,4i4,2x,4i4,4i6,f14.8)',
     *'adr',i1,j1,k1,l1,i,j,k,l,is,js,ks,ls,
     *ioi,ioj,iok,iol,icas,iadr0(i1,js,ks),iadr,(iadr-1)*3+icas,b
      iadr=(iadr-1)*3+icas
      if(y_test_adressage) then
         if(y(iadr,i1)) then
            print*,'deja';stop
         endif
         y(iadr,i1)=.true.
      endif


!
! On stocke l'integrale
!
      ninti(i1)=ninti(i1)+1
      n=ninti(i1)
      if(n>max_stoind) then
         call stoecr(i1)
         ninti(i1)=1
         n=1
      endif
      stoint(n,i1)=b
      stoad(n,i1)=iadr
      
      
      
      
      return
      end
       subroutine stdirf4
      use mod_casdint
!
!---------------------------------------------------------
! On ecrit le dernier enregistrement
!---------------------------------------------------------
!
      IMPLICIT REAL*8(A-H,O-x,z),logical*1(y)
      do k=4,norb
         call stoecr(k)
      enddo
!
!---------------------------------------------------------
! On desalloue les tableaux qui ont servi a stocker les
! integrales sur les files temporaires
!---------------------------------------------------------
!
      deallocate(stoint,stoad)
      return
      end
     

      
      
