Subroutine definition
User defined subroutines in Mosel have to be marked with procedure / end-procedure and function / end-function respectively. The return value of a function has to be assigned to returned as shown in the following example (model subrout.mos).
model "Simple subroutines" declarations a:integer end-declarations function three:integer returned := 3 end-function procedure print_start writeln("The program starts here.") end-procedure print_start a:=three writeln("a = ", a) end-model
This program will produce the following output:
The program starts here. a = 3