anchor.diff:    real(kind=fPrec), save :: cheby_offset_y(ncheby)=zero    ! ver. offset [mm] (optional)
     real(kind=fPrec), save :: cheby_I(ncheby)=-one           ! actual powering of lens [A] (optional)
     real(kind=fPrec), save :: cheby_scalingFact(ncheby)=one  ! scaling factor [] (computed internally)
  +  ! show map
  +  logical,          save :: cheby_lMap(ncheby)=.false.     ! requested echo of map?
  +  character(len=mFNameLen), save:: cheby_mapFileName(ncheby) = " "! file names
  +  real(kind=fPrec), save :: cheby_mapXmin(ncheby)=-10.0e+00_fPrec ! [mm]
  +  real(kind=fPrec), save :: cheby_mapXmax(ncheby)= 10.0e+00_fPrec ! [mm]
  +  integer,          save :: cheby_mapNx(ncheby)=100        ! number of intervals
  +  real(kind=fPrec), save :: cheby_mapYmin(ncheby)=-10.0e+00_fPrec ! [mm]
  +  real(kind=fPrec), save :: cheby_mapYmax(ncheby)= 10.0e+00_fPrec ! [mm]
  +  integer,          save :: cheby_mapNy(ncheby)=100        ! number of intervals
   
     ! tables with chebyshev coefficients
     integer, parameter     :: cheby_max_order=30             ! max order of chebyshev polynomials currently supported
  
positive.code: 
    ! temp vars
    real(kind=fPrec) :: uu, vv, Tx (0:cheby_maxOrder(iTable)), Ty (0:cheby_maxOrder(iTable)), &
                        kx, ky, Tpx(0:cheby_maxOrder(iTable)), Tpy(0:cheby_maxOrder(iTable)), &
                        fu, fv
    integer          :: nn, jj
  
    ! normalised variables
  
negative.code:   integer, intent(in) :: ix
    integer, intent(in) :: n
    
    real(kind=fPrec) xx, yy, rr, dxp, dyp
    real(kind=fPrec) theta, radio, angle_rad
    integer          jj
    logical          lrotate
  
    ! rotation angle
    lrotate = cheby_angle(icheby(ix)).ne.zero
    angle_rad = (cheby_angle(icheby(ix))/c180e0)*pi
  
    do jj=1,napx
  
      ! apply offset
      xx=xv1(jj)-cheby_offset_x(icheby(ix))
      yy=xv2(jj)-cheby_offset_y(icheby(ix))
  
      ! check that particle is within the domain of chebyshev polynomials
      rr=sqrt(xx**2+yy**2)
  