Как получить аргументы командной строки в OpenVMS Fortran?

Мне нужно реализовать c-код в стандарте fortran 90, и я остановился на следующей проблеме. Как получить и использовать аргументы командной строки. я нашел

GET_COMMAND_ARGUMENT

получить арг

Но это не работает в системе openvms с компилятором fortran 90. Есть ли другой способ получить аргументы командной строки в Fortran?

Пример на С

   int main(int argc, char **argv)
{
  if (argc > 1)
....
}

Пример (который не работает

ILINK-W-NUDFSYMS, 2 неопределенных символа:
%ILINK-I-UDFSYM, GETARG
%ILINK-I-UDFSYM, IARGC
%ILINK-W-USEUNDEF, неопределенный символ, на который ссылается IARGC )

PROGRAM bulk1
    INTEGER :: i
    CHARACTER(len=32) :: arg

    DO i = 1, iargc()
    CALL getarg(i, arg)
    WRITE (*,*) arg
    END DO
END PROGRAM

person Anton Golovenko    schedule 17.09.2020    source источник


Ответы (2)


Как получить доступ к командной строке программы? вероятно, будет занимать первое место в любом FAQ, связанном с Fortran. К сожалению, столь же частый ответ: «Это зависит». Вплоть до Fortran 95 включительно не существовало стандартного метода доступа из командной строки. Хотя стандарт F2003, наконец, отвечает этому требованию, разумно предположить, что компиляторы F2003 не будут широко использоваться в течение некоторого времени. Тем временем это оставляет сообществу Fortran существующую смесь противоречивых решений на несколько лет вперед.

Вы можете использовать эту библиотеку http://www.winteracter.com/f2kcli/index.htm

person Anton Golovenko    schedule 17.09.2020

Если у вас есть лицензии на оба компилятора, вы можете рассмотреть возможность создания основной программы на C, вызывающей сервисную функцию Fortran.

Относительно простой способ получить командную строку, хотя и без дальнейшего разбора на «слова», состоит в том, чтобы вызвать специальную функцию OpenVMS LIB$GET_FOREIGN.

Проверьте: http://computer-programming-forum.com/49-fortran/e047637fc421ace6.htm

Удачи. Хайн.

person Hein    schedule 18.09.2020