Ошибка синтаксиса IDL в genrand2d.pro - PullRequest
0 голосов
/ 04 июня 2018

Я не очень знаком с IDL, но пытаюсь запустить код, данный мне коллегой.Я получаю странные синтаксические ошибки во фрагменте общего кода genrand2d.pro (скачано с здесь ), что не позволяет запустить все это.Вполне возможно, что это изменение синтаксиса версии, поскольку у моего коллеги есть IDL версии 6.3, а у меня 8.6.0 (на Scientific Linux 7.2), но я не смог найти список изменений синтаксиса или аналогичных проверок.

Строка, вызывающая проблемы:

randx = arrscl(randomu(seed, nbad, /double), $ 
                     minx, maxx, $ 
                     arrmin=0d, arrmax=1d )

И сообщение об ошибке:

                     arrmin=0d, arrmax=1d )
                            ^
% Syntax error.
  At: /generic/path/genrand2d.pro, Line 114

1 Ответ

0 голосов
/ 04 июня 2018

Я предполагаю, что IDL не понимает, является ли arrscl массивом или функцией.Чтобы проверить, так ли это, скомпилируйте arrscl, перекомпилируйте genrand2d, а затем повторите попытку.

В общем, чтобы исправить эти ошибки, используйте compile_opt strictarr во всех ваших подпрограммах и всегда используйте квадратные скобки дляиндексирование массива.

...