Legacy Language Compatibility
The version of the CSL language implemented in Magnolia is not completely backwards compatible with implementations in legacy tools. In general, this is the result of various language design decisions intended to simplify the language and make it more consistent with other modern programming languages. Most legacy CSL models however require only a modest amount of effort to port the model code to Magnolia. The following table summarizes the legacy language constructs which have been modified in Magnolia.
The PROGRAM keyword |
Replaced by the MODEL keyword/section. |
The DIMENSION statement |
Datatype specification (REAL, INTEGER, LOGICAL, CHARACTER) is now included in the DIMENSION statement and array declaration uses square brackets. CHARACTER variable no longer have to be assigned a size. |
Array notation |
Array elements are now addressed using square bracket notation. |
The TABLE statement |
The data used to populate a TABLE statement is now specified in two or more CONSTANTs. |
The SCHEDULE statement |
The AT/XZ/XP/XN qualifiers are no longer delimited by periods. specified in two or more CONSTANTs. |
FOR loops |
For loops are now delimited by an END statement, not a CONTINUE statement. |
IF/THEN/ELSE statements |
Conditionals no longer use the THEN keyword, and the end block is delimited by END, not ENDIF. |
Relational and logical operators |
FORTRAN-style relational and logical operators have been replaced by the C- and Java-style counterparts: ==, <, >, <=, >=, &, |. The only exception is the logical negation operator, which uses the MATLAB-style ~ instead of ! to avoid conflicts with CSL comments. |