Octopus
sgfft_oct_m Module Reference

These routines are part of the ISF poisson solver, eventually they will be integrated with the other FFT. Do not use them for other purposes. More...

Detailed Description

These routines are part of the ISF poisson solver, eventually they will be integrated with the other FFT. Do not use them for other purposes.

Functions/Subroutines

subroutine, public fourier_dim (n, n_next)
 
subroutine, public fft (n1, n2, n3, nd1, nd2, nd3, z, isign, inzee)
 
subroutine ctrig (n, trig, after, before, now, isign, ic)
 
subroutine fftstp (mm, nfft, m, nn, n, zin, zout, trig, after, now, before, isign)
 
subroutine fftrot (mm, nfft, m, nn, n, zin, zout, trig, after, now, before, isign)
 
integer function ncache_optimal ()
 
subroutine, public convolxc_off (n1, n2, n3, nd1, nd2, nd3, md1, md2, md3, nproc, iproc, pot, zf, scal, comm)
 
subroutine multkernel (nd1, nd2, n1, n2, lot, nfft, jS, pot, zw)
 
subroutine switch_upcorn (nfft, n2, lot, n1, lzt, zt, zw)
 
subroutine mpiswitch_upcorn (j3, nfft, Jp2stb, J2stb, lot, n1, md2, nd3, nproc, zmpi1, zw)
 
subroutine halfill_upcorn (md1, md3, lot, nfft, n3, zf, zw)
 
subroutine scramble_unpack (i1, j2, lot, nfft, n1, n3, md2, nproc, nd3, zw, zmpi2, cosinarr)
 
subroutine unscramble_pack (i1, j2, lot, nfft, n1, n3, md2, nproc, nd3, zmpi2, zw, cosinarr)
 
subroutine unswitch_downcorn (nfft, n2, lot, n1, lzt, zw, zt)
 
subroutine unmpiswitch_downcorn (j3, nfft, Jp2stf, J2stf, lot, n1, md2, nd3, nproc, zw, zmpi1)
 
subroutine unfill_downcorn (md1, md3, lot, nfft, n3, zw, zf, scal)
 
subroutine, public kernelfft (n1, n2, n3, nd1, nd2, nd3, nproc, iproc, zf, zr, comm)
 
subroutine switch (nfft, n2, lot, n1, lzt, zt, zw)
 
subroutine mpiswitch (j3, nfft, Jp2st, J2st, lot, n1, nd2, nd3, nproc, zmpi1, zw)
 
subroutine inserthalf (nd1, lot, nfft, n3, zf, zw)
 

Function/Subroutine Documentation

◆ fourier_dim()

subroutine, public sgfft_oct_m::fourier_dim ( integer, intent(in)  n,
integer, intent(out)  n_next 
)

Definition at line 148 of file sgfft.F90.

◆ fft()

subroutine, public sgfft_oct_m::fft ( integer, intent(in)  n1,
integer, intent(in)  n2,
integer, intent(in)  n3,
integer, intent(in)  nd1,
integer, intent(in)  nd2,
integer, intent(in)  nd3,
real(real64), dimension(1:2, 1:nd1*nd2*nd3, 1:2), intent(inout)  z,
integer, intent(in)  isign,
integer, intent(inout)  inzee 
)

Definition at line 270 of file sgfft.F90.

◆ ctrig()

subroutine sgfft_oct_m::ctrig ( integer  n,
real(real64), dimension(:,:)  trig,
integer, dimension(7)  after,
integer, dimension(7)  before,
integer, dimension(7)  now,
integer  isign,
integer  ic 
)
private
Parameters
trig(2,<=8192)

Definition at line 561 of file sgfft.F90.

◆ fftstp()

subroutine sgfft_oct_m::fftstp ( integer  mm,
integer  nfft,
integer  m,
integer  nn,
integer  n,
real(real64), dimension(2, mm, m)  zin,
real(real64), dimension(2, nn, n)  zout,
real(real64), dimension(:,:)  trig,
integer  after,
integer  now,
integer  before,
integer  isign 
)
private
Parameters
trig(2,<=8192)

