anchor.diff:          q=q+1
           intold=int
         endif
  +
       enddo
       
  +    deallocate(temp_array)
  +
       int_prod_bessel=int*freal
       
       if(kcp.gt.100)then
  
positive.code:     done=.false.
      kcp=0
  
      do while (.not.done)  
      
        kcp=kcp+1
        sum=0.d0
       
        do k=0,q
          sum=sum+coef_nk(n,k)*coef_nk(m,q-k)*a**(n+2*k)*b**(m-2*k+2*q)
        enddo
       
       int=int+sum*crochet(2*q+n+m+l,gam)
  
negative.code:   integer n,k,m,q,l,kcp
    double precision gam,dblefact,fact,pi,a,b
    double precision int,intold,sum,coef_nk,crochet,u,int_prod_bessel_large,freal,arg
    double precision dump
  
    double precision, allocatable :: temp_array(:)
  
    logical done
  
    u=(a+b)/(2.d0*dsqrt(gam))
  