Процедуры и функции, не найденные при выполнении команд GDL
Я недавно установил GDL, так как у меня нет лицензии на IDL.
Я пытался запустить и IDL (.pro) скрипт для имитации экзопланетного транзита (с exomoon), и у меня возникли некоторые проблемы:
GDL> .reset_session
(gdl:16530): Gtk-WARNING **: gtk_disable_setlocale() must be called before gtk_init()
GDL>
GDL> restore, 'paramk63.save', /v
% Procedure not found: RESTORE
% Execution halted at: $MAIN$
GDL>
GDL> Per = PER
GDL> ap = A
% Variable is undefined: A
% Execution halted at: $MAIN$
GDL> Rplan = RP
% Variable is undefined: RP
% Execution halted at: $MAIN$
GDL> inc = INC
GDL> Pm = 1
GDL> Rmoon = 0.03
GDL> dmoon = 4.0
GDL> tetam0 = 0.0
GDL> dt = 1.0
GDL> wl = WL
GDL>
GDL> eclipse_moon,Per,ap,Rplan,inc,Pm,Rmoon,dmoon,tetam0,dt,wl,/plot
% Compiled module: ECLIPSE_MOON.
% ECLIPSE_MOON: Ambiguous: Variable is undefined: MEAN or: Function not found: MEAN
% Execution halted at: ECLIPSE_MOON 23 /home/fabian/Downloads/eclipse_moon.pro
% $MAIN$
GDL> 0:45 / 9:10
% ECLIPSE_MOON: Parser syntax error: unexpected token: 0
GDL>
Я запустил этот же код на Linux с установленным IDL, и это было прекрасно.
Кажется, я должен установить еще кое-что. Это правильно?
1 ответ
Похоже, он не может найти функцию под названием MEAN
, Убедитесь, что он находится на вашем пути! И вы правильно его называете. Когда IDL (или GDL) выполняет функцию или программу, он ищет все каталоги в переменной !path
найти его. Если он найден, IDL загрузит функцию и продолжит компиляцию. В этом случае я ожидаю, что функция ECLIPSE_MOON
звонки MEAN
на линии 23. Но MEAN
(который обычно встроен в IDL) не найден в GDL. Поэтому вам нужно убедиться, что его можно найти.
Чтобы проверить, каков ваш путь, в сеансе GDL введите print,!path
и убедитесь, что функция MEAN
находится в одном из тех каталогов.