Statistical programming, matrix languages, and more

Store module containing submit statement

New Contributor
Posts: 2

Store module containing submit statement

I wish to store a module defined in proc iml in file and later load it by including the file. looks like this:

proc iml;
	start f_w_submit(x,y);
		create plotting var {x y}; append; close plotting;
		 proc sgplot data=plotting;
		 	series x=x y=y / markers;
		call delete("plotting");
	finish f_w_submit;

	store module=_all_;

Then in another file I wish to use


%include "C:\";

proc iml;

	load module=(f_w_submit);

	/* Use the function f_w_submit*/


But this does not work. I get a warning saying

WARNING: Module F_W_SUBMIT definition is left incomplete.

and the function is neither compiled nor stored. If I comment out the submit block, everything works fine. What am I doing wrong?


I am on SAS 9.2. with SAS/IML 9.22.


Posts: 4,124

Re: Store module containing submit statement

Your program works in modern versions of SAS. It might have been an issue in 9.22, but I don't know. SAS 9.22 shipped in early 2010; 

there have been 7 releases of SAS/IML since 9.22.


To work around the issue, don't use the %INCLUDE statement.  Instead, use the RESET STORAGE function to point to the storage library, as discussed in the article "Storing and Loading Modules."   I don't have 9.22 to try it, but I think it will work.


BTW,  in SAS 9.4, the SERIES subroutine was introduced, which does what you are trying to do. For examples of SAS/IML graphics in modern releases, see the documentation examples.  If possible, I highly recommend upgrading to SAS 9.4 or later.


Ask a Question
Discussion stats
  • 1 reply
  • 1 like
  • 2 in conversation