Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

FORTRAN: condition on array elements in one column changes corresponding elements in other column

Status
Not open for further replies.

Mechaero2006

Aerospace
Jan 26, 2014
29
0
0
GR
Hello all,

although it might sound trivial to more experienced users, I am trying to create a code in FORTRAN (preferably f90 or higher) of a n series x 2 columns matrix, where a condition on some elements of column 1, will change the corresponding elements of column 2 (i.e. only those that have the same "i" with the elements affected by the condition). So far I have managed to do this by creating two (2) column arrays containing the elements and by using a simple "where" command I did what I wanted. Could someone please try to inform me how to perform the same job but without spliting the array into two sub-arrays?

Working example code of what I did follows:

Code:
program test
    implicit none
    integer::elem
    real,dimension(:),allocatable::A
    real,dimension(:),allocatable::B
    integer::i,j                    

    elem = 10      

    allocate(A(elem))
    allocate(B(elem))

    do i=1,10
        A(i)=i
        end do

    do j=1,10
        B(j)=0
        end do

where (A>=3 .and. A<=6) B = 1

    deallocate(A,B)            

end program test

Thank you in advance for your kind assistance.
 
Replies continue below

Recommended for you

Found it:

Code:
program test
implicit none
integer::elem,i
real,dimension(:,:),allocatable::A
elem = 10
allocate(A(elem,2))
FORALL(I = 1:elem) A(I, 1) = i 
FORALL(I = 1:elem) A(I, 2) = 0
print*,A
where (A(:,1)>=3 .and. A(:,1)<=6) A(:,2) = 1 
print*,A
deallocate(A)
end program test
 
Status
Not open for further replies.
Back
Top