Can't Skip missing files in loop

  • Thread starter Thread starter Jahir
  • Start date Start date
  • Tags Tags
    files Loop
Click For Summary
SUMMARY

The discussion focuses on handling missing input files in a Fortran program that processes data in a nested loop. Users are advised to utilize the Fortran error handling mechanism by implementing the 'iostat' option in the 'open' statement to capture file open errors. Specifically, the error number can be checked to determine if a file is missing, allowing the program to skip to the next iteration without terminating. This solution effectively enables continuous processing of available files despite gaps in the sequence.

PREREQUISITES
  • Basic understanding of Fortran programming
  • Familiarity with Fortran file I/O operations
  • Knowledge of error handling in Fortran using 'iostat'
  • Experience with nested loops in programming
NEXT STEPS
  • Explore advanced Fortran error handling techniques
  • Learn about Fortran file I/O best practices
  • Investigate the use of 'do' loops in Fortran for complex data processing
  • Study examples of dynamic file handling in Fortran
USEFUL FOR

This discussion is beneficial for Fortran developers, data analysts using Fortran for simulations, and anyone looking to improve their file handling capabilities in Fortran programs.

Jahir
Messages
2
Reaction score
0
Hi all,

Thanks in advance!
I'm almost new in Fortran, and I'm having some troubles with a Fortran program. I've some input data files named with numerical values like

"Input_A=0.00_B=0.00"
"Input_A=0.10_B=0.01"
"Input_A=0.20_B=0.02"
"Input_A=0.30_B=0.03"
"Input_A=0.40_B=0.04"
...
..
"Input_A=..._B=..."

I've to read this within a do loop and have some calculations and make similar output files. I can read and write the files if and only the sequence has no break. If anyone file is missing in between, the do loop terminates rather to proceed to take the next as input.

The program is somewhat like this:

do A=0.0,1.0,0.1
do B=0.00,0.5,0.01
.
.
.

open (1, file =...)
do i=1,n
read(1,*) x(i), y(i)
end do
.
.
.
.
end do
end do


I want to make the program to proceed to the next iterations, skipping the missing files and to the end of the steps. Can you guys please help me out? Thanks again.
 
Technology news on Phys.org
You can trap the errors when you open the file. Start by doing simething ike

Code:
integer errornumber

open(1, file=... , err = 99, iostat = errornumber)
99 if (errornumber .ne. 0) then
   print *, 'a = ', a, ' b = ', b, ' File open error number ', errornumber
   go to ...
end if

When you know what errornumber you get for a missing file, you can test for it and do what you want.
 
Dear AlephZero,
Thanks a lot. It's working!
 

Similar threads

  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 12 ·
Replies
12
Views
11K
  • · Replies 12 ·
Replies
12
Views
3K
  • · Replies 5 ·
Replies
5
Views
5K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 41 ·
2
Replies
41
Views
5K
  • · Replies 12 ·
Replies
12
Views
2K