CXML

duskyn 


FORMAT

  DUSKYN
   (n, au, iaudiag, nau, al, ialdiag, nal, iparam, rparam, iwrk, rwrk,
  ierror)

Arguments

  n                   integer*4
                      On entry, the order of the matrix A.
                      On exit, n is unchanged.

  au                  real*8
                      On entry, an array containing information on the matrix
                      A.  If  istore = 1 or 2, then  au contains the upper
                      triangular part, including the diagonal, of the matrix
                      A, stored in the profile-in or diagonal-out mode,
                      respectively. Array AU is of length at least nau, where
                      nau is the envelope size of the upper triangular part
                      of A, including the diagonal.  If  istore = 3, then  au
                      contains the matrix A, stored in the structurally
                      symmetric, profile-in storage mode. In this case, array
                      AU is of length at least nau, where nau is the envelope
                      size of the matrix A.
                      On exit, au is unchanged.

  iaudiag             integer*4
                      On entry, an array containing the pointers to the
                      locations of the diagonal elements in array AU.
                      iaudiag is of length at least n for the profile-in and
                      the structurally symmetric profile-in storage modes.
                      iaudiag is of length at least (n+1) for the diagonal-
                      out storage mode.
                      On exit,  iaudiag is unchanged.

  nau                 integer*4
                      On entry, the number of elements stored in array AU.
                      If  istore = 1 or 2, then nau is the envelope size of
                      the upper triangular part of the matrix A. If  istore =
                      3, then nau is the envelope size of the matrix A. For
                      the profile-in and the structurally symmetric profile-
                      in storage modes, nau =  IAUDIAG(n).  For the
                      diagonal-out storage mode, nau =  IAUDIAG(n+1) - 1.
                      On exit,  nau is unchanged.

  al                  real*8
                      On entry, an array containing information on the matrix
                      A.  If  istore = 1 or 2, then  al contains the lower
                      triangular part, including the diagonal, of the matrix
                      A, stored in the profile-in or diagonal-out mode,
                      respectively. Storage is allocated for the diagonal
                      elements, though the elements themselves are not
                      stored.  Array AL is of length at least nal, where nal
                      is the envelope size of the lower triangular part of A,
                      including the diagonal.  If  istore = 3, then  al is a
                      dummy argument.
                      On exit, al is unchanged.

  ialdiag             integer*4
                      On entry, an array containing the pointers to the
                      locations of the diagonal elements in array AL.
                      ialdiag is of length at least n for the profile-in
                      storage mode.  ialdiag is of length at least (n+1) for
                      the diagonal-out storage mode.  If  istore = 3, then
                      ialdiag is a dummy argument.
                      On exit,  ialdiag is unchanged.

  nal                 integer*4
                      On entry, the number of elements stored in array AL. If
                      istore = 1 or 2, then nal is the envelope size of the
                      lower triangular part of the matrix A. For the
                      profile-in storage mode, nal = IALDIAG(n).  For the
                      diagonal-out storage mode, nal = IALDIAG(n+1) - 1.  If
                      istore = 3, then  nal is a dummy argument.
                      On exit,  nal is unchanged.

  iparam              integer*4
                      An array of length at least 100, containing the integer
                      parameters for the norm evaluation.

  iparam(1): niparam
                      On entry, defines the length of the array IPARAM.
                      niparam >= 100.
                      On exit, iparam(1) is unchanged.

  iparam(2): nrparam
                      On entry, defines the length of the array RPARAM.
                      nrparam >= 100.
                      On exit,  iparam(2) is unchanged.

  iparam(3): niwrk
                      On entry, defines the size of the integer work array,
                      IWRK.  niwrk >=n.
                      On exit,  iparam(3) is unchanged.

  iparam(4): nrwrk
                      On entry, defines the size of the real work array,
                      RWRK.  As the real work array is not used at present,
                      nrwrk can be unspecified.
                      On exit,  iparam(4) is unchanged.

  iparam(5): iounit
                      On entry, defines the I/O unit number for printing
                      error messages and information from the routine DSSKYF.
                      The I/O unit must be opened in the calling subprogram.
                      If iounit <= 0, no output is generated.
                      On exit,  iparam(5) is unchanged.

  iparam(6): iolevel
                      On entry, defines the message level that determines the
                      amount of information printed out to iounit, when
                      iounit > 0.

                      iolevel = 0 : fatal error messages only

                      iolevel = 1 : error messages and minimal information

                      iolevel = 2 : error messages and detailed information

                      On exit,  iparam(6) is unchanged.

  iparam(7): idefault
                      On entry, defines if the default values should be used
                      in arrays IPARAM and RPARAM. If idefault = 0, then the
                      following default values are assigned:

                      IPARAM(1) = niparam = 100

                      IPARAM(2) = nrparam = 100

                      IPARAM(6) = iolevel = 0

                      IPARAM(8) = istore = 1

                      IPARAM(9) = inorm = 1

                      If idefault = 1, then you must assign values to the
                      above variables before the call to the DUSKYN routine.
                      On exit,  iparam(7) is unchanged.

  iparam(8): istore
                      On entry, defines the type of storage scheme used for
                      the skyline matrix.  If  istore = 1, the unsymmetric
                      matrix A is stored using the profile-in storage mode;
                      if  istore = 2, the unsymmetric matrix A is stored
                      using the diagonal-out storage mode.  if  istore = 3,
                      the unsymmetric matrix A is stored using the
                      structurally symmetric profile-in storage mode.
                      Default:  istore = 1.
                      On exit,  iparam(8) is unchanged.

  iparam(9): inorm
                      On entry, defines if the matrix quantity to be
                      evaluated:

                      inorm = 1 : 1-norm of A

                      inorm = 2 : Infinity-norm of A

                      inorm = 3 : Frobenius norm of A

                      inorm = 4 : Maximum absolute value of A

                      Default: inorm = 1
                      On exit,  iparam(9) is unchanged.

  rparam              real*8
                      An array of length at least 100, containing the real
                      parameters for the norm evaluation.

  rparam(1): anorm
                      On entry, is an unspecified variable.
                      On exit,  rparam(1) contains the matrix quantity
                      evaluated, as defined by the value of
                       IPARAM(9) = inorm.

  iwrk                integer*4
                      On entry, an array of length at least n used for
                      integer workspace.
                      On exit,  iwrk contains information for use by the
                      routine DUSKYN.  This information is not used by any
                      other routine and can therefore be overwritten.

   rwrk                real*8
                      On entry, an array of length at least n used for real
                      workspace.
                      On exit,  rwrk contains information used by the solver
                      routine DUSKYN.  This information is not used by any
                      other routine and can therefore be overwritten.

  ierror              integer*4
                      On entry, an unspecified variable.
                      On exit,  ierror contains the error flag. A value of
                      zero indicates a normal exit from the routine DUSKYN.

Description

  DUSKYN evaluates the following quantities for the unsymmetric matrix A:

    1-norm of A

    Infinity-norm of A

    Frobenius-norm of A

    Largest absolute value of A

  The last quantity in the above list is not a matrix norm. The quantity
  evaluated is determined by the value of IPARAM(9) =  inorm.

  The real and integer workspace used by the routine DUSKYN does not contain
  information for use by any other routines, and can therefore be
  overwritten.

  As the routine DUSKYN requires the matrix A, it should be called prior to a
  call to the factorization routine DUSKYF, which overwrites the elements of
  A by the L*D*U factors.

CXML Home Page

Index of CXML Routines