Constructing an array


Taiseer
01-13-2011, 02:32 PM
Dear all,

I have 399 number written as one columns in an ascii file.
How can I write a matrix from them.
The dimension of the matrix is 19X21.

Thanks in advance

davekw7x
01-15-2011, 09:17 AM
I have 399 number written as one columns in an ascii file...The dimension of the matrix is 19X21.
Declare the array and make nested loops to read the elements.

For example, if the array were 2x3:

PROGRAM TestReading

IMPLICIT NONE
INTEGER, PARAMETER :: ReadUnit = 7
INTEGER, PARAMETER :: NumRows = 2
INTEGER, PARAMETER :: NumCols = 3

REAL x(NumRows, NumCols)
INTEGER i, j

open(ReadUnit, file = 'data.txt', status = 'old')
do i = 1,NumRows
do j = 1, NumCols
read(ReadUnit, *) x(i,j)
end do
end do

do i = 1, NumRows
do j = 1, NumCols
write(*, '("x(",I0,",",I0, ") = ", 1pe14.6)') i,j, x(i,j)
end do
end do

END PROGRAM TestReading


Here's my data.txt file:

1
2
3
42
3.1415926
-999


And here's the output (GNU gfortran version 4.1.2)

x(1,1) = 1.000000E+00
x(1,2) = 2.000000E+00
x(1,3) = 3.000000E+00
x(2,1) = 4.200000E+01
x(2,2) = 3.141593E+00
x(2,3) = -9.990000E+02


Regards,

Dave

Footnote
If you don't have a textbook, I respectfully suggest that you find an on-line tutorial that will introduce to Fortran fundamentals. I'm thinking it might be more time-effective than posting a request for help on a forum and waiting (and hoping) for a helpful response.

I mean, it's always OK to ask, but...

Just poke around the web and find a tutorial that makes sense to you. There are lots of them out there. First hit from google gave this: http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/fortran.html