Subclipse, потому что, по крайней мере, это работает.
Подрывной был блок сбоя для меня до сих пор. Это не играло бы по правилам со всеми моими старыми проектами, которые я проверил с Subclipse.
1 - дескриптор файла, который вы должны открыть с помощью правильного вызова open. 82 - это метка, которая ссылается на формат, означающий, как вы будете сообщать данные с точки зрения визуального форматирования.
program foo
implicit none
integer :: i
double precision :: a
write (*,*) 'give me an integer and a float'
read (*,82) i,a
write (*,82) i,a
82 format (I4, F8.3)
end program
В этом примере программа принимает от стандартного ввода (чей номер единицы не указан, поэтому я поставил * ) целое число и значение с плавающей запятой. формат говорит, что целое число занимает первые четыре столбца, тогда у меня есть число с плавающей запятой, которое остается в 8 столбцах, с 3 цифрами после десятичной точки
Если я запускаю программу сейчас, и я не следую точно этому формату, программа будет жаловаться и выйдет из строя, потому что первые 4 столбца должны представлять целое число (из-за формата I4) и «5 3». не является допустимым целым числом
$ ./a.out
give me an integer and a float
5 3.5
At line 7 of file test.f (Unit 5)
Traceback: not available, compile with -ftrace=frame or -ftrace=full
Fortran runtime error: Bad value during integer read
. Однако правильная спецификация (обратите внимание на три пробела перед числом 5) будет выполнять правильную операцию (с небольшим допуском, это ' s not that strict)
$ ./a.out
give me an integer and a float
5 3.5
5 3.500
$
Он читает из блока 1, используя формат, указанный в операторе с номером 82.
Он читает из «единицы» (открытого файла) номер 1, в соответствии с оператором FORMAT на метке 82. Однако, поскольку оператор не перечисляет никаких переменных, ему некуда поместить данные это чтение, которое вряд ли поможет; READ (1,82) FOOBAR
более полезно помещать данные, которые он читает, в переменную FOOBAR.