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