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 rfft_1d_forward(func)real(8),dimension(:),intent(inout)::funcreal(8),dimension(:),allocatable::wsave,workinteger::N,lenwrk,lensav,lenr,inc,ierN=size(func)lenwrk=Nlensav=N+int(log(dble(N))/log(2.d0))+4lenr=Ninc=1allocate(wsave(lensav))allocate(work(lenwrk))call rfft1i(N,wsave,lensav,ier)if(ier==2)stop"rfft_1d_forward: LENSAV not big enough"call rfft1f(N,inc,func,lenr,wsave,lensav,work,lenwrk,ier)deallocate(wsave,work)select case(ier)case(0)return case(1)stop"rfft_1d_forward: LENR not big enough"case(2)stop"rfft_1d_forward: LENSAV not big enough"case(3)stop"rfft_1d_forward: LENWRK not big enough"case(20)stop"rfft_1d_forward: input error returned by lower level routine"end select end subroutine rfft_1d_forward