Hello everyone, i am dealing with the code which can help me to solve fluid dynamics problems with using LBM methods. Anyways, since i am beginner on Fortran i couldn't solve the rank mismatch error, i think it is easy one but i just cant fix it, i am waiting for your help. Here is the problem part;(adsbygoogle = window.adsbygoogle || []).push({});

subroutine collesion(u,v,f,feq,rho,omega,w,cx,cy,n,m,tm,tminv,stmiv)

real f(0:8,0:n,0:m)

real feq(0:8,0:n,0:m),rho(0:n,0:m)

real w(0:8), cx(0:8),cy(0:8)

real u(0:n,0:m), v(0:n,0:m)

real tm(0:8,0:8),tminv(0:8,0:8),stmiv(0:8,0:8)

real fmom(0:8,0:n,0:m),fmeq(0:8,0:n,0:m)

!calculate equilibrium moments

do i=0,n

do j=0,m

fmeq(0,i,j)=rho(i,j)

fmeq(1,i,j)=rho(i,j)*(-2.0+3.0*rho(i,j)*(u(i,j)*u(i,j)+v(i,j)*v(i,j)))

fmeq(2,i,j)=rho(i,j)*(1.0-3.0*rho(i,j)*(u(i,j)*u(i,j)+v(i,j)*v(i,j)))

fmeq(3,i,j)=rho(i,j)*u(i,j)

fmeq(4,i,j)=-rho(i,j)*u(i,j)

fmeq(5,i,j)=rho(i,j)*v(i,j)

fmeq(6,i,j)=-rho(i,j)*v(i,j)

fmeq(7,i,j)=rho(i,j)*(u(i,j)*u(i,j)-v(i,j)*v(i,j))

fmeq(8,i,j)=rho(i,j)*u(i,j)*v(i,j)

end do

end do

the error is Warning: Rank mismatch in argument 'rho' at (1) (rank-2 and scalar)

i guess it's because fmeq and rho have different ranks but how i can write in a proper way?

Thank you for now.

**Physics Forums | Science Articles, Homework Help, Discussion**

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

# Rank mismatch in argument (Fortran 90)

**Physics Forums | Science Articles, Homework Help, Discussion**