message d'erreur fortran90
Bonjour tout le monde,
voilà je suis entraine de faire un programme qui calcule le produit matrice vecteur sachant que ma matrice a sept diagonales et quand je compile j'aurai le message d'erreur "Invalid form of array reference" si quelqu'un peut m'expliquer ce message d'erreur je serai vraiment reconnaissante
merci d'avance
message d'erreur fortran90
Merci __dardanos__ :)
en fait ma matrice est la suivante: (exemple on prend n = 5)
1 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0
0 5 -4 0 0 2 -3 0 0 0
-5 0 5 -4 0 -3 2 -3 0 0
4 -5 0 5 -4 0 -3 2 -3 0
0 4 -5 0 5 0 0 -3 2 -3
0 0 4 -5 0 0 0 0 -3 2
j'ai stocké la matrice par ligne et voilà mon code
program matrice
implicit none
integer, dimension( : , : ), allocatable :: mat1
integer, dimension( : ), allocatable :: pmv
integer, dimension( : ), allocatable :: u
integer :: n,i
print*,'entrer une valeure de n:'
read*, n
allocate(mat1(2*n,2*n))
allocate(u(2*n))
allocate(pmv(2*n))
!initialisation
mat1(:,:) = 0
mat1(1,n+3:2*n) = 5
mat1(2,n+2:2*n) = -4
mat1(3,n+1:2*n-1) = 4
mat1(4,n+1:2*n-2) = -5
mat1(6,1:n)=1
mat1(6,n+1:2*n)=2
mat1(5,n+2:2*n)=-3
mat1(7,n+1:2*n-1)=-3
print*,'la matrice est: ',mat1
print*,'entrer un vecteur u'
read*,u
do i =1,n
pmv(i) = mat1(6,i)*u(i)
end do
pmv(n+1) = mat1(1,n+3)*u(2) + mat1(2,n+2)*u(3) + 4*u(n) + mat1(6,n+1)*u(n+1) + mat1(7,n+1)*u(n+2)
pmv(n+2) = mat1(4,n+2)*u(1) + mat1(1,n+3)*u(3) + mat1(2,n+2)*u(4) + mat1(5,n+2)*u(n+1) + mat1(6,n+2)*u(n+2) + mat1(7,n+2)*u(n+2)
do i = n+3, 2*n-2
pmv(i) = mat1(3,i)*u(i-n-2) + mat1(4,i)*u(i-n-1) + mat1(1,i)*u(i-n+1) + mat1(2,i)*u(i-n+2) + mat1(5,i)*u(i-1) + mat1(6,i)*u(i) + mat1(7,i)*u(i+1)
end do
pmv(2*n-1) = mat1(3,2*n-1)*u(n-3) + mat1(4,2*n-2)*u(n-2) + mat1(1,2*n-1)*u(n) + mat1(7,2*n-1)*u(2*n-2) + mat1(6,2*n-1)*u(2*n-1) + mat1(5,2*n-1)*u(2*n)
pmv(2*n) = (-4)*u(1) + mat1(3,2*n-1)*u(n-2) + mat1(4,2*n-2)*u(n-1) + mat1(5,2*n) * u(2*n-1) + mat1(6,2*n)*u(2*n)
print*,'produit = ',pmv
deallocate( mat1, u, pmv )
end program matrice
message d'erreur fortran90
délosée la matrice est la suivante
1 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0
0 5 -4 0 4 2 -3 0 0 0
-5 0 5 -4 0 -3 2 -3 0 0
4 -5 0 5 -4 0 -3 2 -3 0
0 4 -5 0 5 0 0 -3 2 -3
-4 0 4 -5 0 0 0 0 -3 2
message d'erreur fortran90
C bon j'ai trouvé mon erreur en tous cas merci __dardanos__
message d'erreur fortran90
oui c'était ça le problème j'ai fait la même chose que vous j'ai utilisé le &
merci une autre fois