Fortran question, read from file

  • Fortran
  • Thread starter _Andreas
  • Start date
  • #1
144
1
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?
 

Answers and Replies

  • #2
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
 
  • #3
minger
Science Advisor
1,496
2
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
 
  • #4
144
1
Thanks for trying to help me, guys. I found out that I was on the wrong track, though.
 
  • #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{
 
  • #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.
 

Related Threads on Fortran question, read from file

Replies
5
Views
4K
Replies
4
Views
10K
  • Last Post
Replies
2
Views
3K
Replies
7
Views
1K
Replies
1
Views
7K
Replies
2
Views
29K
Replies
4
Views
7K
Replies
4
Views
3K
Top