The ZMSFM compile process involves several stages:

A wise mentor appeared over Alex’s shoulder. "You have built the bricks," the mentor said, "but you have forgotten the mortar. You told the program to use init_simulation , but you never actually wrote that function, or you forgot to include the file where it lives."

The Lesson: Compilation is two steps. First, it translates the text. Second, it all the pieces together. If you call a function that doesn't exist, the linker screams.