SIMCOS (an acronym standing for SIMulation of COntinuous Systems) is a computer language and a development environment for computer simulation. In 1989 it was developed by Slovenian experts led by Borut Zupančič. Properties The purpose of the language is simulation of dynamic mathematical models of systems, given as set of ordinary differential equations. It is an equation oriented and compiler type of language. Despite its name it can be used for discrete simulation as well. The language suits well to the CSSL'67 standard of simulation languages so portability among other languages conforming to the same standard (e.g. Tutsim, ACSL etc.) is quite simple. It is a DOS based software occasionally it is slightly modified so it can be run under actual versions of Microsoft Windows. Apart from the simulation itself it can also perform parametrisation (a series of simulations with different values of parameters), linearisation of models and optimisation (finding such values of parameters that a criterion function is minimised). Simulation process When a simulation scheme must be prepared it must be described in the SIMCOS language. It can be "drawn" (similarly as with an analogue computer) using an enclosed block library graphics tool (it contains basic elements such as integrators, amplifiers, summators, some basic input signals etc.) but more often it is entered as a program using one of text editors, e.g. Edit enclosed with DOS. Whichever form of entry of the model is used, the first phase of simulation reprocesses it into space of states form and rewrites the program into Fortran and prepares files with input parameters. This Fortran program is compiled into an executable file (.EXE) and executed. The executable program reads parameter values from input files, performs the simulation and writes requested calculated values into another file. When it terminates, SIMCOS takes control again and can display results as a graphic plot. The "heart" of the executable is function INTEG which can solve differential equations using one of several numerical methods. First it reads necessary values (e.g. values of parameters, initial conditions) from files then it calls the function DERIV where the model is actually described as series of functions of its derivatives. The returned values are used at the selected numerical method. Requested calculated results are written into the file and the whole procedure is repeated until the termination condition is satisfied. Example Continuous simulation of dead time (its Laplace transform is ) is