Je voudrais passer la dimension de tableau comme une variable fictive à un sous-programme. Le tableau lui-même est dans un bloc commun. Voici le code:Passe la taille du tableau de bloc commun au sous-programme dans Fortran
PROGRAM test
integer i, nn
integer PARAMETER(Nt=10)
real x(Nt), y(nt), z(Nt)
Common /Bdat/ z
nn=Nt
do i=1,Nt
x(i)=i+1
z(i)=i-1
enddo
call estimate(x,y,nn)
print*, y
return
end
subroutine estimate(x,y,jj)
integer i,jj
real x(jj), y(jj), zq(jj)
COMMON /Bdat/ zq
do i=1, jj
y(i)=x(i)+zq(i)
enddo
return
end
c'est l'erreur que je reçois de la sous-routine:
real x(jj), y(jj), zq(jj)
1
Erreur: Variable 'J.-J.' à (1) dans ce contexte doit être constante
I apprécierait vraiment si quelqu'un pouvait aider à faire cela.
Il est possible de donner une réponse significative à la question, mais pourriez-vous envisager une réponse qui dit: don » t utiliser des blocs communs à cette fin? Fortran a énormément évolué au cours des 30 dernières années. – francescalus
Je ne pense pas que quelqu'un dans son bon sens devrait utiliser Fortran quand Python et MATLAB sont là. Il y a d'anciens codes que les gens doivent revoir de temps en temps. – emperial