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_2d_backward(func)real(8),dimension(:,:),intent(inout)::funcreal(8),dimension(:),allocatable::wsave,workinteger::L,M,lenwrk,lensav,ldim,ierL=size(func,1)M=size(func,2)lenwrk=M*(L+1)lensav=L+3*M+int(log(dble(L))/log(2.d0))+2*int(log(dble(M))/log(2.d0))+12ldim=Lallocate(wsave(lensav))allocate(work(lenwrk))call rfft2i(L,M,wsave,lensav,ier)if(ier==2)stop"rfft_2d_backward: LENSAV not big enough"if(ier==20)stop"rfft_2d_backward: input error returned by lower level routine"call rfft2b(ldim,L,M,func,wsave,lensav,work,lenwrk,ier)deallocate(wsave,work)select case(ier)case(0)return case(6)stop"rfft_2d_backward: LDIM is less than 2*INT((L+1)/2)"case(2)stop"rfft_2d_backward: LENSAV not big enough"case(3)stop"rfft_2d_backward: LENWRK not big enough"case(20)stop"rfft_2d_backward: input error returned by lower level routine"end select end subroutine rfft_2d_backward