Предположим, у меня есть следующий код
IF (a.eq.0.or.M(a)) THEN
с целым числом и M (1: 3) массивом логических элементов.Если a равно 0, то я ожидаю, что первый тест его поймает, а второй никогда не будет оценен.Однако, если я использую компилятор intel fortran и компилирую с
-check all
, я получаю ошибку сегментации.Без этой опции отладки ошибка не возникает.Это стандартное поведение?Для многих языков в руководстве прямо сказано, что для
IF (A.or.B) THEN
, если A истинно, то B не оценивается.Требует ли стандарт Фортрана, чтобы A и B явно оценивались, даже если это не влияет на конечный результат?