У меня есть программа, которая имеет значение в переменной. Как только значение установлено, я хочу вызвать другую программу и использовать значение переменной, чтобы определить, куда идти в новой программе. Кто-нибудь знает, как это сделать?
Можете ли вы передать значение из одной программы на Фортране в другую программу на Фортране?
Ответы (2)
Если у вас есть компилятор Fortran 2008, у вас будет стандартная подпрограмма execute_command_line
. Для этого требуется, среди прочего, строковый аргумент, представляющий команду для выполнения (вместе с любыми аргументами команды), так что вы можете довольно легко выполнить другую программу на Фортране, которая считывает аргумент командной строки. Эта вызываемая программа могла использовать подпрограмму Fortran 2003 get_command_argument
для обработки командной строки.
Даже если ваш компилятор не (полностью) совместим с Fortran 2008, вы можете обнаружить, что он либо реализует эту встроенную процедуру, либо предоставляет (нестандартную) альтернативу. Ваша документация по компилятору просветит вас.
execute_command_line
, вы можете попробовать использовать нестандартную подпрограмму system
, как в call system('myOtherFortranProgram')
.
- person milancurcic; 27.11.2013
Я не знаю о фортране. Но я бы сделал это с помощью аргументов командной строки. Не могу придумать язык, который их не принимает. И до тех пор, пока это все ввод и нет вывода, этого должно быть достаточно. Кроме того, вы можете выполнять простые тестовые прогоны программы, которая принимает входные данные, потому что вы можете просто запустить ее с тестовыми входными данными из командной оболочки.
Недостатком является то, что вам нужно преобразовать ваши данные в строки и проанализировать их в другой программе. Это не так важно для простых типов, но может быть неприятно для сложных данных.
Для сложных данных вы можете записать в файл, указать путь к файлу с помощью аргумента командной строки и прочитать файл в другой программе. Файловый подход также позволяет другой программе возвращать обратную связь в том же файле.
Вот поток SO в командных строках в фортране: Fortran: `READ(*,*)` != Аргументы командной строки. Как использовать аргументы командной строки?
Редактировать: я изменил формулировку выходной части с «печатать ваши данные в виде строки» на «преобразовать ваши данные в строки». Эта часть вместе со ссылкой подразумевала предложение вывести данные на экран и прочитать их оттуда в другой программе. Хотя это тоже может быть решением, оно не было задумано.
get_command_argument
. Для получения дополнительной информации вы должны использовать Google execute_command_line Fortran.
- person No answer; 03.12.2013