(!****************************************************** Mosel User Guide Example Problems ================================= file runprimeior.mos ```````````````````` Data exchange via shared memory. - Using 'raw' driver - (c) 2008 Fair Isaac Corporation author: S. Heipcke, 2005, rev. Apr. 2011 *******************************************************!) model "Run model primeior" uses "mmjobs" declarations modPrime: Model NumP: integer ! Number of prime numbers found SetP: set of integer ! Set of prime numbers STOPMOD = 2 ! "Stop submodel" user event MODREADY = 3 ! "Submodel ready" user event end-declarations ! Compile 'prime.mos' if compile("primeior.mos")<>0 then exit(1); end-if load(modPrime, "primeior.bim") ! Load bim file ! Disable model output setdefstream(modPrime,"","null:","null:") run(modPrime, "LIMIT=35000") ! Start execution and wait ! ... wait for an event if getclass(getnextevent) <> MODREADY then writeln("Problem with submodel run") exit(1) end-if wait(2) ! Let the submodel run for 2 seconds if isqueueempty then ! No event has been sent... writeln("Model too slow: stopping it!") send(modPrime, STOPMOD, 0) ! ... stop the model, then wait wait end-if initializations from "raw:" NumP as "shmem:NumP" SetP as "shmem:SPrime" end-initializations writeln(SetP) ! Output the result writeln(" (", NumP, " prime numbers.)") unload(modPrime) end-model