subroutine subroutinename ( lista de variáveis )
statements
end subroutine
subroutine subroutinename$ ( lista de variáveis )
statements
end subroutine
Cria uma sub-rotina (ou subprograma) que vai receber zero ou mais valores e processar esses valores. A sub-rotina ao contrário da Function não devolve um valor. A execução de uma sub-rotina será encerrada e o controle será devolvido à “ Call ” quando a instrução Return é executada ou quando a sub-rotina termina com End . Todas as variáveis utilizadas dentro da sub-rotina, que não tenham sido previamente declarados como Global, são locais para a sub-rotina e não irão alterar os valores no código de chamada.
As variáveis da sub-rotina podem uma lista, numérica ou variáveis de cadeia alfanumérica. Arrays e variáveis podem ser passados por referência usando Ref.
Sub-rotinas devem ser definidos na parte inferior do programa, e não podem ser definidas dentro de outra Function, Subroutine ou bloco de controle ( If/Then, Do/Until, …)
# 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 rnd(256),rnd(256),rnd(256) circle rnd(graphwidth), rnd(graphheight), rnd(graphwidth/10) end subroutine
0.9.9.1