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.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
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.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Source Code
impure subroutine modified_quasi_cs_newton_method_T0(this,F,x0,x_sol)interface impure function Fun15(x)result(res)import rkcomplex(rk),intent(in)::xcomplex(rk)::resend function Fun15end interface procedure(Fun15)::Fclass(nlsolver),intent(inout)::thiscomplex(rk),intent(in)::x0complex(rk),intent(out)::x_solcomplex(rk)::xkcomplex(rk)::F_valreal(rk)::dFdx_valreal(rk)::criteriaFuninteger::klogical::convergenzreal(rk)::dkreal(rk)::alphakk=0xk=x0convergenz=.false.do while(.not.convergenz.and.k<this%maxit)F_val=F(xk)if(mod(k,this%nmp)==0)dFdx_val=derivative(f=F,x=real(xk,kind=rk),h=this%cs_tol)criteriaFun=abs(F_val)if(this%verbosity==1)then print'(g0, f12.4, 4x, e12.4, 4x, e12.4)',k,real(xk,kind=rk),real(F_val,kind=rk),dFdx_valend if if(criteriaFun<=this%TolFun)thenconvergenz=.true.x_sol=xkreturn elsedk=-F_val/dFdx_valalphak=1.0_rkxk=xk+alphak*dkk=k+1end if end do end subroutine modified_quasi_cs_newton_method_T0