anchor.diff:    real(kind=fPrec), allocatable :: nxyzv(:,:,:)
     ! Normalised emittances
     real(kind=fPrec), allocatable :: epsnxyzv(:,:,:)
  +  real(kind=fPrec) dumptas(6,6), dumpclo(6), dumptasinv(6,6)
   
   #ifdef NAFF
     interface
  -    real(c_double) function tunenaff(x,xp,maxn,plane_idx,norm_flag, fft_naff) bind(c)
  +    real(c_double) function tunenaff(x,xp,maxn,plane_idx,norm_flag,fft_naff) bind(c)
         use, intrinsic :: iso_c_binding
         implicit none
         real(c_double), intent(in), dimension(1) :: x,xp
  
positive.code:         else ! Reading physical coordinates
            if(fma_norm_flag(i) == 1 ) then
              ! Have a matrix that's not zero (i.e. did we put a 6d LINE block?)
              if(dumptas(j,1,1) == zero .and. dumptas(j,1,2) == zero .and. &
                  dumptas(j,1,3) == zero .and. dumptas(j,1,4) == zero) then
                write(lerr,"(a)") "FMA> ERROR The normalisation matrix appears to not be set? Did you forget to put a 6D LINE block?"
                call prror
              end if
  
negative.code:     fExist = .false.
      do j=-1,nele ! START: loop over dump files = loop over single elements
        if(fma_fname(i) == dump_fname(j)) then
          call dump_getTasMatrix(j,dumptasinv,dumptas, dumpclo)
          fExist = .true.
          write(lout,"(3(a,i0))") "FMA> Start FMA analysis using file '"//trim(fma_fname(i))//&
            "': Number of particles = ",napx,", first turn = ",fma_first(i),", last turn = ",fma_last(i)
  
          ! Check the format, if dumpfmt != 2,3 (physical) or 7,8 (normalised) then abort
          if(.not.(dumpfmt(j) == 2 .or. dumpfmt(j) == 3 .or. dumpfmt(j) == 7 .or. dumpfmt(j) == 8)) then
            write(lerr,"(a)") "FMA> ERROR Input file has wrong format. Choose format 2, 3, 7 or 8 in DUMP block."
            call prror
          end if
  