      module mod_dim
      ! calcul de dimensions des adresses TP stockees dans itp1, itp2...
      integer dim_i_jab,dim_a_ijb
      contains
       subroutine caldim_itp
      use module
      integer i,j,a,b
      ! calcul de dim_i_jab : i est un indice fixe, qui vient de
      ! l'integrale. j,a,b sont generes
      dim_i_jab=0
      !print*,'numin',numin
      do ni=1,ninac
         i=numin(ni)
         ! on genere a lie a i
         n=1
         do ipaira=idebliscond(i),ifinliscond(i)
            ipaira1=liscond(ipaira)
            a=ilpair(2,ipaira1)
            ! on genere la paire (j,b)
            do ipairb=1,nlpairp
               j=ilpair(1,ipairb)
               b=ilpair(2,ipairb)
               ! on elimine les paires generees 2 fois
               if ((ilp(j,a)/=0).and.(ilp(i,b)/=0).and.(b<a)) cycle
               n=n+1
            enddo
         enddo
         dim_i_jab=max(dim_i_jab,n)
      enddo
      dim_a_ijb=0
      do na=1,nvirt
         a=numvir(na)
         ! on genere i lie a a
         n=1
         do ipaira=idebliscond(a),ifinliscond(a)
            ipaira1=liscond(ipaira)
            i=ilpair(1,ipaira1)
            ! on genere la paire (j,b)
            do ipairb=1,nlpairp
               j=ilpair(1,ipairb)
               b=ilpair(2,ipairb)
               ! on elimine les paires generees 2 fois
               if ((ilp(j,a)/=0).and.(ilp(i,b)/=0).and.(b<a)) cycle
               n=n+1
            enddo
         enddo
         dim_a_ijb=max(dim_a_ijb,n)
      enddo
      !print*,'dim_a_ijb',dim_a_ijb
      return
      end subroutine
      end module
      
