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)