Knowledge Base

FIX: F6422 on Unformatted File Opened with ACCESS='APPEND'

PSS ID Number: 112344

Article Last Modified on 3/24/2000


The information in this article applies to:


This article was previously published under Q112344

SYMPTOMS

Attempting to CLOSE, REWIND, or BACKSPACE an unformatted file that was opened with ACCESS='APPEND' produces the run-time error:
run-time error F6422:
- no space left on device

RESOLUTION

Do not open unformatted files with ACCESS='APPEND'. Read to the end of the unformatted file and then start writing the new information. Another solution is to use FORM='BINARY' with ACCESS= 'APPEND'.

STATUS

Microsoft has confirmed this to be a problem in FORTRAN PowerStation version 1.0 for MS-DOS. This problem has been resolved with FORTRAN PowerStation maintenance release version 1.0a for MS-DOS.

FORTRAN PowerStation version 1.0 can be differentiated from the maintenance release version 1.0a by invoking the linker. Typing link32 | more from \F32\BIN directory will show version 2.8 for FORTRAN PowerStation version 1.0, and it will show version 1.0f for the maintenance release version 1.0a.

MORE INFORMATION

The following sample produces the F6422 error with Fortran PowerStation for MS-DOS version 1.0, but does not with version 1.0a.

Sample Code #1

Compile options: None
      open (1,file='newfile.dat',form='unformatted')
      do j=1,2
         write(1) j
      enddo
      close(1)
      open (1,file='newfile.dat',form='unformatted',access='append')
      do j=1,2
         write(1) j
      enddo
      close(1)  ! F6422 here
      end
				
Obtain the functionality of ACCESS='APPEND' by reading to the end of the file before writing the appended records. This is shown in the sample below:

Sample Code #2

Compile options: None
      open (1,file='newfile.dat',form='unformatted')
      do j=1,2
         write(1) j
      enddo
      close(1)
      open (1,file='newfile.dat',form='unformatted')
      do while (.not.EOF(1))
         read(1) j           ! READ to end of file
      enddo
      do j=1,2
         write(1) j          ! APPEND additional information
      enddo
      close(1)
      end
				

Additional query words: 1.00 1.00a buglist1.00 fixlist1.00a

Keywords: kbbug KB112344
Technology: kbAudDeveloper kbFORTRANPower100DOS kbFortranSearch kbZNotKeyword3