Передача аргументов в исполняемый файл из командной строки

Я пытаюсь передать аргументы исполняемому файлу Fortran из командной строки. Пример программы, которая достигает этого на C, (взято из здесь) :

#include <stdio.h>

int main (int argc, char *argv[])
{
  int count;

  printf ("This program was called with \"%s\".\n",argv[0]);

  if (argc > 1)
    {
      for (count = 1; count < argc; count++)
    {
      printf("argv[%d] = %s\n", count, argv[count]);
    }
    }
  else
    {
      printf("The command had no other arguments.\n");
    }

  return 0;
}

Вывод этой программы:

This program was called with "./fubar".
argv[1] = a
argv[2] = b
argv[3] = c

Теперь мой вопрос: как мне написать эту программу (и, следовательно, эту функциональность) на Фортране? Я погуглил, и кажется, что только Fortran 2003 имеет функцию передачи аргументов исполняемым файлам (правильно ли это)?


person seb    schedule 09.11.2013    source источник
comment
Конечно, доступ к аргументам командной строки был стандартизирован только в Fortran 2003, но все широко используемые компиляторы реализовали эту функцию. Вы пишете так, как будто это было в 2004 году или около того. Попробуйте выполнить поиск «fortran получить аргументы командной строки»   -  person High Performance Mark    schedule 09.11.2013
comment
Спасибо. Я сейчас изучаю Фортран, поэтому, когда я гуглю этот материал, иногда бывает нелегко судить о результатах. Но ваше предложение очень полезно!   -  person seb    schedule 09.11.2013


Ответы (1)


Для справки в будущем, как указывает @High Performance Mark выше, это довольно легко сделать в Fortran 2003. Приведенный ниже пример кода взят из здесь и показывает, как:

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

        i = 0
        DO
          CALL get_command_argument(i, arg)
          IF (LEN_TRIM(arg) == 0) EXIT

          WRITE (*,*) TRIM(arg)
          i = i+1
        END DO
      END PROGRAM
person seb    schedule 09.11.2013
comment
очиститель для использования..COMMAND_ARGUMENT_COUNT(). Почему в мире комитет по стандартам просто не принял стандарт де-факто getarg(), iargc() бьет меня.. - person agentp; 09.11.2013
comment
извините, если это было слишком кратко... я имел в виду, что было бы лучше использовать счетчик аргументов в качестве ограничения цикла вместо использования этой конструкции if()exit - person agentp; 10.11.2013
comment
@George, не волнуйся! Вот так я учусь у практиков, т.е. у вас :-)! Спасибо за указание на это. - person seb; 10.11.2013