Ответ 1
Ваш пример отлично подходит. Их можно отличить ТИП аргументов. Тогда имена не важны. В вашем случае тип аргумента cur
отличается.
Аргументы с тем же именем могут различаться по типу, виду или рангу (совместимость с TKR).
Пункт указанной статьи состоит в том, что вы не можете различать две конкретные процедуры только с помощью ORDER аргументов. Это связано с тем, что процедуры могут быть вызваны с помощью аргументов ключевого слова в любом порядке. Это можно преодолеть с помощью разных имен для аргументов.
В противном случае объявление более конкретных процедур для общего типа с одинаковыми именами аргументов, но с разными типами/видами/рангами очень распространено и совершенно корректно.
Fortran 2003/2008 добавляет дополнительные возможности для общего разрешения. Также можно различать процедуры с помощью атрибута pointer/allocatable своих аргументов и аргументов фиктивного указателя процедуры.