Trailing-Edge
-
PDP-10 Archives
-
decus_20tap2_198111
-
decus/20-0026/atse.ssp
There are 2 other files named atse.ssp in the archive. Click here to see a list.
C ATSE 10
C ..................................................................ATSE 20
C ATSE 30
C SUBROUTINE ATSE ATSE 40
C ATSE 50
C PURPOSE ATSE 60
C NDIM POINTS OF A GIVEN TABLE WITH EQUIDISTANT ARGUMENTS ARE ATSE 70
C SELECTED AND ORDERED SUCH THAT ATSE 80
C ABS(ARG(I)-X).GE.ABS(ARG(J)-X) IF I.GT.J. ATSE 90
C ATSE 100
C USAGE ATSE 110
C CALL ATSE (X,ZS,DZ,F,IROW,ICOL,ARG,VAL,NDIM) ATSE 120
C ATSE 130
C DESCRIPTION OF PARAMETERS ATSE 140
C X - THE SEARCH ARGUMENT. ATSE 150
C ZS - THE STARTING VALUE OF ARGUMENTS. ATSE 160
C DZ - THE INCREMENT OF ARGUMENT VALUES. ATSE 170
C F - IN CASE ICOL=1, F IS THE VECTOR OF FUNCTION VALUES ATSE 180
C (DIMENSION IROW). ATSE 190
C IN CASE ICOL=2, F IS AN IROW BY 2 MATRIX. THE FIRSTATSE 200
C COLUMN SPECIFIES THE VECTOR OF FUNCTION VALUES AND ATSE 210
C THE SECOND THE VECTOR OF DERIVATIVES. ATSE 220
C IROW - THE DIMENSION OF EACH COLUMN IN MATRIX F. ATSE 230
C ICOL - THE NUMBER OF COLUMNS IN F (I.E. 1 OR 2). ATSE 240
C ARG - THE RESULTING VECTOR OF SELECTED AND ORDERED ATSE 250
C ARGUMENT VALUES (DIMENSION NDIM). ATSE 260
C VAL - THE RESULTING VECTOR OF SELECTED FUNCTION VALUES ATSE 270
C (DIMENSION NDIM) IN CASE ICOL=1. IN CASE ICOL=2, ATSE 280
C VAL IS THE VECTOR OF FUNCTION AND DERIVATIVE VALUESATSE 290
C (DIMENSION 2*NDIM) WHICH ARE STORED IN PAIRS (I.E. ATSE 300
C EACH FUNCTION VALUE IS FOLLOWED BY ITS DERIVATIVE ATSE 310
C VALUE). ATSE 320
C NDIM - THE NUMBER OF POINTS WHICH MUST BE SELECTED OUT OF ATSE 330
C THE GIVEN TABLE. ATSE 340
C ATSE 350
C REMARKS ATSE 360
C NO ACTION IN CASE IROW LESS THAN 1. ATSE 370
C IF INPUT VALUE NDIM IS GREATER THAN IROW, THE PROGRAM ATSE 380
C SELECTS ONLY A MAXIMUM TABLE OF IROW POINTS. THEREFORE THE ATSE 390
C USER OUGHT TO CHECK CORRESPONDENCE BETWEEN TABLE (ARG,VAL) ATSE 400
C AND ITS DIMENSION BY COMPARISON OF NDIM AND IROW, IN ORDER ATSE 410
C TO GET CORRECT RESULTS IN FURTHER WORK WITH TABLE (ARG,VAL).ATSE 420
C THIS TEST MAY BE DONE BEFORE OR AFTER CALLING ATSE 430
C SUBROUTINE ATSE. ATSE 440
C SUBROUTINE ATSE ESPECIALLY CAN BE USED FOR GENERATING THE ATSE 450
C TABLE (ARG,VAL) NEEDED IN SUBROUTINES ALI, AHI, AND ACFI. ATSE 460
C ATSE 470
C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED ATSE 480
C NONE ATSE 490
C ATSE 500
C METHOD ATSE 510
C SELECTION IS DONE BY COMPUTING THE SUBSCRIPT J OF THAT ATSE 520
C ARGUMENT, WHICH IS NEXT TO X. ATSE 530
C AFTERWARDS NEIGHBOURING ARGUMENT VALUES ARE TESTED AND ATSE 540
C SELECTED IN THE ABOVE SENSE. ATSE 550
C ATSE 560
C ..................................................................ATSE 570
C ATSE 580
SUBROUTINE ATSE(X,ZS,DZ,F,IROW,ICOL,ARG,VAL,NDIM) ATSE 590
C ATSE 600
C ATSE 610
DIMENSION F(1),ARG(1),VAL(1) ATSE 620
IF(IROW-1)19,17,1 ATSE 630
C ATSE 640
C CASE DZ=0 IS CHECKED OUT ATSE 650
1 IF(DZ)2,17,2 ATSE 660
2 N=NDIM ATSE 670
C ATSE 680
C IF N IS GREATER THAN IROW, N IS SET EQUAL TO IROW. ATSE 690
IF(N-IROW)4,4,3 ATSE 700
3 N=IROW ATSE 710
C ATSE 720
C COMPUTATION OF STARTING SUBSCRIPT J. ATSE 730
4 J=(X-ZS)/DZ+1.5 ATSE 740
IF(J)5,5,6 ATSE 750
5 J=1 ATSE 760
6 IF(J-IROW)8,8,7 ATSE 770
7 J=IROW ATSE 780
C ATSE 790
C GENERATION OF TABLE ARG,VAL IN CASE DZ.NE.0. ATSE 800
8 II=J ATSE 810
JL=0 ATSE 820
JR=0 ATSE 830
DO 16 I=1,N ATSE 840
ARG(I)=ZS+FLOAT(II-1)*DZ ATSE 850
IF(ICOL-2)9,10,10 ATSE 860
9 VAL(I)=F(II) ATSE 870
GOTO 11 ATSE 880
10 VAL(2*I-1)=F(II) ATSE 890
III=II+IROW ATSE 900
VAL(2*I)=F(III) ATSE 910
11 IF(J+JR-IROW)12,15,12 ATSE 920
12 IF(J-JL-1)13,14,13 ATSE 930
13 IF((ARG(I)-X)*DZ)14,15,15 ATSE 940
14 JR=JR+1 ATSE 950
II=J+JR ATSE 960
GOTO 16 ATSE 970
15 JL=JL+1 ATSE 980
II=J-JL ATSE 990
16 CONTINUE ATSE1000
RETURN ATSE1010
C ATSE1020
C CASE DZ=0 ATSE1030
17 ARG(1)=ZS ATSE1040
VAL(1)=F(1) ATSE1050
IF(ICOL-2)19,19,18 ATSE1060
18 VAL(2)=F(2) ATSE1070
19 RETURN ATSE1080
END ATSE1090