Definition at line 719 of file sgfft.F90.

◆ fftrot()

subroutine sgfft_oct_m::fftrot ( integer  mm,
integer  nfft,
integer  m,
integer  nn,
integer  n,
real(real64), dimension(2, mm, m)  zin,
real(real64), dimension(2, n, nn)  zout,
real(real64), dimension(:,:)  trig,
integer  after,
integer  now,
integer  before,
integer  isign 
)
private
Parameters
trig(2,<=8192)

Definition at line 2204 of file sgfft.F90.

◆ ncache_optimal()

integer function sgfft_oct_m::ncache_optimal
private

Definition at line 3689 of file sgfft.F90.

◆ convolxc_off()

subroutine, public sgfft_oct_m::convolxc_off ( integer, intent(in)  n1,
integer, intent(in)  n2,
integer, intent(in)  n3,
integer, intent(in)  nd1,
integer, intent(in)  nd2,
integer, intent(in)  nd3,
integer, intent(in)  md1,
integer, intent(in)  md2,
integer, intent(in)  md3,
integer, intent(in)  nproc,
integer, intent(in)  iproc,
real(real64), dimension(nd1,nd2,nd3/nproc), intent(in)  pot,
real(real64), dimension(md1,md3,md2/nproc), intent(inout)  zf,
real(real64), intent(in)  scal,
type(mpi_comm), intent(in)  comm 
)

Definition at line 3739 of file sgfft.F90.

◆ multkernel()

subroutine sgfft_oct_m::multkernel ( integer, intent(in)  nd1,
integer, intent(in)  nd2,
integer, intent(in)  n1,
integer, intent(in)  n2,
integer, intent(in)  lot,
integer, intent(in)  nfft,
integer, intent(in)  jS,
real(real64), dimension(nd1,nd2), intent(in)  pot,
real(real64), dimension(2,lot,n2), intent(inout)  zw 
)
private

Definition at line 4117 of file sgfft.F90.

◆ switch_upcorn()

subroutine sgfft_oct_m::switch_upcorn ( integer  nfft,
integer  n2,
integer  lot,
integer  n1,
integer  lzt,
real(real64), dimension(2,lzt,n1)  zt,
real(real64), dimension(2,lot,n2)  zw 
)
private

Definition at line 4155 of file sgfft.F90.

◆ mpiswitch_upcorn()

subroutine sgfft_oct_m::mpiswitch_upcorn ( integer  j3,
integer  nfft,
integer  Jp2stb,
integer  J2stb,
integer  lot,
integer  n1,
integer  md2,
integer  nd3,
integer  nproc,
real(real64), dimension(2,n1/2,md2/nproc,nd3/nproc,nproc)  zmpi1,
real(real64), dimension(2,lot,n1)  zw 
)
private

Definition at line 4182 of file sgfft.F90.

◆ halfill_upcorn()

subroutine sgfft_oct_m::halfill_upcorn ( integer  md1,
integer  md3,
integer  lot,
integer  nfft,
integer  n3,
real(real64), dimension(md1,md3)  zf,
real(real64), dimension(2,lot,n3/2)  zw 
)
private

Definition at line 4215 of file sgfft.F90.

◆ scramble_unpack()

subroutine sgfft_oct_m::scramble_unpack ( integer, intent(in)  i1,
integer, intent(in)  j2,
integer, intent(in)  lot,
integer, intent(in)  nfft,
integer, intent(in)  n1,
integer, intent(in)  n3,
integer, intent(in)  md2,
integer, intent(in)  nproc,
integer, intent(in)  nd3,
real(real64), dimension(2,lot,n3/2), intent(in)  zw,
real(real64), dimension(2,n1,md2/nproc,nd3), intent(out)  zmpi2,
real(real64), dimension(2,n3/2), intent(in)  cosinarr 
)
private

