Message-ID: <37F68BBC.4512ED84@keycomm.it> Date: Sun, 03 Oct 1999 00:48:28 +0200 From: leopoldo cerbaro X-Mailer: Mozilla 4.51 [en] (Win95; I) X-Accept-Language: en MIME-Version: 1.0 To: pgcc AT delorie DOT com Subject: signal 11 with pg77 compiling pgplot Content-Type: multipart/mixed; boundary="------------D1C779BC66D495BE10A205CF" Reply-To: pgcc AT delorie DOT com This is a multi-part message in MIME format. --------------D1C779BC66D495BE10A205CF Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi. When I compile the attached file, of the package PGPLOT v5.2.0, with the command: g77 -c -u -Wall -fPIC -O ..//src/pgncur.f I got: g77 version pgcc-2.91.60 19981201 (egcs-1.1.1 release) (from FSF-g77 version 0.5.24-19980804) Reading specs from /usr/lib/gcc-lib/i586-pc-linux-gnu/pgcc-2.91.60/specs gcc version pgcc-2.91.60 19981201 (egcs-1.1.1 release) /usr/lib/gcc-lib/i586-pc-linux-gnu/pgcc-2.91.60/f771 ..//src/pgncur.f -quiet -dumpbase pgncur.f -O -version -fversion -fPIC -o /tmp/ccU2A3P3.s GNU F77 version pgcc-2.91.60 19981201 (egcs-1.1.1 release) (i586-pc-linux-gnu) compiled by GNU C version pgcc-2.91.57 19980901 (egcs-1.1 release). GNU Fortran Front End version 0.5.24-19980804 g77: Internal compiler error: program f771 got fatal signal 11 I tried many combinations of options with the same result. The files obtained with the option -da are all empty. The distribution is stampede, the kernel is 2.2.2 (Linux obviously :) No problem compiling with g77 under debian 2.1 I hope you can help me. Thanks Bye --------------D1C779BC66D495BE10A205CF Content-Type: text/plain; charset=us-ascii; name="Pgncur.f" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="Pgncur.f" C*PGNCUR -- mark a set of points using the cursor C%void cpgncur(int maxpt, int *npt, float *x, float *y, int symbol); C+ SUBROUTINE PGNCUR (MAXPT, NPT, X, Y, SYMBOL) INTEGER MAXPT, NPT REAL X(*), Y(*) INTEGER SYMBOL C C Interactive routine for user to enter data points by use of C the cursor. Routine allows user to Add and Delete points. The C points are returned in order of increasing x-coordinate, not in the C order they were entered. C C Arguments: C MAXPT (input) : maximum number of points that may be accepted. C NPT (in/out) : number of points entered; should be zero on C first call. C X (in/out) : array of x-coordinates. C Y (in/out) : array of y-coordinates. C SYMBOL (input) : code number of symbol to use for marking C entered points (see PGPT). C C Note (1): The dimension of arrays X and Y must be greater than or C equal to MAXPT. C C Note (2): On return from the program, cursor points are returned in C increasing order of X. Routine may be (re-)called with points C already defined in X,Y (number in NPT), and they will be plotted C first, before editing. C C Note (3): User commands: the user types single-character commands C after positioning the cursor: the following are accepted: C A (Add) - add point at current cursor location. C D (Delete) - delete nearest point to cursor. C X (eXit) - leave subroutine. C-- C 27-Nov-1983 C 9-Jul-1983 - modified to use GRSCI instead of GRSETLI [TJP]. C 13-Dec-1990 - changed warnings to messages [TJP]. C 2-Aug-1995 - [TJP]. C----------------------------------------------------------------------- INCLUDE 'pgplot.inc' CHARACTER*1 LETTER LOGICAL PGNOTO INTEGER PGCURS, I, J, SAVCOL REAL DELTA, XP, YP, XPHYS, YPHYS REAL XMIN, XIP, YIP REAL XBLC, XTRC, YBLC, YTRC C C Check that PGPLOT is in the correct state. C IF (PGNOTO('PGNCUR')) RETURN C C Save current color. C CALL GRQCI(SAVCOL) C C Put current points on screen. C IF (NPT.NE.0) CALL PGPT(NPT,X,Y,SYMBOL) C C Start with the cursor in the middle of the viewport. C CALL PGQWIN(XBLC, XTRC, YBLC, YTRC) XP = 0.5*(XBLC+XTRC) YP = 0.5*(YBLC+YTRC) C C Loop over cursor inputs. C 100 IF (PGCURS(XP,YP,LETTER).NE.1) RETURN IF (LETTER.EQ.CHAR(0)) RETURN CALL GRTOUP(LETTER,LETTER) C C A (ADD) command: C IF (LETTER .EQ. 'A') THEN IF (NPT.GE.MAXPT) THEN CALL GRMSG('ADD ignored (too many points).') GOTO 100 END IF C ! Find what current points new point is between. DO 120 J=1,NPT IF (XP.LT.X(J)) GOTO 122 120 CONTINUE J = NPT + 1 C ! New point is beyond last current 122 CONTINUE C ! J is vector location where new point should be included. DO 140 I=NPT,J,-1 X(I+1) = X(I) Y(I+1) = Y(I) 140 CONTINUE NPT = NPT + 1 C ! Add new point to point array. X(J) = XP Y(J) = YP CALL PGPT(1,X(J),Y(J),SYMBOL) CALL GRTERM C C D (DELETE) command: C ELSE IF (LETTER.EQ.'D') THEN IF (NPT.LE.0) THEN CALL GRMSG('DELETE ignored (there are no points left).') GOTO 100 END IF XMIN = 1.E+08 C ! Look for point closest in radius. C ! Convert cursor points to physical. XPHYS = PGXORG(PGID) + XP*PGXSCL(PGID) YPHYS = PGYORG(PGID) + YP*PGYSCL(PGID) DO 220 I=1,NPT C ! Convert array points to physical. XIP = PGXORG(PGID) + X(I)*PGXSCL(PGID) YIP = PGYORG(PGID) + Y(I)*PGYSCL(PGID) DELTA = SQRT( (XIP-XPHYS)**2 + (YIP-YPHYS)**2 ) IF (DELTA.LT.XMIN) THEN XMIN = DELTA J = I END IF 220 CONTINUE C ! Remove point from screen by writing in background color. CALL GRSCI(0) CALL PGPT(1,X(J),Y(J),SYMBOL) CALL GRSCI(SAVCOL) CALL GRTERM C ! Remove point from cursor array. NPT = NPT-1 DO 240 I=J,NPT X(I) = X(I+1) Y(I) = Y(I+1) 240 CONTINUE C C X (EXIT) command: C ELSE IF (LETTER.EQ.'X') THEN CALL GRETXT RETURN C C Illegal command: C ELSE CALL GRMSG('Commands are A (add), D (delete), X (exit).') END IF C GOTO 100 END --------------D1C779BC66D495BE10A205CF--