- This topic has 1개 답변, 2명 참여, and was last updated 4 years, 5 months 전에 by Sangwoo.
-
글쓴이글
-
-
kimms회원
FUNCTION lore, x
;10KM (T = 210K, P = 110hPa)b = 1610.16
S = 5.66E-24
a = 0.0194
ad = 6*(10^(-23))K = (S/3.141592)*(a/((x)^2+a^2))
Kd = (S/(ad*(3.141592)^0.5))*exp(-(x/ad)^2)return, K
return, Kd
endPRO lore
b = 1610.16
x = ((findgen(1000)*0.001+1610.159)-b)
K = lore(x)
Kd = lore(x)
help, K
help, Kd
print, x[0]
device, decomposed = 0
cgwindow
cgdisplay, 1000, 500
cgplot, x, K, thick =2, title = ‘Line Broadening of NO2’, $
xtitle = ‘(V-V0)’, YTITLE = ‘Absorption coefficient’, $
color = ‘red’, xthick = 3, ythick = 3, charthick = 2, xrange = [0, 0.1], $
/addcmd
cgplot, x, Kd, thick =2, title = ‘Line Broadening of NO2’, $
xtitle = ‘(V-V0)’, YTITLE = ‘Absorption coefficient’, $
color = ‘blue’, xthick = 3, ythick = 3, charthick = 2, xrange = [0, 0.1], $
/addcmd, /overplot이거처럼, k와 kd에 대해서 겹치는 plot을 하고싶은데, k에 대한값만 나오네요 무엇이 문제일까요….
-
Sangwoo회원
함수형 부프로그램에서 RETURN은 하나만 유효합니다. 위와 같이 하시면 RETURN, k 만 제 역할을 할 뿐 뒤에 있는 RETURN, kd 는 아무 역할을 못합니다. 그리고 RETURN 명령은 한번만 유효하며, RETURN으로 되돌려줄 수 있는 항목의 갯수도 하나로 고정됩니다. 만약 함수형 부프로그램이 두 개의 항목들을 한꺼번에 되돌려주도록 하고자 할 경우에는 두 항목들을 구조체(Structure)의 형태로 묶고, RETURN은 이 구조체 하나를 되돌려주도록 하는 것이 좋습니다.
result = {k:k, kd:kd}
RETURN, result즉 함수 부프로그램에서는 이와 같이 정의해둡니다. 그리고 주프로그램에서는 다음과 같이 활용하면 됩니다.
result = lore(x)
k = result.k
kd = result.kd이와 관련하여 아래 링크의 내용을 참조해보셔도 좋을 것입니다.
-
-
글쓴이글