Definition at line 4274 of file sgfft.F90.

◆ unscramble_pack()

subroutine sgfft_oct_m::unscramble_pack ( integer, intent(in)  i1,
integer, intent(in)  j2,
integer, intent(in)  lot,
integer, intent(in)  nfft,
integer, intent(in)  n1,
integer, intent(in)  n3,
integer, intent(in)  md2,
integer, intent(in)  nproc,
integer, intent(in)  nd3,
real(real64), dimension(2,n1,md2/nproc,nd3), intent(in)  zmpi2,
real(real64), dimension(2,lot,n3/2), intent(out)  zw,
real(real64), dimension(2,n3/2), intent(in)  cosinarr 
)
private

Definition at line 4352 of file sgfft.F90.

◆ unswitch_downcorn()

subroutine sgfft_oct_m::unswitch_downcorn ( integer  nfft,
integer  n2,
integer  lot,
integer  n1,
integer  lzt,
real(real64), dimension(2,lot,n2)  zw,
real(real64), dimension(2,lzt,n1)  zt 
)
private

Definition at line 4386 of file sgfft.F90.

◆ unmpiswitch_downcorn()

subroutine sgfft_oct_m::unmpiswitch_downcorn ( integer  j3,
integer  nfft,
integer  Jp2stf,
integer  J2stf,
integer  lot,
integer  n1,
integer  md2,
integer  nd3,
integer  nproc,
real(real64), dimension(2,lot,n1)  zw,
real(real64), dimension(2,n1/2,md2/nproc,nd3/nproc,nproc)  zmpi1 
)
private

Definition at line 4403 of file sgfft.F90.

◆ unfill_downcorn()

subroutine sgfft_oct_m::unfill_downcorn ( integer, intent(in)  md1,
integer, intent(in)  md3,
integer, intent(in)  lot,
integer, intent(in)  nfft,
integer, intent(in)  n3,
real(real64), dimension(2,lot,n3/2), intent(in)  zw,
real(real64), dimension(md1,md3), intent(inout)  zf,
real(real64), intent(in)  scal 
)
private

Definition at line 4466 of file sgfft.F90.

◆ kernelfft()

subroutine, public sgfft_oct_m::kernelfft ( integer, intent(in)  n1,
integer, intent(in)  n2,
integer, intent(in)  n3,
integer, intent(in)  nd1,
integer, intent(in)  nd2,
integer, intent(in)  nd3,
integer, intent(in)  nproc,
integer, intent(in)  iproc,
real(real64), dimension(nd1,n3,nd2/nproc), intent(in)  zf,
real(real64), dimension(2,nd1,nd2,nd3/nproc), intent(out)  zr,
type(mpi_comm), intent(in)  comm 
)

Definition at line 4526 of file sgfft.F90.

◆ switch()

subroutine sgfft_oct_m::switch ( integer  nfft,
integer  n2,
integer  lot,
integer  n1,
integer  lzt,
real(real64), dimension(1:2, 1:lzt, 1:n1)  zt,
real(real64), dimension(1:2, 1:lot, 1:n2)  zw 
)
private

Definition at line 4742 of file sgfft.F90.

◆ mpiswitch()

subroutine sgfft_oct_m::mpiswitch ( integer  j3,
integer  nfft,
integer  Jp2st,
integer  J2st,
integer  lot,
integer  n1,
integer  nd2,
integer  nd3,
integer  nproc,
real(real64), dimension(2,n1,nd2/nproc,nd3/nproc,nproc)  zmpi1,
real(real64), dimension(2,lot,n1)  zw 
)
private

Definition at line 4756 of file sgfft.F90.

◆ inserthalf()

subroutine sgfft_oct_m::inserthalf ( integer  nd1,
integer  lot,
integer  nfft,
integer  n3,
real(real64), dimension(1:nd1, 1:n3)  zf,
real(real64), dimension(1:2, 1:lot, 1:n3/2)  zw 
)
private

Definition at line 4781 of file sgfft.F90.