ESMF_DLASQ3 Subroutine

subroutine ESMF_DLASQ3(I0, N0, Z, PP, DMIN, SIGMA, DESIG, QMAX, NFAIL, ITER, NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, DN2, G, TAU)

\brief \b ESMF_DLASQ3 \htmlonly Download ESMF_DLASQ3 + dependencies [TGZ] [ZIP] [TXT] \endhtmlonly \par Purpose:

\verbatim

ESMF_DLASQ3 checks for deflation, computes a shift (TAU) and calls dqds. In case of failure it changes shifts, and tries again until output is positive. \endverbatim \param[in] I0 \verbatim I0 is INTEGER First index. \endverbatim

\param[in,out] N0 \verbatim N0 is INTEGER Last index. \endverbatim

\param[in] Z \verbatim Z is DOUBLE PRECISION array, dimension ( 4*N ) Z holds the qd array. \endverbatim

\param[in,out] PP \verbatim PP is INTEGER PP=0 for ping, PP=1 for pong. PP=2 indicates that flipping was applied to the Z array and that the initial tests for deflation should not be performed. \endverbatim

\param[out] DMIN \verbatim DMIN is DOUBLE PRECISION Minimum value of d. \endverbatim

\param[out] SIGMA \verbatim SIGMA is DOUBLE PRECISION Sum of shifts used in current segment. \endverbatim

\param[in,out] DESIG \verbatim DESIG is DOUBLE PRECISION Lower order part of SIGMA \endverbatim

\param[in] QMAX \verbatim QMAX is DOUBLE PRECISION Maximum value of q. \endverbatim

\param[out] NFAIL \verbatim NFAIL is INTEGER Number of times shift was too big. \endverbatim

\param[out] ITER \verbatim ITER is INTEGER Number of iterations. \endverbatim

\param[out] NDIV \verbatim NDIV is INTEGER Number of divisions. \endverbatim

\param[in] IEEE \verbatim IEEE is LOGICAL Flag for IEEE or non IEEE arithmetic (passed to ESMF_DLASQ5). \endverbatim

\param[in,out] TTYPE \verbatim TTYPE is INTEGER Shift type. \endverbatim

\param[in,out] DMIN1 \verbatim DMIN1 is DOUBLE PRECISION \endverbatim

\param[in,out] DMIN2 \verbatim DMIN2 is DOUBLE PRECISION \endverbatim

\param[in,out] DN \verbatim DN is DOUBLE PRECISION \endverbatim

\param[in,out] DN1 \verbatim DN1 is DOUBLE PRECISION \endverbatim

\param[in,out] DN2 \verbatim DN2 is DOUBLE PRECISION \endverbatim

\param[in,out] G \verbatim G is DOUBLE PRECISION \endverbatim

\param[in,out] TAU \verbatim TAU is DOUBLE PRECISION

    These are passed as arguments in order to save their values
    between calls to ESMF_DLASQ3.

\endverbatim \author Univ. of Tennessee \author Univ. of California Berkeley \author Univ. of Colorado Denver \author NAG Ltd. \date November 2011 \ingroup auxOTHERcomputational

Arguments

Type IntentOptional Attributes Name
integer :: I0
integer :: N0
double precision :: Z(*)
integer :: PP
double precision :: DMIN
double precision :: SIGMA
double precision :: DESIG
double precision :: QMAX
integer :: NFAIL
integer :: ITER
integer :: NDIV
logical :: IEEE
integer :: TTYPE
double precision :: DMIN1
double precision :: DMIN2
double precision :: DN
double precision :: DN1
double precision :: DN2
double precision :: G
double precision :: TAU