I have a relatively stable, relatively large fortran program (500,000+ lines). This program works correctly on linux, 64 bit linux, solaris, and windows when compiled with g77 3.4.4.
When I complile it with gfortran 4.1.0, 26 out of 384 of my regerssion tests fail because of i/o errors. Basically, I have databases which are accesses via direct access, unformatted io. All transactions pass through two routines: a writter and a reader. I have attached a tar file which contains the two routines. Basically, they write two words at the beginning of each record - the current numbers of "saus" (sort integers) and the record which continues this record. Also attached is a file, trans, which shows the reads and writes. Each line in the file contains the action (dba_read or dba_write), the fortran unit number, the record number, the number of short integers on this record, the continuation record, and finally the record length. (The print statements that created this file are commentd out in the source). If you notice the last line in this file says that record 2958 on logical unit 15 has 1 short integer, but 4 lines up, it has 122 and is continued on 2959. Notice that there have been writes to this file, but at different record numbers. I would really like to give you a better report, but the fact that 350 tests work properly says that any attempt to create a simple test will probably fail (the code will work properly). I will be happy to do anything you would like to help in the resolution of this problem. In particular, it you would like for me to test any changes, please just send me the library and I can get back to you within a couple of hours. -- Summary: Problems with direct access io Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: blocker Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ray at ultramarine dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27757