Can Fortran read input data from Excel?

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
5 replies · 14K views
yabi
Messages
23
Reaction score
1
I have prepared the coordinate of a pipe layout in excel.
Now I have to input them into a FORTRAN code.
Although I know it is possible to generate these coordinates inside FORTRAN, but working with Excel is much easier for me. Making these coordinate data inside FORTRAN is a very hard work and time consuming for me.

I want to know is there a way to import or read the coordinates I have made in Excel, into Fortran?
 
Physics news on Phys.org
Dear Phinds
Thanks for your reply.
I didn't have enough lock to succeed.
I want to read I,x, z from excel (file='z-dir coordinates.csv') and write them into file='Tpipe-coordinates.txt'
I use following code:

Dimension x(279),z(279)
open (21, file='z-dir coordinates.csv')
open (22, file='Tpipe-coordinates.txt')
y=0.0
DO 1 j=1,279
read (21,100) x(j),z(j)
write (22,101) j,x,y,z(j)
1 continue
100 format(f15.7)
101 format (I5,3f15.7)
close (21)
close (22)
end

But it gives error. It stops at the first read command.
What is wrong?
I don't know how to define tab or next cell in FORTRAN format command?
 
Last edited:
yabi said:
I don't know how to define tab or next cell in FORTRAN format command?

Did you actually save the excel file as a CSV? There ARE no "tabs" or "next cell" in a CSV file, just variables separated by commas.

I don't know FORTRAN so can't help you with that, but you DO have to take the commas into account somehow.
 
Fortran will handle the commas (and tabs) automatically if you use "list format" input like

read (21,*) x(j),z(j)

There are some more bugs in your program, because you are eading x(j) and z(j), but then writing the whole of the x array (just "x", not "x(j)"), an uninitialized variable y, and then z(j). We can't guess what you want to write to the file, but that doesn't look very sensible.