1C*PGPNTS -- draw several graph markers, not all the same 2C%void cpgpnts(int n, const float *x, const float *y, \ 3C% const int *symbol, int ns); 4C+ 5 SUBROUTINE PGPNTS (N, X, Y, SYMBOL, NS) 6 INTEGER N, NS 7 REAL X(*), Y(*) 8 INTEGER SYMBOL(*) 9C 10C Draw Graph Markers. Unlike PGPT, this routine can draw a different 11C symbol at each point. The markers are drawn using the current values 12C of attributes color-index, line-width, and character-height 13C (character-font applies if the symbol number is >31). If the point 14C to be marked lies outside the window, no marker is drawn. The "pen 15C position" is changed to (XPTS(N),YPTS(N)) in world coordinates 16C (if N > 0). 17C 18C Arguments: 19C N (input) : number of points to mark. 20C X (input) : world x-coordinate of the points. 21C Y (input) : world y-coordinate of the points. 22C SYMBOL (input) : code number of the symbol to be plotted at each 23C point (see PGPT). 24C NS (input) : number of values in the SYMBOL array. If NS <= N, 25C then the first NS points are drawn using the value 26C of SYMBOL(I) at (X(I), Y(I)) and SYMBOL(1) for all 27C the values of (X(I), Y(I)) where I > NS. 28C 29C Note: the dimension of arrays X and Y must be greater than or equal 30C to N and the dimension of the array SYMBOL must be greater than or 31C equal to NS. If N is 1, X and Y may be scalars (constants or 32C variables). If NS is 1, then SYMBOL may be a scalar. If N is 33C less than 1, nothing is drawn. 34C-- 35C 11-Mar-1991 - new routine [JM]. 36C 26-Feb-1997 - revised to use PGPT1 [TJP]. 37C----------------------------------------------------------------------- 38 INTEGER I, SYMB 39C 40 IF (N.LT.1) RETURN 41 CALL PGBBUF 42 DO 10 I=1,N 43 IF (I .LE. NS) THEN 44 SYMB = SYMBOL(I) 45 ELSE 46 SYMB = SYMBOL(1) 47 END IF 48 CALL PGPT1(X(I), Y(I), SYMB) 49 10 CONTINUE 50 CALL PGEBUF 51 END 52