Thanks for the tip. I had linked a single-thread library and that was part of my problem. Changing to a multi-threaded library dropped the error rate by about a factor of 20. The setting in Compaq Visual Fortran is found at: Project --> settings. Go to the FORTRAN tab and set the category to Libraries. Then you can set the library type to multi-threaded.
I ran my program about 200 times and sawan error once in a file OPEN statement. Tracing into the code, I found that the EBP register was pointing to nonallocated memory. The code looked quite innocuous; there was only one subroutine call between a successful use of EBP and the one that caused the exception and all of the instructions looke to be thread safe. This suggests that the problem was in the subroutine.
The routine was for memory allocation. The value in EBP when the failure occurred was not random; it looked like it was perhaps 32k below where it had been before the routine was entered. The memory pointed to was not allocated, though.
I havn't had a chance to trace further into the code. I will report if I find anything.