SUBROUTINE BOUNDS(ITYPE,ARRAY,XMAX,XMIN,NPTS,IARRAY,MAX,MIN) C C THIS SUBROUTINE IS USED TO DETERMINE THE MAXIMUM AND MINIMUM OF C THE CONTENTS OF AN VECTOR. IF THE VECTOR IS REAL THE VALUE OF C ITYPE SHOULD BE 1, IF IT IS AN INTEGER VECTOR THE VALUE SHOULD C BE 2. THE DEFAULT IS INTEGER. C NPTS IS THE NUMBER OF POINTS IN THE APPROPRIATE ARRAY C DIMENSION ARRAY(1),IARRAY(1) CALL IDFLT(IPNT,2,ITYPE) !CHECK FOR DEFAULT VALUE IF ((IPNT.EQ.1).OR.(IPNT.EQ.2))GOTO 5 CALL ERRMSG('?BOUNDS - invalid array type, must be 1, 2, or defualt') RETURN 5 GOTO (100,200),IPNT C C MAX AND MIN OF REAL ARRAY C 100 XMAX=ARRAY(1) XMIN=XMAX DO 110 I=2,NPTS IF(ARRAY(I).GT.XMAX)XMAX=ARRAY(I) IF(ARRAY(I).LT.XMIN)XMIN=ARRAY(I) 110 CONTINUE RETURN C C MAX AND MIN OF INTEGER ARRAY C 200 MAX=IARRAY(1) MIN=MAX DO 210 I=2,NPTS IF(IARRAY(I).GT.MAX)MAX=IARRAY(I) IF(IARRAY(I).LT.MIN)MIN=IARRAY(I) 210 CONTINUE RETURN END SUBROUTINE ERRMSG(MSG) C C THIS SUBROUTINE PRINTS AN ERROR MESSAGE CONTAINED IN THE ARGUMENT C MSG. THIS ARGUMENT SHOULD BE A BYTE ARRAY FORMATTED AS AN ASCIZ C STRING. C BYTE MSG(1),CRLF(3) DATA CRLF/"15,"12,0/ CALL OUTSTR(CRLF) CALL OUTSTR(MSG) CALL OUTSTR(CRLF) RETURN END