fun putStrLn str = (TextIO.output (TextIO.stdOut, str); TextIO.output (TextIO.stdOut, "\n")) fun putStr str = (TextIO.output (TextIO.stdOut, str)) fun showReal n = let open StringCvt open Real in (if n < 0.0 then "-" else "") ^ (fmt (FIX (SOME 12)) (abs n)) end fun printstate ({t,h,v,w,Isyn,vk,vl,vca,gk,gl,gca,c,v1,v2,v3,v4,phi})= ( (showReal t) ^ " " ^ (showReal v) ^ " " ^ (showReal w) ) fun start (tmax,initial) = let fun run (input) = let val nstate = Model.Morris_Lecar81 input val nstate1 = {w=(#w(nstate)),v=(#v(nstate)),c=(#c(initial)),vl=(#vl(initial)),gl=(#gl(initial)),Isyn=(#Isyn(initial)),vk=(#vk(initial)),gk=(#gk(initial)),vca=(#vca(initial)),gca=(#gca(initial)),v4=(#v4(initial)),v3=(#v3(initial)),phi=(#phi(initial)),v2=(#v2(initial)),v1=(#v1(initial)),h=(#h(initial)),t=(#t(nstate))} in putStrLn (printstate nstate1); if (#t nstate) > tmax then putStrLn "# All done!" else (run (nstate1)) end in run initial end val _ = (start (1000.0,Model.Morris_Lecar81_initial))