Fortran: Search value in array


 
Thread Tools Search this Thread
Homework and Emergencies Homework & Coursework Questions Fortran: Search value in array
# 1  
Old 09-17-2012
Fortran: Search value in array

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!

1. The problem statement, all variables and given/known data:

read data set, and search for array value to get avegare


2. Relevant commands, code, scripts, algorithms:

fortran code

hi i have two data sets one(data1) containing

Code:
3
8 2 1 5 7 9
9 2 2 5 7 7
10 3 6 6 6 6

and other(data2) containing

Code:
5 
1 10
5 20
7 30 
6 40
9 50

now i want my program to search the values 1 5 7 9 from (data1) in data 2 column 1 and then take the average of the corresoinding values in column 2, for example for first line of data1 the avg of (1 5 7 9) will be

Code:
(10+20+30+50)/4=27.5

then write

Code:
8 2 27.5

and so on...

3. The attempts at a solution (include all code and scripts):

till now i have written the following program,

Code:
program test
implicit none
integer :: pn,en
integer :: i 
real ,allocatable, dimension (:,:) :: y
integer,allocatable,dimension (:,:) :: ix
REAL ,DIMENSION (:) :: avg(10000000)
open (11, file='data1.dat')
read (11,*) pn
allocate (y(pn,2)) 
do i=1,pn
read(11,*) y(i,:)
enddo
close(11)
 
c *************************
open(12,file='data2.dat')
read (12,*) en
allocate (ix(en,6))
do i=1,en
read(12,*) ix(i,:)
enddo
close(12)
 
c *************************
do i=1,en 
avg(i)=(y(ix(i,3),2)+y(ix(i,4),2)+y(ix(i,5),2)+
& y(ix(i,6),2))/4
end do 
do i=1,en
write(*,*) ix(i,1:2),avg(i)
 
enddo
end program

this gives me output

Code:
8 2 15
9 2 17.5
10 3 0

which is wrong. instead of searching for value it searches for line number .... so what to change in it to search for value not line number

4. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):

University of engineering and technology taxila, Taxila, Pakistan, Engr Ahmed, ME919

Note: Without school/professor/course information, you will be banned if you post here! You must complete the entire template (not just parts of it).

Moderator's Comments:
Mod Comment edit by bakunin: Please view this code tag video for how to use code tags when posting code and data.

Last edited by bakunin; 09-17-2012 at 06:03 AM..
# 2  
Old 09-17-2012
I suppose your goal is to learn FORTRAN, not the task of developing an algorithm for such a simple program. Here is a task how to do it, you can write the program directly from it.

Read the file 2 into a 2-dimensional array as initialisation

Then read data1 line by line. For every line you break the line up into lookup values for the array and use the values you look for (the first column of data2) as index. Remove any lookup value found that way from the line, then total the corresponding values (the column 2 of data2) in a sum. Increment a counter for every value found that way.

At the end of the line divide the total by the counter, output the remaining line and the average and reset both these counters to zero.

I hope this helps.

bakunin
# 3  
Old 09-17-2012
i got little confused... how to " For every line you break the line up into lookup values for the array " ???
# 4  
Old 09-17-2012
Quote:
Originally Posted by timewilltell
i got little confused... how to " For every line you break the line up into lookup values for the array " ???
You read each line of data1. For every line read that way you do:

- break the line at the spaces to get the numbers. For instance:

Code:
8 2 1 5 7 9

-> break at space chars, you get 6 numbers:

Code:
8
2
1
5
7
9

- loop through these numbers left to right (top to bottom), looking up the numbers as values in your first array.

If you know C, have a look at the library function strtok(). You will have to do the same in FORTRAN.

I hope this helps.

bakunin
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Search and replace a array values in perl

Hi, i want to search and replace array values by using perl perl -pi -e "s/${d$i]}/${b$j]}" *.xml i am using while loop for the same. if i excute this,it shows "Substitution replacement not terminated at -e line 1.". please tell me what's wrong this line (1 Reply)
Discussion started by: arindam guha
1 Replies

2. Shell Programming and Scripting

Perl - use search keywords from array and search a file and print 3rd field when matched

Hi , I have been trying to write a perl script to do this job. But i am not able to achieve the desired result. Below is my code. my $current_value=12345; my @users=("bob","ben","tom","harry"); open DBLIST,"<","/var/tmp/DBinfo"; my @input = <DBLIST>; foreach (@users) { my... (11 Replies)
Discussion started by: chidori
11 Replies

3. UNIX for Dummies Questions & Answers

Fortran: Search value in array

hi i have two data sets one(data1) containing 3 8 2 1 5 7 9 9 2 2 5 7 7 10 3 6 6 6 6 and other(data2) containing 5 1 10 5 20 7 30 6 40 9 50 now i want my program to search the values 1 5 7 9 from (data1) in data 2 column 1 and then take the average of the corresoinding... (1 Reply)
Discussion started by: timewilltell
1 Replies

4. Shell Programming and Scripting

Search an array and return index (bash)

Hi all, In bash, is there any way of searching an array and returning the index? For example, how could I write a script that would do the following: >> search note_array=(C D E F G A B) for F return the value 3 (or 4) Thanks, R (5 Replies)
Discussion started by: RMontenegro
5 Replies

5. Shell Programming and Scripting

Search strings from array in second file

I have a file search_strings.txt filled with search strings which have a blank in between and look like this: S. g. Erh. o. J. v. d. Chijs g. Ehr.I would like to search the strings in the second given Textfile.txt and it shall return the column number. Can anybody help with the correct... (3 Replies)
Discussion started by: sdf
3 Replies

6. Shell Programming and Scripting

awk search strings from array in textfile

I am wanting to take a list of strings and loop through a list of textfiles to find matches. Preferably with awk and parsing the search strings into an array. // Search_strings.txt tag string dummy stuff things // List of files to search in textfile1.txt textfile2.txt The... (6 Replies)
Discussion started by: sdf
6 Replies

7. Shell Programming and Scripting

how to search array and print index in ksh

Hi, I am using KSH shell to do some programming. I want to search array and print index value of the array. Example.. nodeval4workflow="DESCRIPTION ="" ISENABLED ="YES" ISVALID ="YES" NAME="TESTVALIDATION" set -A strwfVar $nodeval4workflow strwfVar=DESCRIPTION=""... (1 Reply)
Discussion started by: tmalik79
1 Replies

8. UNIX for Dummies Questions & Answers

search a value in array

Hi, I am just writing a program to check a value in the given array. The program expects a parameter which is checked against the array list and if it found then a variable is set else should exist saying the value does is not found in the array.kindly help me. (4 Replies)
Discussion started by: pals70423
4 Replies

9. Shell Programming and Scripting

PHP: Search Multi-Dimensional(nested) array and export values of currenly worked on array.

Hi All, I'm writing a nagios check that will see if our ldap servers are in sync... I got the status data into a nested array, I would like to search key of each array and if "OK" is NOT present, echo other key=>values in the current array to a variable so...eg...let take the single array... (1 Reply)
Discussion started by: zeekblack
1 Replies

10. Shell Programming and Scripting

search of string from an array in Perl

Hi All I want to search a string from an array in Perl. If a match occurs, assign that string to a variable else assign 'No match'. I tried writing the script as follows but it's in vain. Please help me.. #!/usr/bin/perl use strict; my $NER; my @text=("ORG","PER"); ... (4 Replies)
Discussion started by: my_Perl
4 Replies
Login or Register to Ask a Question