Хорошая практика диктует, что аргументы подпрограммы в Fortran должны иметь определенный намерение (т.е. intent(in)
, intent(out)
или intent(inout)
, как описано этот вопрос):
subroutine bar (a, b)
real, intent(in) :: a
real, intent(inout) :: b
b = b + a
...
Однако не указывается намерение Fortran:
subroutine bar (a, b)
real, intent(in) :: a
real :: b
b = b + a
...
Существуют ли какие-либо реальные различия, кроме проверки времени компиляции для аргумента, указанного как intent(inout)
, и аргумента без указанного намерения? Есть ли что-нибудь, о чем я должен беспокоиться, если я доработаю намерения до более старшего, без намерения, кода?