Намерение Fortran (inout) против намерения пропуска
Хорошая практика диктует, что аргументы подпрограммы в Фортране должны иметь каждое заданное намерение (т.е.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)
и аргумент без указанного намерения? Есть ли что-то, о чем мне следует беспокоиться, если я переоснащаю свои намерения более старым, свободным от намерений кодом?