Fortran Retake: Reading an existing file into a fortran code

AI Thread Summary
The discussion focuses on reading data from a file in Fortran, specifically addressing the challenge of excluding negative numbers from input. The original poster successfully opened the file but struggles with filtering out negative values despite attempting to use an IF statement. Contributors suggest checking each value read from the file and skipping negative numbers within the loop. The importance of directly inserting code into the forum instead of attaching documents is also highlighted. The conversation emphasizes the need for clear coding practices to achieve the desired functionality.
angelfaz
Messages
2
Reaction score
0
Thank you very much for the reply. I placed the file in the same directory as the program and opened the file before executing and everything was just perfect. But my other problem is that, in my data, there consists of negative numbers. Is there a way to read the positive inputs without the negative ones? I tried adding an IF statement to the code, but still the negative is being read.
I am attaching the a sample of the code i wrote.
Thanks very much
 

Attachments

Technology news on Phys.org
It's not clear why you don't want to read negative values from your data file.

Can you just test the value read to see if it is less than zero and discard it?
 
OP, here is your code. I don't see the point in attaching a Word document instead of inserting the code directly into the input pane here.
angelfaz said:
I tried adding an IF statement to the code, but still the negative is being read.
Where? I don't see that IF statement in your code. It's pretty simple really - each time you read from the file check to see if the number is negative. If so, skip to the next loop iteration.

Code:
Program rainfall
!Purpose:
!This program calculates the total monthly rainfall and the average by reading in the values from an opened file.
 IMPLICIT NONE
!List of variables:
CHARACTER(len = 20):: filename  !Input file name
CHARACTER(len = 20)::month      !Month to be read
INTEGER::n = 0  !Number of input values.
INTEGER:: ierror  !Status flag of i/o statement
REAL:: x  !An input data value
REAL:: sum_x = 0  ! Sum of input values
REAL:: x_bar = 0  !Average of input samples

!Prompt the user and get the name of file for input
WRITE(*,*)'enter the name of the file:'
READ(*,*) filename

!Prompt the user for the month
WRITE(*,*)' enter the month:'
READ(*,*) month
!Open the input file 
OPEN (Unit = 3, FILE = filename, STATUS = 'OLD', ACTION = 'READ', IOSTAT = ierror)
 !Check to see if the file opened successfully
errorcheck: IF (ierror > 0) THEN
 WRITE(*,*) filename
ELSE
!file opened successfully. Read input values x from the file
DO
   READ ( 3,*,iostat= ierror)  x
IF ( ierror /= 0) EXIT
 n = n + 1
sum_x = sum_x + x         !Calculate sum

END DO

!Calculate the mean rainfall
x_bar = sum_x / real(n)

!Tell user

WRITE(*,*)'Number of data points = ',n
WRITE(*,*)'Monthly total = ', sum_x
WRITE(*,*)'Monthly average = ', x_bar

!Close input file
CLOSE(Unit = 8)

End if errorcheck

End program rainfall
 
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
I have a quick questions. I am going through a book on C programming on my own. Afterwards, I plan to go through something call data structures and algorithms on my own also in C. I also need to learn C++, Matlab and for personal interest Haskell. For the two topic of data structures and algorithms, I understand there are standard ones across all programming languages. After learning it through C, what would be the biggest issue when trying to implement the same data...

Similar threads

Replies
8
Views
1K
Replies
2
Views
1K
Replies
12
Views
3K
Replies
5
Views
5K
Replies
5
Views
2K
Replies
17
Views
6K
Back
Top