home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Archive Magazine 1996
/
ARCHIVE_96.iso
/
discs
/
shareware
/
share_44
/
f77buglist
< prev
next >
Wrap
Text File
|
1993-11-13
|
5KB
|
115 lines
Acorn Fortran77 release 2 Bug List and Example Code
last updated 17 June 93
Please send news of any other bugs you come across.
no Date Source
1 Mar91 Archive vol 6 no.4 page 8
Raymond Wright reported that DACOS(-1.) gives the wrong answer
but X=-1.
Y=DACOS(X)
the right one. see PRM page 1706
This problem applies when any of the 'immediate operands'
which are (0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 0.5, 10.0) are
used in negative form as arguments to fortran functions.
e.g. the result of this code below is 1.0
PRINT *, ' the square root of -1 is ', SQRT(-1.)
END
--------------------------------------------------------------------------
PROGRAM BUG1
PRINT *,' SQRT(-1.0) =',SQRT (-1.0)
S = -1.0
C but this one really does fail!
PRINT *,' SQRT(S) =',SQRT(S)
END
--------------------------------------------------------------------------
2 13 Jul 91 J.P.Davey reported a problem passing functions as arguments
the following code will not compile, it stops with an error
Fatal Error (Code 930): Internal Error
SUBROUTINE TEST(F1,X)
EXTERNAL F1
F(Z)=F1(X,Z)
A=F(2.0-1.0)
RETURN
END
--------------------------------------------------------------------------
SUBROUTINE TEST(F1,X)
EXTERNAL F1
F(Z)=F1(X,Z)
B=F(2.0-1.0)
RETURN
END
--------------------------------------------------------------------------
3 30 Sep 91
Kate Crennell Error in concatenating a character variable with itself,
and no warnings given.
This is not allowed in standard Fortran 77 although some
compilers translate it correctly, others give compilation
errors. Acorn Archimedes Fortran gives no compilation error
or warning, and gives the wrong answer.
--------------------------------------------------------------------------
PROGRAM Bug3
CHARACTER *40 A
DATA A/'<123>'/
WRITE(*,*)' A=*',A,'*'
A='X'//A
WRITE(*,*)' A=*',A,'*'
STOP
END
--------------------------------------------------------------------------
4 03 Nov 91
Kate Crennell OPEN file names are truncated to 30 characters.
You can get round this by defining an Alias e.g <My$dir>
for the directory path and using that instead of the full
path name in the Fortran.
--------------------------------------------------------------------------
PROGRAM OPENBUG
CHARACTER*40 NAMEO,INAME
DATA NAMEO/'SCSI::HD4.$.MATHS.KMCPoly.NOGOODFILE'/
OPEN(10,FILE=NAMEO,STATUS='NEW',FORM='FORMATTED')
INQUIRE(UNIT=10,NAME=INAME)
WRITE(*,*)' INQUIRE thought name was ',INAME
WRITE(10,100)NAMEO,NAMEO(1:30)
100 FORMAT(' this is just a little test file'/
+' it ought to be written to a file with name'/1X,A/
+' but actually it will be written to'/1X,A)
CLOSE(10)
END
--------------------------------------------------------------------------
5 21 Feb 92
Andrew Ray Despite the statement on page 32 of the Release2 Fortran77
manual, files cannot be accessed with STATUS='SCRATCH' in the
OPEN statement. You get round this by putting STATUS='DELETE'
in the CLOSE statement
--------------------------------------------------------------------------- PROGRAM sratchy
INTEGER IWORD(200)
DO 10 I=1,200
10 IWORD(I)=I
NOUT=2
C STATUS='SCRATCH' is not accepted at Run Time
C but STATUS='DELETE' in the CLOSE statement works
OPEN(UNIT=NOUT,FILE='Kate',FORM='FORMATTED',STATUS='SCRATCH')
WRITE(NOUT,101)(IWORD(I),I=1,200)
101 FORMAT( 10I6)
CLOSE(NOUT)
C replace the line above with the line below to delete the file
C CLOSE(NOUT,STATUS='DELETE')
STOP 'OK'
END
----------------------------------------------------------------------------
6 17 June 93
EugΦne R Dahmen found many linker problems when using RISC OS 3 with
ADFS buffers NOT set to 0, watch this after a 'factory reset'
----------------------------------------------------------------------------
7 4 Nov 93
K.M.Crennell Compilation fails on very large BLOCK DATA statement with the
message "insufficient store for code generation". Changing
the slot size available makes no difference; you just have to
rewrite the code.