1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Homework Help: Fortran element by element array multiplication

  1. Jan 10, 2012 #1
    1. The problem statement, all variables and given/known data


    I'm having a problem in multiplying two vectors together in a specific way in Fortran. I can do it in Matlab, but can't work out how to do it in Fortran.

    The problem is that i want to multiply two vectors together, but only each element by it's corresponding element in the other vector. In Matlab you simply use A.*B which works perfectly.

    2. Relevant equations

    For example if A = [1 2 3]'

    and B = [4 5 6]'

    Then A.*B = [4 10 18]

    3. The attempt at a solution

    Any attempt i make in Fortran tries to multiply all the elements together (usually by dot product etc), but i just want the first element multiplied by the first element, and then the second mulitplied by the second etc.

    Sorry about the strange formatting, i tried to crowbar this question into the template...
    Last edited by a moderator: Jan 10, 2012
  2. jcsd
  3. Jan 10, 2012 #2


    Staff: Mentor

    Assuming that all variables and the three arrays are declared and that A and B are initialized, this should work.
    Code (Text):

    N = 3
    DO I = 1, N
      C(I) = A(I) * B(I)
    END DO
  4. Jan 11, 2012 #3
    Ah yes, that would work. Although i'm surprised there isn't a function for it.

    Thanks a lot though!
  5. Jan 11, 2012 #4
    Vector times vector can also be a scalar, 32.
  6. Jan 11, 2012 #5


    User Avatar
    Homework Helper

    If you are using at least Fortran 90, I believe the following will work:

    C = A*B


    C(1:N) = A(1:N)*B(1:N)

    The 1st version assumes A,B,C have the same dimension. The 2nd version is safer.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook