Требование, что бинарный файл находится в каком-то определенном каталоге, кажется мне странным.Пока бинарный файл найден в PATH, все должно работать.Вместо этого вы можете попробовать прочитать файл данных из текущего рабочего каталога, то есть каталога, в котором находится пользователь при запуске программы.
Если вы не хотите, чтобы пользователи всегда копировалиФайл данных вокруг вас может найти несколько мест по умолчанию, а затем использовать первое место, где находится файл, например, текущий рабочий каталог, затем $ HOME / .your_program / file.dat и, наконец, / usr / local / share /your_program_name / file.dat или что-то в этом роде.
Редактировать Если вы, однако, хотите продолжить этот неправильный путь, по крайней мере в Linux вы можете использовать readlink () (вам, вероятно, для этого нужно создать оболочку C, см.Привязка ISO C в последних компиляторах Фортрана) для проверки символической ссылки / proc / self / exe.
Кроме того, GETARG не является частью стандарта Фортрана, поэтому вы полагаетесь на расширение поставщика (которое по общему признанию)довольно широко поддерживается).Начиная с Fortran 2003 стандартной функцией для этого является встроенная функция GET_COMMAND_ARGUMENT.