With compiler 4.3.0 20080109 (experimental) [trunk revision 131426] (GCC) vector valued reads into an array don't appear to read in values. The test program prints out kind of qda = 4 vector valued read failed 1 -100.000000 1.00000000 2 -100.000000 2.0000000 3 -100.000000 3.0000000 4 -100.000000 4.0000000 5 -100.000000 5.0000000 6 -100.000000 6.0000000 7 -100.000000 7.0000000 8 -100.000000 8.0000000 9 -100.000000 9.0000000 10 -100.000000 10.0000000 subscript range read succeeded
Dick Hendrickson Program QH0008 REAL(4) QDA(10) REAL(4) QDA1(10) integer, dimension(10) :: nfv1 = (/1,2,3,4,5,6,7,8,9,10/) qda1 = nfv1 qda = -100 print *, 'kind of qda = ', kind(qda) OPEN (UNIT=47, $ STATUS='SCRATCH', $ FORM='UNFORMATTED', $ ACTION='READWRITE') ISTAT = -314 REWIND (47, IOSTAT = ISTAT) IF ( ISTAT .NE. 0) THEN stop ' FIRST REWIND FAILED ' ENDIF ISTAT = -314 WRITE (47,IOSTAT = ISTAT) QDA1 IF ( ISTAT .NE. 0) THEN stop ' WRITE FAILED ' ENDIF ISTAT = -314 REWIND (47, IOSTAT = ISTAT) IF ( ISTAT .NE. 0) THEN stop ' SECOND REWIND FAILED ' ENDIF READ (47,IOSTAT = ISTAT) QDA(NFV1) IF ( ISTAT .NE. 0) THEN stop ' READ FAILED ' ENDIF IF ( ANY (QDA .ne. QDA1) ) then print *, 'vector valued read failed' DO I = 1,10 print *, I, qda(i), qda1(i) enddo else print *, 'vector valued read succeeded' endif ISTAT = -314 REWIND (47, IOSTAT = ISTAT) IF ( ISTAT .NE. 0) THEN stop ' THIRD REWIND FAILED ' ENDIF qda = -200 READ (47,IOSTAT = ISTAT) QDA(1:10) IF ( ISTAT .NE. 0) THEN stop ' READ FAILED ' ENDIF IF ( ANY (QDA .ne. QDA1) ) then print *, 'vector valued read failed' DO I = 1,10 print *, I, qda(i), qda1(i) enddo else print *, 'subscript range read succeeded' endif END -- Summary: read into vector-valued section doesn't transfer any values Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dick dot hendrickson at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34875