Allocation dynamique dans une subroutine
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:
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. :ccool: