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
FUNCTION fprime_interior(del1,del2,fprime)REAL(KIND=8),INTENT(IN)::del1,del2,fprimeREAL(KIND=8)::fprime_interior! check if derivative is within the trust region, project into it if notIF(del1*del2>0.0)THEN! adjacent secant slopes have the same sign, enforce monotonicityIF(del1>0.0)THENfprime_interior=MIN(MAX(fprime,0.0D0),3.0D0*MIN(del1,del2))ELSEfprime_interior=MAX(MIN(fprime,0.0D0),3.0D0*MAX(del1,del2))END IF ELSE! force the interpolant to have an extrema herefprime_interior=0.0D0;END IF END FUNCTION fprime_interior