anchor.diff:       fouriermatrix(:,ii)=twiddle(:)**(ii-1)
     enddo
   
  -  call simple_circ(in,out,fouriermatrix,totsize,ctrank,localnumprocs,proclist)
  +  call simple_summa(in,out,fouriermatrix,totsize,ctrank,localnumprocs,proclist)
   
   end subroutine myzfft1d_slowindex_mpi
   
  
positive.code:   complex*16 ::  tempout(dim1,howmany),  outtemp(dim1,howmany)
    integer :: depth, newrank, dim2, newpf(MAXFACTORS),newproclist(localnprocs/pf(1)),ctrank,ctset(pf(1))
  
    call checkdivisible(localnprocs,pf(1))
    call checkbetween(localrank,0,localnprocs+1)
  
    depth=localnprocs/pf(1)
    ctrank=(localrank-1)/depth+1
  
negative.code:   complex*16 ::   temptrans(dim1,howmany),outtrans(dim1,howmany)
    integer :: depth, newrank, newpf(MAXFACTORS),newproclist(localnprocs/pf(1)),ctrank,ctset(pf(1))
  
    if ((localnprocs/pf(1))*pf(1).ne.localnprocs) then
       write(mpifileptr,*) "Divisibility error outofplace ",localnprocs,pf(1); call mpistop()
    endif
    if (localrank.lt.1.or.localrank.gt.localnprocs) then
       write(mpifileptr,*) "Rank error outofplace ",localrank,localnprocs; call mpistop()
    endif
  
    depth=localnprocs/pf(1)
    ctrank=(localrank-1)/depth+1
  