function exponential, x, parameters=p $
, p_names = p_names, pder_values= pder_values
if not keyword_set(p) then $
p = {func:'exponential',h:1.d, l:1.0d, a0:0.d }
if n_params() eq 0 then return,p
z = x/p.l
e = exp(- z)
f = p.a0 + p.h * e
if keyword_set(p_names) then begin
np = n_elements(p_names)
nd = n_elements(f)
for i=0,np-1 do begin
case strlowcase(p_names(i)) of
'h': pder_values(*,i) = e
'l': pder_values(*,i) = p.h * e * x / p.l^2
'a0': pder_values(*,i) = 1
else: print,'Unknown Variable ', p_names(i)
endcase
endfor
endif
return,f
end