Есть ли способ различить одноименные подпрограммы в двух разных модулях fortran90?

Если мне, к несчастью, придется работать с двумя разными модулями Fortran90, имеющими общее имя подпрограммы, есть ли способ различить эти две подпрограммы?


person bob.sacamento    schedule 22.06.2017    source источник
comment
И, кстати, здесь есть довольно большой потенциал для дубликата, но я еще не проверял. Такие вещи, как использование private и only, должны быть очевидны.   -  person Vladimir F    schedule 22.06.2017
comment
@VladimirF Я проверил аналогичный вопрос, прежде чем публиковать. Ничего не нашел.   -  person bob.sacamento    schedule 22.06.2017
comment
В таком случае смотрите ответ.   -  person Vladimir F    schedule 22.06.2017


Ответы (1)


Вы можете использовать only:

module m1
contains
  subroutine sub
  end subroutine

  subroutine other_m1
  end subroutine
end module

module m2
contains
  subroutine sub
  end subroutine

  subroutine other_m2
  end subroutine
end module

  use m1, only: sub, other_m1
  use m2, only: other2

  call sub
end

Вы также можете переименовать один из них в операторе use:

  use m1
  use m2, some_other_name => sub

  call sub
end
person Vladimir F    schedule 22.06.2017
comment
Второй sol'n как раз то, что мне нужно. Никогда такого раньше не видел. Спасибо. - person bob.sacamento; 22.06.2017