Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations KootK on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Fortran 77 program to extract column data-help

Status
Not open for further replies.

mandel2

Bioengineer
Sep 20, 2009
1
Hello,
I need some help with modifying a code in fortran 77. This program is supposed to skip the first two lines and the last line of the sample data and then extract only the date from the date column and write it to an output text file. The program I have now manages to skip the first two lines and extract the column but I cannot seem to figure out how to skip the last line. Any help would be appreciated. As I indicated I have very little programming experience. Thanks.

DATA:

Date Data
mm/dd/yyyy units
01/01/0001 3.08E+02
01/02/0001 9.50E+01
01/03/0001 5.80E+01
01/04/0001 4.60E+01
01/05/0001 3.90E+01
01/06/0001 3.30E+01
01/07/0001 3.00E+01
01/08/0001 2.90E+01
01/09/0001 2.70E+01
01/10/0001 2.50E+01
Total 6.90E+02

CODE:
Program edate
implicit none
character*10 eDate
integer x,y
integer lntop
integer lnend

lnend = 12
lntop = 2

open(unit=5, file="datafllow.txt")
open(unit=6,file="extDate.txt")

do x=1,lntop
read(5,1000)
enddo

do y=1,lnend
read(5,1010) eDate
write(6,1020) eDate
enddo

close(5)
close(6)

1000 format(1x)
1010 format(a10)
1020 format (a10)
stop
end
 
Replies continue below

Recommended for you

Is it as simple as
lnend = 10
?

Or am I missing something?
 
You have several options:
> Read to the end of the file to find the end of file, then re-read until the next to the last line

> If you already know the size of the file, then, as posted above, you read one less line

> Do as you did before, except that you save the data into an array, and write out one fewer line

I don't really see much programming difficulty with any of the options.

TTFN

FAQ731-376
 
You could try using end=
Code:
...
      do x=1,lntop
         read(5,1000)
      enddo

10    continue
         read(5,1010, end=20) eDate
         write(6,1020) eDate
         goto 10
20    continue

      close(5)
      close(6)
...
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor