Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Source Code
subroutine cfft_1d_backward(func)complex(8),dimension(:),intent(inout)::funcreal(8),dimension(:),allocatable::wsave,workinteger::N,lenwrk,lensav,lenc,inc,ierN=size(func)lenwrk=2*Nlensav=2*N+int(log(dble(N))/log(2.d0))+4lenc=Ninc=1allocate(wsave(lensav))call cfft1i(N,wsave,lensav,ier)if(ier==2)stop"cfft_1d_backward: LENSAV not big enough"allocate(work(lenwrk))call cfft1b(N,inc,func,lenc,wsave,lensav,work,lenwrk,ier)deallocate(wsave,work)select case(ier)case(0)return case(1)stop"cfft_1d_backward: LENC not big enough"case(2)stop"cfft_1d_backward: LENSAV not big enough"case(3)stop"cfft_1d_backward: LENWRK not big enough"case(20)stop"cfft_1d_backward: input error returned by lower level routine"end select end subroutine cfft_1d_backward