Bonsoir tout le monde

pour mon TP de calcul scientifique, je dois écrire un programme (en fortran) qui factorise une matrice A tridiagonale en LU. J'ai donc voulu stocker chacune des trois diagonales dans un vecteur (respectivement up, low et diag). Par contre, au moment de la compilation j'ai des erreurs du type:
error: rank mismatch in array reference
lorsque j'avais écrit par exemple
do i=1,n
diag(i)=A(i,i)
end do.

Je débute en fortran, pourriez vous me donner une piste pour comprendre mon erreur ?
Peut être que j'ai mal utilisé allocate.
Merci beaucoup !