IDL/GDL: FUNCTION: Скалярный индекс вне допустимого диапазона [>]. E (61)

Я написал файл .pro IDL / GDL с именем single.pro с функцией SCATTERING, и я вызываю эту функцию в другой строке.

Определение функции:

      function scattering, dust, dsun, dstar, sflux, sigma, $    
        albedo, phase, angle, mean_density

И функция вызывается следующим образом:

      f = scattering(dust, dsun, dstar, sflux[iwave], sigma[iwave], albedo, phase, angle[iangle], mean_density)

Компиляция программы проходит без ошибок:

      % Compiled module: SCATTERING.
% Compiled module: $MAIN$.

Однако во время выполнения программа прерывается в строке, где я вызываю функцию SCATTERING ().

      % SCATTERING: Scalar subscript out of range [>].e (61)

Я просмотрел эту ошибку и обнаружил, что она может возникнуть из-за синтаксиса индексации массива IDL / GDL, в котором массивы могут быть индексированы с помощью [], а также ().

В документации IDL говорится, что рекомендуется добавить строку, чтобы предотвратить такое поведение.

      COMPILE_OPT STRICTARR

Однако я не уверен, куда добавить эту строку. Я пытался добавить его в начало файла, начало функции или даже выполнить эту строку в GDL REPL перед компиляцией и запуском программы, но ничего из этого не сработало.

Есть идеи, как это решить?

Заранее спасибо !

0 ответов

Другие вопросы по тегам