# SLATEC Routines --- DMGSBV ---

```*DECK DMGSBV
SUBROUTINE DMGSBV (M, N, A, IA, NIV, IFLAG, S, P, IP, INHOMO, V,
+   W, WCND)
C***BEGIN PROLOGUE  DMGSBV
C***SUBSIDIARY
C***PURPOSE  Subsidiary to DBVSUP
C***LIBRARY   SLATEC
C***TYPE      DOUBLE PRECISION (MGSBV-S, DMGSBV-D)
C***AUTHOR  Watts, H. A., (SNLA)
C***DESCRIPTION
C
C **********************************************************************
C Orthogonalize a set of N double precision vectors and determine their
C rank.
C
C **********************************************************************
C INPUT
C **********************************************************************
C   M = dimension of vectors.
C   N = no. of vectors.
C   A = array whose first N cols contain the vectors.
C   IA = first dimension of array A (col length).
C   NIV = number of independent vectors needed.
C   INHOMO = 1 corresponds to having a non-zero particular solution.
C   V = particular solution vector (not included in the pivoting).
C   INDPVT = 1 means pivoting will not be used.
C
C **********************************************************************
C OUTPUT
C **********************************************************************
C   NIV = no. of linear independent vectors in input set.
C     A = matrix whose first NIV cols. contain NIV orthogonal vectors
C         which span the vector space determined by the input vectors.
C   IFLAG
C          = 0 success
C          = 1 incorrect input
C          = 2 rank of new vectors less than N
C   P = decomposition matrix.  P is upper triangular and
C             (old vectors) = (new vectors) * P.
C         The old vectors will be reordered due to pivoting.
C         The dimension of P must be .GE. N*(N+1)/2.
C             (  N*(2*N+1) when N .NE. NFCC )
C   IP = pivoting vector. The dimension of IP must be .GE. N.
C             (  2*N when N .NE. NFCC )
C   S = square of norms of incoming vectors.
C   V = vector which is orthogonal to the vectors of A.
C   W = orthogonalization information for the vector V.
C   WCND = worst case (smallest) norm decrement value of the
C          vectors being orthogonalized  (represents a test
C          for linear dependence of the vectors).
C **********************************************************************
C
C***ROUTINES CALLED  DDOT, DPRVEC
C***COMMON BLOCKS    DML18J, DML5MC
C***REVISION HISTORY  (YYMMDD)
C   750601  DATE WRITTEN
C   890531  Changed all specific intrinsics to generic.  (WRB)
C   890831  Modified array declarations.  (WRB)
C   890921  Realigned order of variables in certain COMMON blocks.
C           (WRB)
C   890921  REVISION DATE from Version 3.2
C   891214  Prologue converted to Version 4.0 format.  (BAB)
C   900328  Added TYPE section.  (WRB)
C   910722  Updated AUTHOR section.  (ALS)
C***END PROLOGUE  DMGSBV
```