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.
Variables
Type
Visibility
Attributes
Name
Initial
real(kind=wp),
private
::
absd
real(kind=wp),
private
::
det
real(kind=wp),
private
::
detm1
real(kind=wp),
private
::
detm2
real(kind=wp),
private
::
dval
integer,
private
::
k
real(kind=wp),
private
::
offl
real(kind=wp),
private
::
sfac
Source Code
pure integer function det_sign(igu,igl,kc,lam)result(sgn)!! Sign of det(M(lam)) on rows 2..kc (Sturm/Hallberg recursion).!$acc routine seqreal(wp),intent(in)::igu(NZ_STACK_MAX+1),igl(NZ_STACK_MAX+1)integer,intent(in)::kcreal(wp),intent(in)::laminteger::kreal(wp)::det,detm1,detm2,dval,offl,absd,sfacdetm1=1.0_wpdet=(igu(2)+igl(2))-lamdo k=3,kcabsd=abs(det)sfac=1.0_wpif(absd>RESCALE)thensfac=I_RESCALEelse if(absd<I_RESCALE.and.absd>0.0_wp)thensfac=RESCALEend ifdetm2=C2_SCALE*detm1*sfacdetm1=C2_SCALE*det*sfacdval=(igu(k)+igl(k))-lamoffl=igu(k)*igl(k-1)det=dval*detm1-offl*detm2end dosgn=merge(1,-1,det>=0.0_wp)end function det_sign