Web pdp-10.trailing-edge.com

Trailing-Edge - PDP-10 Archives - decuslib10-02 - 43,50145/atsg.doc
There are 2 other files named atsg.doc in the archive. Click here to see a list.
```SUBROUTINE ATSG

PURPOSE
NDIM POINTS OF A GIVEN GENERAL TABLE ARE SELECTED AND
ORDERED SUCH THAT ABS(ARG(I)-X).GE.ABS(ARG(J)-X) IF I.GT.J.

USAGE
CALL ATSG (X,Z,F,WORK,IROW,ICOL,ARG,VAL,NDIM)

DESCRIPTION OF PARAMETERS
X	  - THE SEARCH ARGUMENT.
Z	  - THE VECTOR OF ARGUMENT VALUES (DIMENSION IROW).
F	  - IN CASE ICOL=1, F IS THE VECTOR OF FUNCTION VALUES
(DIMENSION IROW).
IN CASE ICOL=2, F IS AN IROW BY 2 MATRIX. THE FIRST
COLUMN SPECIFIES THE VECTOR OF FUNCTION VALUES AND
THE SECOND THE VECTOR OF DERIVATIVES.
WORK   - A WORKING STORAGE (DIMENSION IROW).
IROW   - THE DIMENSION OF VECTORS Z AND WORK AND OF EACH
COLUMN IN MATRIX F.
ICOL   - THE NUMBER OF COLUMNS IN F (I.E. 1 OR 2).
ARG	  - THE RESULTING VECTOR OF SELECTED AND ORDERED
ARGUMENT VALUES (DIMENSION NDIM).
VAL	  - THE RESULTING VECTOR OF SELECTED FUNCTION VALUES
(DIMENSION NDIM) IN CASE ICOL=1. IN CASE ICOL=2,
VAL IS THE VECTOR OF FUNCTION AND DERIVATIVE VALUES
(DIMENSION 2*NDIM) WHICH ARE STORED IN PAIRS (I.E.
EACH FUNCTION VALUE IS FOLLOWED BY ITS DERIVATIVE
VALUE).
NDIM   - THE NUMBER OF POINTS WHICH MUST BE SELECTED OUT OF
THE GIVEN TABLE (Z,F).

REMARKS
NO ACTION IN CASE IROW LESS THAN 1.
IF INPUT VALUE NDIM IS GREATER THAN IROW, THE PROGRAM
SELECTS ONLY A MAXIMUM TABLE OF IROW POINTS.  THEREFORE THE
USER OUGHT TO CHECK CORRESPONDENCE BETWEEN TABLE (ARG,VAL)
AND ITS DIMENSION BY COMPARISON OF NDIM AND IROW, IN ORDER
TO GET CORRECT RESULTS IN FURTHER WORK WITH TABLE (ARG,VAL).
THIS TEST MAY BE DONE BEFORE OR AFTER CALLING
SUBROUTINE ATSG.
SUBROUTINE ATSG ESPECIALLY CAN BE USED FOR GENERATING THE
TABLE (ARG,VAL) NEEDED IN SUBROUTINES ALI, AHI, AND ACFI.

SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
NONE

METHOD
SELECTION IS DONE BY GENERATING THE VECTOR WORK WITH
COMPONENTS WORK(I)=ABS(Z(I)-X) AND AT EACH OF THE NDIM STEPS
(OR IROW STEPS IF NDIM IS GREATER THAN IROW)
SEARCHING FOR THE SUBSCRIPT OF THE SMALLEST COMPONENT, WHICH
IS AFTERWARDS REPLACED BY A NUMBER GREATER THAN
MAX(WORK(I)).
```