- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I am working with some Intel Fortan code that contains a line like:
write (UNIT=foo, REC=bar, IOSTAT=status) buff(1 : nbytes)
Very infrequently the status returned is 37. There does not appear to be anything strange
with the values of foo, bar, buff, or nbytes. However, "buff" is in a common block in shared
memory. This is a large system with interacting processes, something strange could be going on.
According to "Intel Fortran Building Applications", this is
Inconsistent record length
FOR$IOS_INCRECLEN. An attempt was made to open a direct acces file without
specifying a record length.
My question, is: What is the meaning of IOSTAT=37 for a write? Is it a normal return value from
write? When this happens, the file has usually been opened for quite a while.
If this is not a normal return value, then I have to consider the possibility that
the memory associated with file IO is being overwritten or something equally
difficult to debug. However, before going downthat road, i'd like to verify that
this IOSTAT value does not simply indicate a problem in the environment.
A pointer to the list of possible IOSTAT values for write would be great. I know where the list
of all possible IOSTAT return values is, but I don't know which ones are normally possible for write.
Thanks,
Ron
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There is no list of possible error codes by statement. I could imagine this happening on a WRITE if unit FOO was not currently open. Either variable FOO changed its value or the unit got closed earlier in the program.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page