anchor.diff:    real(real64),   intent(in)  :: alpha
     real(real64),   intent(out) :: estimate
   
  -  integer(int32) :: nbins,ndata
  +  integer(int32) :: nbins,n_data
     integer(int32) :: i
     real(real64)   :: ni
   
  
positive.code:     
      real(real64), intent(in) :: alpha
      integer(int32) :: i
      real(real64)   :: a(nmulti)
  
      log_fpxa = log_gamma(ndata + one) + log_gamma(alpha * alphabet_size) & 
           - alphabet_size * log_gamma(alpha) - log_gamma(ndata + alpha * alphabet_size)
      do i = 1,nmulti 
         a(i) = multi(i) * (log_gamma(multi_x(i) - one + alpha) - log_gamma(multi_x(i) * one))
      end do
      log_fpxa = log_fpxa + sum(a)
      
  
negative.code: 
    integer(int32) :: nbins
    integer(int32) :: i
    real(real64)   :: ni,n_data
    integer(int32)              :: mi,nmax,err
    integer(int32), allocatable :: multi0(:)
  
  