Неожиданная синтаксическая ошибка в IDL при переопределении с использованием if, then и endif - PullRequest
0 голосов
/ 03 мая 2020

Получение неожиданного синтаксического сообщения об ошибке при попытке переопределить константы с использованием if, then и endif

if(ipeak eq A3(n3-1)) then begin
;if wave packets too close then need to redefine halfl and half: 
        if(A3(ipeak)-A3(ipeak-1) lt 2*half) then 
        halfl=(A3(ipeak)-A3(ipeak-1))/2.
        if (half gt nn-A3(n3-1) )then halfr=nn-A3(n3-1)
endif 

С синтаксической ошибкой, возникшей во втором операторе if в конце над оператором then. Я глуп или слишком долго смотрю на это, потому что не вижу проблемы правильно

1 Ответ

0 голосов
/ 04 мая 2020

Вам нужно либо $ после зависания THEN, либо убрать возврат каретки. Также желательно использовать [] вместо () при индексации, чтобы избежать undefined function errors.

IF (ipeak EQ A3[n3-1]) THEN BEGIN
  ;; if wave packets too close then need to redefine halfl and half: 
  IF (A3[ipeak]-A3[ipeak-1] LT 2*half) THEN halfl = (A3[ipeak] - A3[ipeak-1])/2.
  IF (half GT nn - A3[n3-1]) THEN halfr = nn - A3[n3-1]
ENDIF
...