Thread Closed

Fortran question, read from file

 
Share Thread Thread Tools
Jul1-09, 01:57 PM   #1
 

Fortran question, read from file


Hello. I'm completely new to programming, and I'm having some troubles with a Fortran program I'm writing.

I have an input file containing three columns, where each column contains a couple of cartesian coordinates (column 1 contains various x coordinates, and so on). What I would like my program to do is to keep one (or two) coordinate constant, while varying the rest. The relevant part of my code looks like this:

open(11, file="filnamn")
do i=1,N
read(11, *) 1, 2, 3
...

Here all the columns are read. But if I want the program to read only column 2 and 3 I can't write

read(11,*) 2, 3

since this of course would make it read column 1 and 2. So my question is: How can I make the program read a specific column?
 
PhysOrg.com
PhysOrg
science news on PhysOrg.com

>> Heat-related deaths in Manhattan projected to rise
>> Dire outlook despite global warming 'pause': study
>> Sea level influenced tropical climate during the last ice age
Jul1-09, 09:42 PM   #2
 
Recognitions:
Gold Membership Gold Member
You need to learn how to use fromatted read statements. What you are using now is free format reading.
Example:
read(11,100)x_coordinate,y_coordinate
100 format(3x,F12.9,3x,F12.9)

this will skip 3 spaces and read a real number in the format nn.nnnnnnnnn then skip another 3 spaces and read another real number in the format nn.nnnnnnnnn
Take some time to learn different formats
 
Jul2-09, 06:45 AM   #3
 
Recognitions:
Science Advisor Science Advisor
Just read all three each time anytimes, but keep the previous values stored
Code:
DO n=1,nPts
 READ(11,*) A(n),B(n),C(n)

 IF (whatever) THEN
   A(n) = Alast
 END IF

 Alast = A(n)
 Blast = B(n)
 Clast = C(n)

END DO
Something like that
 
Jul4-09, 04:51 PM   #4
 

Fortran question, read from file


Thanks for trying to help me, guys. I found out that I was on the wrong track, though.
 
Jul4-09, 08:23 PM   #5
 
I program in c++ however I have used fortran. If you have a pointer with the
address of the starting data ( your mem mapped data) write a struct which
coresponds to the data i.e. struct{
 
Jul4-09, 08:32 PM   #6
 
I program in c++ however I have used fortran. If you have a pointer with the
address of the starting data ( your mem mapped data) write a struct which
coresponds to the data i.e. struct memmap {
int a
float b
double int
+,
ect...
}
Then point the struct to the starting address and if you created the struct to
match your data your finished. I don't know the fortran syntax for a struct of hand.
however you should be able to find that. Trick is declaring it a pointer.
If all goes wrong write a c routine then link it via a call from fortran. You can also
write an assembler interface between a C routine and fortran

Geo.
 
Thread Closed
Thread Tools


Similar Threads for: Fortran question, read from file
Thread Forum Replies
Fortran read Programming & Comp Sci 9
Fortran: how do you read from a memory-mapped file? Programming & Comp Sci 1
Fortran - How to retrieve read near middle or end of large file quickly. Programming & Comp Sci 2
Deleting a file that "can not read from the source file or disk" Computers 13