===== Subroutine (Statement) ===== ==== Format ==== **subroutine** subroutine_name ( [[functionvariablelist|function_variable_list]] )\\ (tab)[[programsyntax|statement(s)]]\\ **end subroutine** ==== Description ==== Create a subroutine (or subprogram) that will receive zero or more values and process those values. A subroutine does not return a value back to the user, it just does what you want it to do. Execution of a subroutine will terminate and control will be returned to the "[[call|call]]ing" program when a [[Return|Return]] statement is executed or by allowing the //End Subroutine// statement to be reached. All variables used within the subroutine, that have not been previously declared as [[global|Global]], will be local to the subroutine and will not change the values in the calling code. Subroutine variables may a list of zero or more, comma separated, variables. Arrays and variables may be passed by reference using the [[Ref|Ref]] definition. Subroutines should be defined anywhere on your program, but can not be defined within another [[function|Function]], [[Subroutine|Subroutine]] or control block ([[ifthen|If/Then]], [[dountil|Do/Until]], ...) ==== Example ==== # 100 random circles clg for x = 1 to 100 call draw() next x end function rnd(n) rnd = int(rand*n) end function subroutine draw() color rgb(rnd(256),rnd(256),rnd(256)) circle rnd(graphwidth), rnd(graphheight), rnd(graphwidth/10) end subroutine draws\\ {{:en:subroutine_circle.png|Circles}} ==== See Also ==== {{page>en:start#Program Control&noheader}} ==== History ==== |0.9.9.1|New To Version|