Что не так с массивом (2:) (:: 2) в Фортране? - PullRequest
0 голосов
/ 28 января 2019

Я изучаю Fortran08 и озадачен, почему я не могу выполнить следующее

integer :: array(8)
READ(*, *) array
array(2:)(::2)

, но следующее прекрасно работает

integer :: array(8)
integer :: temp(7)
READ(*, *) array
temp = array(2:)
temp(::2)

1 Ответ

0 голосов
/ 28 января 2019

Ответ прост, но я не знаю, насколько это полезно.Это просто недопустимый синтаксис Fortran.

Почему это так?Потому что стандарт так говорит.И почему?Потому что комитет разработал это таким образом.Зачем?Вы должны спросить их, но учтите, что может иметь место конфликт с индексированием строкового массива .

Fortran просто не использует последовательные скобки индексации массива, в отличие от C. Синтаксис массива Fortran иC сильно отличается во многих аспектах.

Не достигает ли array(2::2) того, что вам нужно?

...