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 150 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 272 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 559 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 717 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 2202 of file sgfft.F90.

◆ ncache_optimal()

integer function sgfft_oct_m::ncache_optimal
private

Definition at line 3687 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 3737 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 4127 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 4165 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 4192 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 4225 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 4284 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 4362 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 4396 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 4413 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 4476 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 4536 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 4752 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 4766 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 4791 of file sgfft.F90.