Search Site | Contact Details | FAQ

ADAS Subroutine c6pmin

      SUBROUTINE C6PMIN( MXNSHL , MXJSHL , N , VD , VDS , VDI , RHS )
C
C
C-----------------------------------------------------------------------
C
C  ****************** FORTRAN77 SUBROUTINE: C6PMIN *********************
C
C  PURPOSE:  CALCULATES THE SOLUTION OF A TRIDIAGONAL PARTITIONED MATRIX
C            ORGANISED SET OF SIMULTANEOUS EQUATIONS.
C
C            THE PARTITIONS ARE 2X2 IN THE PRESENT IMPLEMENTATION. A
C            VARIANT OF OF THE DOUBLE PASS ALGORITHM (IN A PARTITIONED
C            MATRIX SENSE) IS USED WITH RECURRENCE IN TWO DIRECTIONS TO
C            THE CENTRE AND BACK. THIS IS ANALOGOUS TO THE NAG ROUTINE
C            F04EAF FOR AN ORDINARY TRIDAGONAL MATRIX THE INDEXING OF
C            THE DIAG, SUPRADIAG AND INFRADIAG ELEMENTS FOLLOWS THAT OF
C            THE NAG ROUTINE F04EAF.
C
C  CALLING PROGRAM: C6WSOL
C
C  INPUT : (I*4)  MXNSHL   = MAXIMUM NUMBER OF N SHELLS.
C  INPUT : (I*4)  MXJSHL   = MAXIMUM NUMBER OF J SUB-SHELLS.
C  INPUT : (I*4)  N        = NUMBER OF PARTIONS ALONG THE DIAGONAL.
C  INPUT : (R*8)  VD(,)    = DIAGONAL PARTITION.
C                            1ST DIMENSION: 2 * MXJSHL
C                            2ND DIMENSION: N SHELL INDEX.
C  INPUT : (R*8)  VDS(,)   = SUPRADIAGONAL PARTITION.
C                            1ST DIMENSION: 2 * MXJSHL
C                            2ND DIMENSION: N SHELL INDEX.
C  INPUT : (R*8)  VDI(,)   = INFRADIAGONAL PARTITION.
C                            1ST DIMENSION: 2 * MXJSHL
C                            2ND DIMENSION: N SHELL INDEX.
C
C  I/O   : (R*8)  RHS(,)   = INPUT: RIGHT HAND SIDE OF VECTOR PARTITION.
C                            OUTPUT: SOLUTION OF VECTOR PARTITION.
C                            1ST DIMENSION: 2 * MXJSHL
C                            2ND DIMENSION: N SHELL INDEX.
C
C
C  PARAM : (I*4)  MXJ      = MXJSHL.
C
C          (I*4)  I        = LOOP INDEX.
C          (I*4)  K        =
C
C          (R*8)  UNIT()   =
C                            DIMENSION: 4
C          (R*8)  W1()     =
C                            DIMENSION: 4
C          (R*8)  W2()     =
C                            DIMENSION: 4
C          (R*8)  VW1()    =
C                            DIMENSION: 2
C          (R*8)  VW2()    =
C                            DIMENSION: 2
C          (R*8)  TEMP()   = TEMPORARY STORE.
C                            DIMENSION: 4
C
C ROUTINES:
C          ROUTINE    SOURCE    BRIEF DESCRIPTION
C          -------------------------------------------------------------
C          I4UNIT     ADAS      RETURNS UNIT NO. FOR OUTPUT OF MESSAGES.
C
C NOTES:
C        1) THE 2X2 PARTITIONS ARE STORED AS LINEAR VECTORS BY COLUMN
C           IN THE 1ST DIMENSIONS OF VD(,), VDS(,), VDI(,).
C
C AUTHOR:  JONATHAN NASH (TESSELLA SUPPORT SERVICES PLC)
C          K1/0/81
C          JET EXT. 5183
C
C DATE:    11/11/93
C
C UNIX-IDL PORT:
C
C AUTHOR:  WILLIAM OSBORN (TESSELLA SUPPORT SERVICES PLC)
C
C DATE:    22ND MAY 1996
C
C VERSION: 1.1                          DATE: 22-05-96
C MODIFIED: WILLIAM OSBORN
C               - FIRST VERSION. IBM VERSION NOT CHANGED
C
C VERSION: 1.2                          DATE: 29-05-96
C MODIFIED: WILLIAM OSBORN
C               - REMOVED UNUSED VARIABLES
C
C VERSION: 1.3                          DATE: 29-05-96
C MODIFIED: WILLIAM OSBORN
C               - S.C.C.S. MISTAKE
C
C-----------------------------------------------------------------------
C
C-----------------------------------------------------------------------
      INTEGER             MXJSHL,      MXNSHL,      N
      REAL*8              RHS(MXJSHL,MXNSHL),       VD(2*MXJSHL,MXNSHL)
      REAL*8              VDI(2*MXJSHL,MXNSHL),     VDS(2*MXJSHL,MXNSHL)
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk