CTITLES2GRPH -- PRODUCES A PRINTER PLOT OF A INPUT ARRAY 00010001 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR HANS HOOGSTRAAT 00020001 CA DESIGNER HANS HOOGSTRAAT 00030001 CA LANGUAGE S/370 FORTRAN H 00040001 CA SYSTEM IBM OR CRAY 00050001 CA WRITTEN 00060001 C REVISED 04-25-80 HHL. CHANGED CALL FROM S1DATE TO DATIME 00070001 C TO GET CORRECT DATE. 00080001 C REVISED 01-24-86 JMP. DUAL IBM/CRAY VERSION. 00090001 C ALSO ELIMINATED BRANCH TO END OF LOOP 70. 00100001 C REVISED 11-04-87 ESN. MODIFY CODE TO PRINT OUT JOB NAME, 00110001 C DATE, AND TIME ON THE CRAY. ALSO, ENSURE 00120001 C THAT THE '*' STAYS INSIDE (1,121) 00130001 C REVISED 11-13-89 RDK. FOR CRAY CFT77 COMPATIBILITY. 00131002 CA 00140001 CA 00150001 CA CALL S2GRPH (X, N, ANST, ANINCR, IPR) 00160001 CA X = FLOATING POINT INPUT ARRAY. R4 00170001 CA N = NUMBER OF ELEMENTS IN INPUT ARRAY. I4 00180001 CA ANST = ANNOTATION START VALUE. R4 00190001 CA ANINCR = ANNOTATION INCREMENT R4 00200001 CA IPR = PRINTER UNIT. I4 00210001 CA 00220001 CA 00230001 CA S2GRPH PRODUCES AN ANNOTATED PRINTER PLOT OF AN INPUT ARRAY. 00240001 CA 00250001 C 00260001 SUBROUTINE S2GRPH (X, N, ANST, ANINCR, IPR) 00270001 C 00280001 IMPLICIT INTEGER (A-Z) 00290001 C 00300001 C REAL ARRAYS 00310001 C 00320001 REAL X(1) 00330001 C 00340001 C INTEGER ARRAYS 00350001 C 00360001 INTEGER DTIM (4) 00370001 INTEGER LINE (121) 00380001 C 00390001 C CHARACTER VARIABLES 00400001 C 00410001 CHARACTER*8 DATE 00420001 CHARACTER*8 JOB 00430001 CHARACTER*8 TIME 00440001 C 00450001 C REAL VARIABLES 00460001 C 00470001 REAL AA 00480001 REAL AMAX 00490001 REAL AMIN 00500001 REAL ANINCR 00510001 REAL ANST 00520001 C 00530001 C DATA STATEMENTS 00540001 C 00550001 DATA ASTER /'*'/ 00560001 DATA BLANK /' '/ 00570001 DATA POINT /'.'/ 00580001 C 00590001 C INITIALIZATION 00600001 C 00610001 CALL S1JOB (JOB) 00620001 CALL DATIME (DATE,TIME,DTIM) 00630001 C 00640001 C FIND MINIMUM AND MAXIMUM 00650001 C 00660001 AMAX = 0.0 00670001 DO 10 I = 1, N 00680001 IF (AMAX .LT. ABS(X(I))) AMAX = ABS(X(I)) 00690001 10 CONTINUE 00700001 AMIN = -AMAX 00710001 WRITE (IPR,9000) AMIN,JOB,DATE,TIME,AMAX 00720001 C 00730001 IF (AMAX .EQ. 0.0) THEN 00740001 WRITE (IPR, 9010 ) 00750001 GO TO 80 00760001 ENDIF 00770001 C 00780001 C DO LOOP FOR THE NUMBER OF POINTS 00790001 C 00800001 AA = ANST 00810001 DO 70 I = 1, N 00820001 C 00830001 DO 20 L = 1, 121 00840001 LINE(L) = BLANK 00850001 20 CONTINUE 00860001 C 00870001 LINE(1) = POINT 00880001 LINE(61) = POINT 00890001 LINE(121) = POINT 00900001 C 00910001 K = INT((X(I)*60.) / AMAX + 61.01) 00920001 IF (K .LT. 1) K = 1 00930001 IF (K .GT. 121) K = 121 00940001 LINE(K) = ASTER 00950001 IF (K .LT. 61) GO TO 60 00960001 C 00970001 DO 30 L = 61, K 00980001 LINE(L) = ASTER 00990001 30 CONTINUE 01000001 GO TO 60 01010001 C 01020001 60 IF (ANINCR.LT.1.) WRITE (IPR, 9020 ) AA, LINE 01030001 IF (ANINCR.GE.1.) WRITE (IPR, 9030 ) AA, LINE 01040001 C 01050001 AA = AA + ANINCR 01060001 70 CONTINUE 01070001 C 01080001 80 CONTINUE 01090001 RETURN 01100001 C 01110001 C FORMAT STATEMENTS 01120001 C 01130001 9000 FORMAT (//07X,E20.10,15X,A8,2X,A8,2X,A8,2X,6X, 01140001 * 20X,' ',12X,E20.10/ 01150001 * 10X,121('-')) 01160001 C 01170001 9010 FORMAT (' PLOT SKIPPED, ALL ZEROES') 01180001 C 01190001 9020 FORMAT (1X,F8.3,1X,121A1) 01200001 C 01210001 9030 FORMAT (1X,F8.0,1X,121A1) 01220001 C 01230001 END 01240001