Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

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

Looping Through Dates

Status
Not open for further replies.

Stangnyc23

Programmer
Jun 4, 2015
3
US
Hi, I am relatively new to Fortran and would like to run a script through multiple files that represent data on different dates. I would like to read in a .csv file with a different date per row, and then replace the input and output file names of my script with each of those dates and run the script. Any help would be greatly appreciated. I've attached the script that I would like to run, where you can see that the input and output files have dates in them that need to change with the dates from the dates from another .csv file (not included in this script).

PROGRAM convert_rfe_bin2asc

REAL*4 rfe(751,801),arr(3,601551)
real*4 lat,lon
INTEGER:: i,j,ind
character*30:: input_file

input_file="C:\all_products_20010213.bin"

do i = 1,751
do j = 1,801
rfe (i,j) = -999
end do
end do

open (unit=22,file=input_file,access="direct",
1 convert='big_endian',status="old",recl=751*801*4)
read (22, rec=1) rfe

open (88,file="C:\WorldCover\Data\Output\output_20010213.csv",
1 access='sequential',status='unknown',form='formatted')

ind=1
lat= -40.0
lon= -20.0
do j=1,801
do i=1,751
arr(1,ind)=lat
arr(2,ind)=lon
arr(3,ind)=rfe(i,j)

write (88,499) arr(1,ind), arr(2,ind), arr(3,ind)
499 format(1X,f6.2,1X,f6.2,1X,f8.2)

ind=ind+1
lon=lon+0.1
end do
lat=lat+0.1
lon=-20.0
end do

END PROGRAM
 
You need to put together the name of the input/output files using what is called "internal write"...basically, you write to a string variable instead of to a unit number.

Or, instead of reading dates from the input file, you could list the actual file names into a single file and read them directly from there...a bit of string manipulation and you can derive the output file name based on the name of the input file.

Putting together file names programmaticly, on-the-fly, has already been discussed here and there; do a search.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top