Fortran 77: оператор IF, в качестве аргумента которого указана переменная, за которой следует оператор метки
Я сталкивался с этим утверждением на Фортране из модели, написанной на Фортране 77 . Я понятия не имею, что это значит. Был бы рад, если кто-то может пролить свет.
Вот как выглядит код:
ЕСЛИ (NC), 20,20,10
Примечание: NC - это переменная (я думаю), а цифры, которые следуют, являются метками (я думаю).
Мой вопрос: что означает приведенное выше утверждение? Я понимаю, что обычно после оператора "IF" в скобках должен быть аргумент, например (a < 20). Однако в этом случае в скобках есть только переменная.
1 ответ
Это арифметика, если из Фортрана я дней. Больше не доступен с F90. Это прямой перевод инструкции IBM 3 way jump в ассемблере IBM. Не многие машинные архитектуры в настоящее время имеют 3 способа прыжков.
if (x) 10, 20, 30
средства
if (x .lt. 0) goto 10
if (x .eq. 0) goto 20
if (x .gt. 0) goto 30 ! if statement not strictly necessary
Так что в вашем случае это означает
if (nc .le. 0) goto 20
if (nc .gt. 0) goto 10