Ваш пример кода является нормальным логическим if, но с целым числом вместо логического выражения для условия. Некоторые компиляторы (Intel и предшественники - DE C, Compaq) допускают, что в качестве нестандартного расширения gfortran этого не делает. Насколько я знаю, даже с такой опцией, как -fdec
.
См. Неявное целочисленное преобразование <-> логическое в Фортране, если оператор для более.
Что арифметика c if означает, что она выбирает одну из трех ветвей с помощью числовых c меток операторов, вы не можете ставить исполняемые операторы после арифметики c if.
if(integer) label-,label0,label+
Это означает, например, ,
if (i) 10, 20, 30
10 do something
20 do something else
30 do something else