Как показано в следующем коде, который я использую для практики Фортрана с фиксированной формой (потому что код, который я пытаюсь выучить, является фиксированной формой с Фортрана), оператор 4-го формата и чтение из файла 1 были добавлены заново. До добавления этих операторов код работал должным образом, но теперь компилятор Intel ifort без дополнительных флагов не скомпилирует оператор 4-го формата и выдаст следующую ошибку:
fortPractice.for(18): error #5082: Syntax error, found FORMAT_ELEMENT 'format' when expecting one of: <END-OF-STATEMENT> ;
4 format(i6,2x)
--------------^
fortPractice.for(26): error #6052: This label has not been defined as a FORMAT label.
write(2,3)
----------------------------------^
Код:
c This is a script for practicing Fortran codes
program fortPractice
implicit none
integer :: x(0:5),y(2:7)
integer :: nph(1:6)
real :: z(4:9)
integer :: i
OPEN(unit=1,file='test.txt',status='old')
read(1,*) nph
close(unit=1)
open(unit = 2, file = 'output.txt')
2 format(i3,2x,i3,2x,2e11.2)
3 format(1x,78('*'))
4 format(i6,2x)
do i = 0,5
x(i) = i;
y(i+2) = i+2;
z(i+4) = x(i)**2 + y(i+2)**2
z(i+4) = sqrt(z(i+4)) + 10000
write(2,2) x(i),y(i+2),z(i+4)
write(2,3)
enddo
write(2,*) nph
close(unit = 2)
endprogram fortPractice
Выход - файл, созданный программой. test.txt содержит только ряд чисел: 1 2 3 4 5 6
Когда я комментирую или удаляю оператор 4-го формата, код компилируется и запускается, как и ожидалось. Поскольку я только изучаю, как работает фиксированная форма Fortran, меня просто интересует, почему оператор 4-го формата не скомпилируется.
Edit:
Я заменил все вкладки пробелами, и программа с некоторыми другими изменениями, показанными ниже, теперь может компилироваться, но программа не создает выходной файл, вероятно, возникла некоторая ошибка времени выполнения:
Редактировать 2:
Неважно, я забыл изменить идентификаторы файлов.
Спасибо всем!