2015-01-31 1 views
1
for doy=1,300 do begin & date=doy_date(doy,2009) & @Aug_dyn_spec_plot.go & endfor 
                     ^
IDL: Syntax error. 

위의 작업이 없습니다. 아래는 작동합니다. @ Aug_dyn_spec_plot.go는 가변 날짜를 취하여 해당 날짜의 파일을 열고 스펙트럼 밀도를 표시하는 스크립트입니다.for 루프 내에서 다른 idl 스크립트를 실행하는 데 제한이 있습니까?

날짜가 20090101 인 경우 해당 파일의 압축을 풀어 데이터를 추출하고 플롯을 만듭니다. 그러나 나는 1 년에 모든 날짜를 계획하기를 원합니다.

구문 오류가 IDL의 루프 한계에 불과하다는 것을 이해하지 못합니다.

Go > for doy=1,300 do begin & date=doy_date(doy,2009) & print,date & endfor 
    20090101 
    20090102 
    20090103 
    20090104 
    20090105 
    20090106 
    20090107 
    20090108 
    20090109 
    20090110 
    20090111 
    20090112 
    20090113 
    20090114 
    20090115 
    20090116 
    20090117 
    20090118 
    20090119 
    20090120 
    20090121 
    20090122 
    2009
    20090124 
    20090125 
    20090126 
    20090127 
    20090128 
    20090129 
    20090130 
    20090131 
    20090201 
    20090202 
    20090203 
    20090204 
    20090205 
    20090206 
    20090207 
    20090208 
    20090209 
    20090210 
    20090211 
    20090212 
    20090213 
    20090214 
    20090215 
    20090216 
    20090217 
    20090218 
    20090219 
    20090220 
    20090221 
    20090222 
    20090223 
    20090224 
    20090225 
    20090226 
    20090227 
    20090228 
    20090301 
    20090302 
    20090303 
    20090304 
    20090305 
    20090306 
    20090307 
    20090308 
    20090309 
    20090310 
    20090311 
    20090312 
    20090313 
    20090314 
    20090315 
    20090316 
    20090317 
    20090318 
    20090319 
    20090320 
    20090321 
    20090322 
    20090323 
    20090324 
    20090325 
    20090326 
    20090327 
    20090328 
    20090329 
    20090330 
    20090331 
    20090401 
    20090402 
    20090403 
    20090404 
    20090405 
    20090406 
    20090407 
    20090408 
    20090409 
    20090410 
    20090411 
    20090412 
    20090413 
    20090414 
    20090415 
    20090416 
    20090417 
    20090418 
    20090419 
    20090420 
    20090421 
    20090422 
    20090423 
    20090424 
    20090425 
    20090426 
    20090427 
    20090428 
    20090429 
    20090430 
    20090501 
    20090502 
    20090503 
    20090504 
    20090505 
    20090506 
    20090507 
    20090508 
    20090509 
    20090510 
    20090511 
    20090512 
    20090513 
    20090514 
    20090515 
    20090516 
    20090517 
    20090518 
    20090519 
    20090520 
    20090521 
    20090522 
    20090523 
    20090524 
    20090525 
    20090526 
    20090527 
    20090528 
    20090529 
    20090530 
    20090531 
    20090601 
    20090602 
    20090603 
    20090604 
    20090605 
    20090606 
    20090607 
    20090608 
    20090609 
    20090610 
    20090611 
    20090612 
    20090613 
    20090614 
    20090615 
    20090616 
    20090617 
    20090618 
    20090619 
    20090620 
    20090621 
    20090622 
    20090623 
    20090624 
    20090625 
    20090626 
    20090627 
    20090628 
    20090629 
    20090630 
    20090701 
    20090702 
    20090703 
    20090704 
    20090705 
    20090706 
    20090707 
    20090708 
    20090709 
    20090710 
    20090711 
    20090712 
    20090713 
    20090714 
    20090715 
    20090716 
    20090717 
    20090718 
    20090719 
    20090720 
    20090721 
    20090722 
    20090723 
    20090724 
    20090725 
    20090726 
    20090727 
    20090728 
    20090729 
    20090730 
    20090731 
    20090801 
    20090802 
    20090803 
    20090804 
    20090805 
    20090806 
    20090807 
    20090808 
    20090809 
    20090810 
    20090811 
    20090812 
    20090813 
    20090814 
    20090815 
    20090816 
    20090817 
    20090818 
    20090819 
    20090820 
    20090821 
    20090822 
    20090823 
    20090824 
    20090825 
    20090826 
    20090827 
    20090828 
    20090829 
    20090830 
    20090831 
    20090901 
    20090902 
    20090903 
    20090904 
    20090905 
    20090906 
    20090907 
    20090908 
    20090909 
    20090910 
    20090911 
    20090912 
    20090913 
    20090914 
    20090915 
    20090916 
    20090917 
    20090918 
    20090919 
    20090920 
    20090921 
    20090922 
    20090923 
    20090924 
    20090925 
    20090926 
    20090927 
    20090928 
    20090929 
    20090930 
    20091001 
    20091002 
    20091003 
    20091004 
    20091005 
    20091006 
    20091007 
    20091008 
    20091009 
    20091010 
    20091011 
    20091012 
    20091013 
    20091014 
    20091015 
    20091016 
    20091017 
    20091018 
    20091019 
    20091020 
    20091021 
    20091022 
    20091023 
    20091024 
    20091025 
    20091026 
    20091027 
Go > 

답변

0

배치 루틴의 주요 제한은 내부에 사용되는 모든 변수가 이미 이전에 당신이 배치 루틴 내부를 정의하지 않는 한 (동일한 이름의)를 호출로 정의해야한다는 것입니다.

예를 들어 일괄 처리 루틴에서 변수 date을 사용하는 경우 일괄 처리 루틴을 호출하기 전에 date (올바른 형식)을 이미 정의해야합니다.

@ 심볼은 전체 일괄 처리 루틴을 가져 와서 배치 된 위치에 내용을 인쇄하는 것으로 생각할 수 있습니다. ($)를 하나 개 이상의 라인이 @Aug_dyn_spec_plot.go의 내부에있는 경우 귀하의 예에 따라서

는, 그들은 각각 다른 작업 ( &)을 수행 할 것을 나타냅니다 & $로 종료해야하고 그 다음 줄에 계속 . @Aug_dyn_spec_plot.go에 캐리지 리턴이 없으면 각 새 명령 사이에 &을 사용하면됩니다.

그러나 프로그램이나 기능을 작성한 경우 문제가 해결 될 수도 있습니다. 예를 들어 다음을 시도해보십시오.

;; Name: print_and_plot_example.pro 
;; Example Usage: IDL> print_and_plot_example 

PRO print_and_plot_example 

FOR doy=1L, 300L DO BEGIN 
    date = doy_date(doy,2009) 
    @Aug_dyn_spec_plot.go 
ENDFOR 

;; Return to user 

RETURN 
END 

구문 문제가 발생합니다.

관련 문제