This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
output_operand: floating constant misused.
- To: gcc-bugs at gcc dot gnu dot org
- Subject: output_operand: floating constant misused.
- From: Toon Moene <toon at moene dot indiv dot nluug dot nl>
- Date: Wed, 02 May 2001 23:01:57 +0200
- Organization: Moene Computational Physics, Maartensdijk, The Netherlands
You wouldn't believe what they do to floats these days.
Full error message:
Y2KBUtest.F:264: output_operand: floating constant misused
Please submit a full bug report, with preprocessed source if
appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
Command:
$ /usr/snp/bin/g77 -O2 -c -g Y2KBUtest.f
Y2KBUtest.f:264: output_operand: floating constant misused
Please submit a full bug report, with preprocessed source if
appropriate.
Today's CVS head on alphaev6-unknown-linux-gnu ...
Source:
SUBROUTINE Y2KBUtest
PARAMETER(IYYADD=2)
PARAMETER(JPBFLI=8193, JPVALS=80000)
PARAMETER (KVALS=JPVALS)
CHARACTER*80 CVALS(JPVALS)
CHARACTER*64 CNAMES(JPVALS)
CHARACTER*24 CUNITS(JPVALS)
DIMENSION JBUFI(JPBFLI)
DIMENSION IBUFI(JPBFLI),VALUES(JPVALS)
DIMENSION NSUP(9),NSEC0(3),NSEC1(100),NSEC2(64),NSEC3(4),
1 NSEC4(2),NKEY(46),NTDLST(JPVALS),NDATA(100),KTDEXP(JPVALS)
!KELEM)
DATA NDATA/100*0/
YYADD=IYYADD
write(6,'('' STARTING...'')')
IERR=99
KUNIT=1
10 CONTINUE
ILEN=JPBFLI
CALL PBMESR(KUNIT,1,IBUFI,ILEN,IERR)
IF(IERR.LT.0)THEN
WRITE(6,'('' BUFR READ ERROR..'')')
CALL ABORT
ELSE IF(IERR.EQ.1)THEN
GO TO 999
ENDIF
IF(ILEN.LE.8)GO TO 10
IERR=0
CALL BUS012(ILEN,IBUFI,NSUP,NSEC0,NSEC1,NSEC2,IERR)
IF (IERR.NE.0) THEN
WRITE(6,'('' ERROR IN BUS012..IERR= '',I12)')IERR
CALL ABORT
ENDIF
ITYPE=NSEC1(6)
IF(ITYPE.EQ.6) GO TO 10 ! LOCAL SFLOC DATA
ISUBTYP=NSEC1(7)
MVDIM2=NSUP(6)
IERR = 0
CALL BUUKEY(NSEC1,NSEC2,NKEY,NSUP,IERR)
IF (IERR.NE.0) THEN
WRITE(6,*)' ERROR EXPANDING BUFR KEY ...IERR=',IERR
CALL ABORT
ENDIF
MVDIM1=JPVALS/MVDIM2
NVDIM1=MVDIM1
IERR=0
CALL BUFREX(ILEN,IBUFI,NSUP,NSEC0,NSEC1,NSEC2,NSEC3,
1 NSEC4,MVDIM1,CNAMES,CUNITS,JPVALS,VALUES,CVALS,IERR)
IF(IERR.EQ.20)then
write(6,'('' Table D entry not found, skip ob'')')
ierr=0
goto 10
endif
IF(IERR.EQ.105)then
write(6,'('' BUFR table not found, skip ob'')')
ierr=0
goto 10
endif
IF (IERR.NE.0) THEN
WRITE(6,'('' ERROR IN BUFREX..IERR= '',I12)')
1 IERR
CALL ABORT
ENDIF
MVDIM1=NSUP(5)
CALL BUSEL(NTDLEN,NTDLST,NTDEXL,KTDEXP,IERR)
IF (IERR.NE.0) THEN
WRITE(6,'('' ERROR IN BUSEL ..IERR= '',I10)')
1 IERR
CALL ABORT
ENDIF
IF(NSEC1(9).LE.100)THEN
NSEC1(9)=NSEC1(9)+IYYADD
IF(NSEC1(9).GT.100)NSEC1(9)=NSEC1(9)-100
ELSE
WRITE(6,*)' BAD YEAR IN SECTION 1 = ',NSEC1(9)
CALL ABORT
ENDIF
IF(NKEY(4).GE.1900)THEN
NKEY(4)=NKEY(4)+IYYADD
ELSE IF(NKEY(4).LE.100)THEN
NKEY(4)=NKEY(4)+IYYADD
IF(NKEY(4).GT.100)NKEY(4)=NKEY(4)-100
ELSE
WRITE(6,*)' BAD YEAR IN BUFR KEY = ',NKEY(4)
CALL ABORT
ENDIF
KERR=0
CALL BUPKEY(NKEY,NSEC1,NSEC2,KERR)
IF(KERR.NE.0)THEN
WRITE(6,'('' ERROR PACKING RDB KEY...ABORT'')')
WRITE(6,*)NKEY
CALL ABORT
ENDIF
IF(NTDEXL.NE.MVDIM1)THEN
WRITE(6,'('' ERROR IN NTDEXL: '',3I12)')
1 NTDEXL,MVDIM1,MVDIM2
CALL ABORT
ENDIF
KBEG=1
NUM=0
NDATA(1)=0
NDATA(2)=0
NDATA(3)=0
NDATA(4)=0
NDATA(5)=0
NDATA(6)=0
NDATA(7)=0
NREPL=0
DO 8522 IREP=1,MVDIM2
DO 852 JIM=1,MVDIM1
NUM=NUM+1
IF(KTDEXP(JIM).EQ.4001.OR. KTDEXP(JIM).EQ.026193)THEN
YEAR=VALUES(JIM+KBEG-1)
IF(YEAR.GE.0.AND.YEAR.LE.9999.0)THEN
IF(YEAR.GE.1900.0)THEN
YEAR=YEAR+YYADD
ELSE IF(YEAR.LE.100.0)THEN
YEAR=YEAR+YYADD
IF(YEAR.GT.100.0)YEAR=YEAR-100.0
ELSE
WRITE(6,*)' BAD YEAR IN REPORT BODY=',YEAR
CALL ABORT
ENDIF
VALUES(JIM+KBEG-1)=YEAR
ENDIF
ELSE IF(KTDEXP(JIM).EQ.031001.OR.KTDEXP(JIM).EQ.031002)THEN
NREPL=NREPL+1
IF(NREPL.GE.100)THEN
WRITE(6,*)' TOO MANY REPLICATION FACTORS..??'
ENDIF
NDATA(NREPL)=NINT(VALUES(JIM+KBEG-1))
ENDIF
IF(IREP.GT.1)VALUES(NUM)=VALUES(JIM+KBEG-1)
852 continue
8522 continue
IF(NREPL.Gt.6)THEN
WRITE(6,*)' NREPL,ITYPE,ISUBTYP=',NREPL,ITYPE,ISUBTYP
ENDIF
KDLENG=NREPL !4
JELEM=NTDEXL
KTDLEN=NTDLEN
K=0 ! NO PRINT
KERR=0
IF(KERR.NE.0)THEN
WRITE(6,'('' ERROR EXPANDING ELEMENTS...ABORT'')')
WRITE(6,*)KERR
ENDIF
KBUFL=JPBFLI
CALL BUFREN( NSEC0,NSEC1,NSEC2,NSEC3,NSEC4,
1 KTDLEN,NTDLST,KDLENG,NDATA,JELEM,
2 KVALS,VALUES,CVALS,KBUFL,JBUFI,KERR)
IF(KERR.GT.0)THEN
WRITE(6,'('' ERROR IN PACKING BUFR MESSAGE: '')')
WRITE(6,*)ITYPE,ISUBTYP
DO 8852 JIM=1,MVDIM1
write(6,*)JIM,KTDEXP(JIM),VALUES(JIM)
8852 continue
stop
ENDIF
WRITE(2)(JBUFI(I),I=1,KBUFL)
GO TO 10
999 CONTINUE
END
--
Toon Moene - mailto:toon@moene.indiv.nluug.nl - phoneto: +31 346 214290
Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
Maintainer, GNU Fortran 77: http://gcc.gnu.org/onlinedocs/g77_news.html
Join GNU Fortran 95: http://g95.sourceforge.net/ (under construction)