Вопрос по arrays – Объявление массива в Фортране

5

Рассматривать

INTEGER,DIMENSION(3) :: NumberVector

а также

INTEGER              :: NumberVector(3)

Есть ли какая-либо разница между этими двумя декларациями или они абсолютно одинаковы? (Я имею в виду в ЛЮБОМ возможном контексте и вариации: например, в случае, если эти два были идентичны, что если я объявлю массив с неявным размером в качестве одного из входных параметров подпрограммы? Я использовал?)

Ваш Ответ

2   ответа
8

это идентично. же для предполагаемой, отложенной и любой возможной формы.

3

DIMENSION Атрибут был добавлен в Fortran 90 для улучшения ясности кода и обеспечения экономии кода при объявлении нескольких массивов одного типа (что не редкость в научных вычислениях), например, вместо

: mat1(10,20), mat2(10,20), mat3(10,20), mat4(10,20), mat5(10,20)

можно написать

REAL, DIMENSION(10,20) :: mat1, mat2, mat3, mat4, mat5

Помимо уменьшения размера исходного кода и времени компиляции (меньше разбора; в настоящее время это не актуально), это уменьшает вероятность ошибки в любом из объявлений. В противном случае обе формы равны, и объявленные переменные ведут себя одинаково везде в программе.

DIMENSIONError: User Rate Limit ExceededPARAMETER,SAVEError: User Rate Limit ExceededDIMENSIONError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы