anchor.diff:    ! A.Mereghetti (CERN, 2018-03-01)
     ! a general module, collecting some utility functions
     use floatPrecision
  -
  -  logical :: ldebug=.true.
   
   contains
   
  
positive.code:     do ii=1, datalen-1
        if(xvals(ii) >= xvals(ii+1)) then
          checkArray=.false.
          if (llprint) write(lerr,"(a)") "UTILS> ERROR checkArray: xvals should be in increasing order"
        end if
      end do
    end function checkArray
  
negative.code:           tmax=tmax*xmax
         end do
         tmpInt=zero
  #ifdef DEBUG
         write(lout,"(/a,i4,6(1X,1pe16.9))") "UTILS> DEBUG polintegrate jj-step: ", &
              jj, tmax, tmin, fmax, fmin, xmax, xmin
  #endif
         do kk=1,kMax-kMin+1
            tmin=tmin*xmin
            tmax=tmax*xmax
            fmin=fmin+(tmin*cof(kk))/real(kk+order-1,fPrec)
            fmax=fmax+(tmax*cof(kk))/real(kk+order-1,fPrec)
  #ifdef DEBUG
            write(lout,"(a,i4,5(1X,1pe16.9))") "UTILS> DEBUG polintegrate kk-step: ", &
                 kk, tmax, tmin, fmax, fmin, cof(kk)
  #endif
         end do
         select case(order)
         case(1)
  