Fortran Compilation Error

  1. Hi
    I try to run an image processing algorithm (Cross-Correlation based) on fortran to analyze a 500 frames video, but after the 20th frame I get this error message:


    The program 'D:\Omri\19.12.11\Debug\Cross_Corr_Omri.exe' has exited with code -1073741800 (0xC0000018).

    anf in the debug window I have this message:

    forrtl: severe <24>: end-of file during read, unit 1, file: (the name of the file)


    I checked whether the video is only 20 frames long but it was 500 as it supposed to be...


    and the program ceases. I do have the results for the first 20 frames but I need the rest as well.

    Thanks
     
    Last edited: Dec 21, 2011
  2. jcsd
  3. Likely the 20th or 21st frame doesn't have the expected number of data. Locate places in the code where a read occurs for unit 1 and insert an END=# parameter in the READ statement(s). That should result in a graceful halt where you can output diagnostics such as the number of records or data read and the number expected. (You may have to put a FLUSH(0) statement after your PRINTS to get the output.)
     
  4. jedishrfu

    Staff: Mentor

    Another possible error is whether you've opened the file as binary or ascii. in ascii mode the file read routines will look for an EOF marker. In addition to looking for EOF markers they also might be looking for a CR or CRLF character sequence to denote an end of text line.

    A binary data file will most likely have one of these characters somewhere and thus reading a binary file will result in reading lines short or premature EOF error.

    This is also a common problem in C code.

    The fortran binary might also be called raw mode as in don't look for any special character give me the data raw and unrefined.

    Not knowing what OS or what FORTRAN here's a possible reference:

    http://idlastro.gsfc.nasa.gov/idl_html_help/Reading_and_Writing_FORTRAN_Data.html
     
  5. jedishrfu

    Staff: Mentor

    forgot to mention there are actually 3 ways to read a file in fortran
    - as variable length text records
    - as variable length binary records
    - as raw binary where you seek to an address and read n bytes of data (random file)

    It seems any image file would have a format that demands the 3rd option as it will have some structured tables for the imahe header, color palette and image data where each pixel is represented by 1, 2 or 4 bytes depending on the type of image with the 1 byte or 2 byte referencing a color in the palette table or as 4 bytes where each byte represents red, green, blue, intensity or some similar variation of values. The header would have provided meta info about the image such as size and type of color coding used.
     
  6. This information us quite useless without the code. You need to post it.
     
Know someone interested in this topic? Share this thead via email, Google+, Twitter, or Facebook

Have something to add?