Я изучаю Fortran08 и недоумеваю, почему я не могу выполнить следующие
integer :: array(8)
READ(*, *) array
array(2:)(::2)
, но следующее работает нормально
integer :: array(8)
integer :: temp(7)
READ(*, *) array
temp = array(2:)
temp(::2)
Я изучаю Fortran08 и недоумеваю, почему я не могу выполнить следующие
integer :: array(8)
READ(*, *) array
array(2:)(::2)
, но следующее работает нормально
integer :: array(8)
integer :: temp(7)
READ(*, *) array
temp = array(2:)
temp(::2)
Ответ прост, но я не знаю, насколько это полезно. Это просто недопустимый синтаксис Фортрана.
Почему это так? Потому что так сказано в стандарте. И почему? Потому что комитет так устроил. Почему? Вы должны спросить их, но учтите, что может возникнуть конфликт с индексированием строкового массива а>.
Fortran просто не использует последовательные скобки индексации массива, в отличие от C. Синтаксис массивов Fortran и C сильно различается во многих аспектах.
Разве array(2::2)
не достигает того, что вам нужно?
array(2:)(::2)
значил? Чего ты хочешь добиться? - person Vladimir F   schedule 28.01.2019