В настоящее время я использую вызовы командной строки оболочки из моей программы на языке Fortran, используя нестандартную встроенную процедуру SYSTEM (аналогичную встроенной в Fortran 2008 EXECUTE_COMMAND_LINE):
CALL SYSTEM(commandStr)
где commandStr - строка символов, содержащая оболочкуКоманда, которую я хочу выполнить.На данный момент я не знаю о прямом способе возврата вывода commandStr, а только о его состоянии возврата.Итак, что я сейчас делаю - это записываю вывод в файл, а затем читаю файл из программы Fortran.Пример:
CALL SYSTEM('sed ''s/,//g'' myFile > dummyFile')
, если я хочу удалить запятые из myFile.Затем я использую OPEN и READ, чтобы получить содержимое dummyFile.
Это прекрасно работает, однако я обеспокоен записью / чтением файлов с диска, особенно если я делал это в длинном цикле и если вывод commandStrбыл большой.Есть ли способ перенаправить вывод commandStr в буфер памяти (не на жесткий диск), к которому я мог бы получить доступ непосредственно из моей программы на Фортране (возможно, через определенный номер UNIT)?