Showing results for 
Search instead for 
Did you mean: 

Invalid buffer on binary file write

Steve, Colleagues:

A very small number of users of our code are encountering error 38 during an attempt of a binary file write:

  • forrtl: The supplied user buffer is not valid for the requested operation.
  • forrtl: severe (38): error during write. unit 2, file . . . . .


Here is the section of code involved

open(2,file = filespath(1:len_trim(filespath)) //'SurfaceGroupingIntoObjects.dat',form='binary', err=999, iostat=IOstat, buffered = 'yes', buffercount = 2, blocksize=1048576)

do k = 1,NumEnclosingObjects
	write(2, err=999, iostat=IOstat) MappingEnclosingObjects(k)
	write(2, err=999, iostat=IOstat) ObjectContainsObject(MappingEnclosingObjects(k),0:ObjectContainsObject(MappingEnclosingObjects(k),0))
end do

The error occurs in the loop, not on the 1st iteration but after several (successful) writes.  Any ideas?

David DiLaura

0 Kudos
1 Reply

Compiler version?  Amount of

Compiler version?  Amount of data being written? We'd probably need a complete test case to look into this further. I'm aware of some issues we had regarding buffer positioning on reads, but not writes.

Retired 12/31/2016
0 Kudos