Initializing help system before first use

Packages vs. modules

The possibility of writing packages introduces a second form of libraries for Mosel, the first being modules (see the `Mosel Native Interface User Guide' for further detail). The following list summarizes the main differences between packages and modules.

  • Definition
    • Package
      • library written in the Mosel language
    • Module
      • dynamic library written in C that obeys the conventions of the Mosel Native Interface
  • Functionality
    • Package
      • define
        • symbols
        • subroutines
        • types
        • control parameters
    • Module
      • extend the Mosel language with
        • constant symbols
        • subroutines
        • operators
        • types
        • control parameters
        • I/O drivers
  • Efficiency
    • Package
      • like standard Mosel models
    • Module
      • faster execution speed
      • higher development effort
  • Use
    • Package
      • making parts of Mosel models re-usable
      • deployment of Mosel code whilst protecting your intellectual property
    • Module
      • connection to external software
      • time-critical tasks
      • definition of new I/O drivers and operators for the Mosel language

As can be seen from the list above, the choice between packages and modules depends largely on the contents and intended use of the library you wish to write.