Bonjour.

Venant à l'origine du monde du C++, je sais dans ce langage ce que fait le compilateur quand je décide de travailler par référence ou par valeur dans une fonction.

Mais ici, Fortran me pose quelques soucis : dans une subroutine sensée travailler sur des tableaux dynamiques passés en argument que se passe-t-il concrètement en mémoire : le programme travaille-t-il avec les tableaux originaux ou des copies ?

Imaginons que je veuille faire une routine d'allocation de ce type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
subroutine allocate_tableaux(tableau_1,tableau_2,n)
integer,dimension(:),allocatable,intent(inout)::tableau_1
integer,dimension(:),allocatable,intent(inout)::tableau_2
allocate(tableau_1(1:n))
allocate(tableau_2(1:n))
end subroutine allocate_tableaux
Est-ce que cette portion de code fait ce que je veux faire (allouer les tableaux passés en argument en travaillant par référence), ou sinon quelle est la syntaxe correcte ? Est-ce que ce type de choses fait parti du "standard Fortran" et est donc compatible avec gfortran et ifort ?

Merci beaucoup.