Sunday 15 August 2010

arrays - Fortran 90 Reading in Characters and Integers from a data file -



arrays - Fortran 90 Reading in Characters and Integers from a data file -

ok, in programme i'm supposed take in name of info file user open , read contents. when open , read characters end beingness ****** , integers end beingness 0. idk if it's how i'm reading in file or format?

the file contain this: (where number of cities first number)

4 sandiego 0 350 900 1100 phoenix 350 0 560 604 denver 900 560 0 389 dallas 1100 604 389 0

so far code first take in first number on every firstnumber * + pass supposed go character array city. rest of numbers storing integer array, want integer matrix called d_table couldn't think of way on read.

program p4 implicit none integer :: number, status, i, j, k, permutation = 0, distance = 0, distance = 999999 character(50) :: filename ! filenames longer 50 truncated character(20), dimension(10) :: city integer, dimension(100) :: temp integer, dimension(10,10) :: d_table integer, dimension(10) :: path, best_path write (*, '(1x,a)', advance="no") "enter filename: " read *, filename ! open file created , read contents open(unit=15, file=filename, status="old", action="read",& iostat=status) if(status /= 0) print *, "error, not open file reading." stop end if read (unit=15, fmt = 100, iostat=status) number j = 0 k = 0 = 0, number*number if(i == j*number+j) read (unit=15, fmt = 200, iostat=status) city(j) j = j + 1 else read (unit=15, fmt = 100, iostat=status) temp(k) k = k + 1 end if end k = 0 = 0, number j = 0, number d_table(i,j) = temp(k) k = k + 1 end end 100 format(i6) 200 format (a) end programme p4

this line

do = 0, number*number

looks wonky me; loop executed 17 times. certainly want read number groups of 5 lines, each grouping beingness 1 city name followed 4 integers ? case little loop nest, like

do ix = 1, number read(15,*) city(ix) jx = 1, 4 read(15,*) d_table(ix,jx) end end

given such simple input file format there's no need bother format statements, list-directed input work fine.

i can't see point of index arithmetic code doing, perhaps i've missed something.

arrays integer fortran character

No comments:

Post a Comment