I don't know if this is the right place to put this, or if this is even needed.  It draws a line through points using a cubic spline.
My question.  Is it possible to define an array with a variable?  Something like h[n] in the example below, so your arrays in your sub can be any size?
Thanks,
Clint
'w - Window that the lines will be drawn in
'x - x[0]..x[n]
'y - y[0]..y[n]
'colr - line color
SUB Spline(WINDOW w, INT x BYREF, INT y BYREF, INT n BYVAL, UINT colr BYVAL)
	DOUBLE h[100],f[100],u[100],v[100],z[100],a[100],b[100],c[100],d[100]   'change to max values
	INT i,xx,yy
	FOR i=0 TO n-1
		h[i]=x[i+1]-x[i]
		f[i]=(y[i+1]-y[i])/h[i]
	NEXT i
	u[1]=2*(h[0]+h[1])
	v[1]=6*(f[1]-f[0])
	FOR i=2 to (n-1)
		u[i]=2*(h[i-1]+h[i])-(h[i-1]^2)/u[i-1]
		v[i]=6*(f[i]-f[i-1])-(h[i-1]*v[i-1])/u[i-1]
	NEXT i
	z[n]=0
	FOR i=(n-1) to 1 STEP -1
		z[i]=(v[i]-(h[i]*z[i+1]))/u[i]
	NEXT i
	z[0]=0
	FOR i=0 TO n-1
		a[i]=y[i]
		b[i]=((y[i+1]-y[i])/h[i])-((h[i]/6)*z[i+1])-((h[i]/3)*z[i])
		c[i]=z[i]/2
		d[i]=(z[i+1]-z[i])/(6*h[i])
	NEXT i
	MOVE w,x[0],y[0]
	SETLINESTYLE w,@LSSOLID,2
	FRONTPEN w,ColorBlend(colr,0xffffff,11,6)
	FOR i=0 to n-1
		FOR xx=x[i] to x[i+1] step 2
			yy=a[i]+(xx-x[i])*(b[i]+(xx-x[i])*(c[i]+(xx-x[i])*d[i]))
			LINETO w,xx,yy
		NEXT xx
	NEXT i
	MOVE w,x[0],y[0]
	SETLINESTYLE w,@LSSOLID,1
	FRONTPEN w,colr
	FOR i=0 to n-1
		FOR xx=x[i] to x[i+1] step 2
			yy=a[i]+(xx-x[i])*(b[i]+(xx-x[i])*(c[i]+(xx-x[i])*d[i]))
			LINETO w,xx,yy
		NEXT xx
	NEXT i
ENDSUB
'colr - first color
'sideColr - second color
'cStep - number of steps between colors
'cStepNum - the color to return
SUB ColorBlend(colr:UINT BYVAL,sideColr:UINT BYVAL,cStep:INT BYVAL,cStepNum:INT BYVAL),UINT
	DEF retColor:UINT
	DEF rRed,rGreen,rBlue:INT
	DEF r,g,b,sr,sg,sb:INT
	b=Hex2Dec(MID$(right$("000000"+Hex$(colr),6),1,2))
	g=Hex2Dec(MID$(right$("000000"+Hex$(colr),6),3,2))
	r=Hex2Dec(MID$(right$("000000"+Hex$(colr),6),5,2))
	
	sb=Hex2Dec(MID$(right$("000000"+Hex$(sidecolr),6),1,2))
	sg=Hex2Dec(MID$(right$("000000"+Hex$(sidecolr),6),3,2))
	sr=Hex2Dec(MID$(right$("000000"+Hex$(sidecolr),6),5,2))
	
	IF cStepNum<1 THEN cStepNum=1
	IF cStepNum>cStep THEN cStepNum=cStep
	
	IF r<0 THEN r=0
	IF r>255 THEN r=255
	IF g<0 THEN g=0
	IF g>255 THEN g=255
	IF b<0 THEN b=0
	IF b>255 THEN b=255
	IF sr<0 THEN sr=0
	IF sr>255 THEN sr=255
	IF sg<0 THEN sg=0
	IF sg>255 THEN sg=255
	IF sb<0 THEN sb=0
	IF sb>255 THEN sb=255
	rRed=r+(((sr-r)*cStepNum)/(cStep))
	rGreen=g+(((sg-g)*cStepNum)/(cStep))
	rBlue=b+(((sb-b)*cStepNum)/(cStep))
	retColor=RGB(rRed,rGreen,rBlue)
	RETURN retColor
ENDSUB
SUB Hex2Dec(txt:STRING),UINT
	DEF i,pow:INT
	DEF res:UINT
	res=0
	FOR i=1 to LEN(txt)
		pow=16^(LEN(txt)-i)
		res+=(INSTR("0123456789ABCDEF",MID$(txt,i,1),1)-1)*pow
	NEXT i
	RETURN res
ENDSUB
			
			
			
				I believe the NEW function is what you are looking for.  
			
			
			
				Thanks,  will check it out.
Later,
Clint