# Fortran90 reading in a formatted input file

by Rowdy5000
Tags: file, formatted, fortran90, input, reading
P: 73
What you can try is switching your read statements leading up to your DO/ENDDO loop with write statements and seeing what the file looks like. It would look like

open(10,file='test.txt')
write(10,*)a
write(10,*)b
write(10,*)c,d
write(10,*)e,f,g,h
write(10,*)i
write(10,*)j
write(10,*)ntimes
close(10)
With arbitrary values assigned to a-j and ntimes.

Just an idea.
 P: 5 Thanks for that; it did show me how basic of an input I could use. I am having some trouble with this in debugging though. I get a ".exe triggered a breakpoint" error at the line of the first read statement. I'll do some more headscratching and then return with more details if I can't get it. Thanks again.
Mentor
P: 20,409

## Fortran90 reading in a formatted input file

"Triggering a breakpoint" isn't an error. It seems that you set a breakpoint at that statement, which causes the debugger to stop.
HW Helper
P: 6,900
 Quote by Mark44 "Triggering a breakpoint" isn't an error.
It could be an error, if the compiler generates breakpoint instructions (INT 3) or uses an invalid address to access memory in a failure case.

It's possible that the open statement failed. Is there anyway to check the status of the open statement?
 P: 5 rcgldr: I think you might be close to home w/ suspecting the open statement. In Visual Studio 2005 I get a little green arrow pointing at the first read statement. When I hover over that for detail, I get the following message: "This code has called into another function. When that function is finished, this is the next statement that will be executed." And when I go to disassembly, I've got a little yellow arrow pointing at the line just after a line that reads: "00431340 int 3" I don't really know yet how to check the status of the open statement. Thanks to all for the support.
Mentor
P: 20,409
 Quote by Rowdy5000 rcgldr: I think you might be close to home w/ suspecting the open statement. In Visual Studio 2005 I get a little green arrow pointing at the first read statement. When I hover over that for detail, I get the following message: "This code has called into another function. When that function is finished, this is the next statement that will be executed." And when I go to disassembly, I've got a little yellow arrow pointing at the line just after a line that reads: "00431340 int 3"
This is the breakpoint instruction that rcgldr mentioned.

Have you set a breakpoint? If so, it will show up as a red circle in the left margin in Visual Studio. You can delete all breakpoints by clicking Delete All Breakpoints in the the Debug menu in VS. This menu item doesn't appear if there are no breakpoints set.
 Quote by Rowdy5000 I don't really know yet how to check the status of the open statement. Thanks to all for the support.
 P: 5 I think the compiler is automatically setting a breakpoint or something...I got a disassembly display and a call stack that mean nothing to me and I think I've hit a wall with self-diagnosis. If anyone can suggest a new lead or what I could post here to clue us in, I'll gladly oblige.
 Mentor P: 20,409 AFAIK, the compiler doesn't automatically set breakpoints. Whatever, your open statement doesn't look right to me, especially that form = "..." part. Here's a link to a page that has several examples of open statements. Try modifying your open statement and see if that makes a difference. http://www.livephysics.com/computati...-handling.html For additional examples, you can do what I did, which was enter "fortran open" in the browser.
P: 3,007
 Quote by Mark44 AFAIK, the compiler doesn't automatically set breakpoints. Whatever, your open statement doesn't look right to me, especially that form = "..." part. Here's a link to a page that has several examples of open statements. Try modifying your open statement and see if that makes a difference. http://www.livephysics.com/computati...-handling.html For additional examples, you can do what I did, which was enter "fortran open" in the browser.
In addition to the link Mark44 provided, I have also found this site to be infinitely helpful.
Mentor
P: 20,409
Here's another link to a page with more than you want to know about the OPEN statement - http://www.hpc.unimelb.edu.au/doc/f90lrm/lrm0545.htm.

This page describes the FORM parameter, which I didn't remember using (it's been a long while since I did any Fortran programming...).

I don't know if you noticed it, but there's an extra space in the code you showed (in 'format ted'). If that's actually in your code, it's probably what's causing the compiler to complain.
 Quote by Rowdy5000 open(10,file='input',status='unknown',form='format ted')
 P: 5 Thanks to everyone for the useful links and support with this. I actually resolved this finally by toggling status in the open statement to 'old'. It didn't really make sense to me based upon what I'd read about the status character, but I tried this and it worked.

 Related Discussions Engineering, Comp Sci, & Technology Homework 31 Programming & Computer Science 5 Programming & Computer Science 2 Programming & Computer Science 0 Programming & Computer Science 2