这是我在IDL源代码中的标题:
pro gamow,t_plasma,z1=z1,z2=z2,a1=a1,a2=a2
; displays gamow peak for input value of t (in K)
; default values for protons
if not keyword_set(z1) then z1=1.
if not keyword_set(z2) then z2=1.
if not keyword_set(a1) then a1=1.
if not keyword_set(a2) then a2=1.
我在终端/控制台中执行此操作,例如:
gamow,1d8
这是有效的,因为z1 = z2 = a1 = a2 = 1.0。而1d8意味着1亿。但是,这不起作用:
gamow,1d8,2,2,4,4
为什么?
祝你好运
答案 0 :(得分:1)
您将t_plasma
定义为位置参数,但z1
,z2
,a1
和a2
作为关键字参数。您的第一个示例仅传递一个位置
参数,因此定义t_plasma
,其他参数不定义,这很好。您的
第二个示例尝试将所有5个参数作为位置参数传递,但只定义了一个位置参数。所以IDL报告错误,“参数数量不正确”。
相反,试试这个:
gamow,1d8,z1=2,z2=2,a1=4,a2=4