anchor.diff:    complex*16 ::   temptrans(dim1,howmany),outtrans(dim1,howmany)
     integer :: depth, newrank, newpf(MAXFACTORS),newproclist(localnprocs/pf(1)),ctrank,ctset(pf(1))
   
  -  call checkdivisible(localnprocs,pf(1))
  -  call checkbetween(localrank,0,localnprocs+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
  
positive.code:      fouriermatrix(:,ii)=twiddle(:)**(ii-1)
    enddo
  
    call simple_circ(in,out,fouriermatrix,totsize,ctrank,localnumprocs,proclist)
  
  end subroutine myzfft1d_slowindex_mpi
  
  
negative.code: end subroutine twiddlemult_mpi
  
  
  
  
  !! fourier transform with OUT-OF-PLACE OUTPUT. 
  