×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Change specific array elements from an array column

Change specific array elements from an array column

Change specific array elements from an array column

(OP)
The following question is a repost to this FORTRAN dedicated forum (sorry about that)

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 --> 95

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

RE: Change specific array elements from an array column

CODE

program q
    integer :: c(10,2), i, j 
    c(:,1) = (/(i,i=1,10)/)    ;    c(:,2) = 0    
    write(*,'(I2,2x,I2)') ( (c(i,j),j=1,2), i=1,10 )
    where ( c(:,1) >=3 .and. c(:,1) <=6 )  c(:,2) = 1
    write(*,'(I2,2x,I2)') ( (c(i,j),j=1,2), i=1,10 )
end program q 

RE: Change specific array elements from an array column

(OP)
Hi gsal! I found it myself and posted my reply to the other thread. Just when I was thinking to join this thread and delete my post, I came across your reply. Nice coding there mate! Thank you very much for your effort!

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members! Already a Member? Login



News


Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close