The Dimension
aspect is used to specify the dimensions of a given
subtype of a dimensioned numeric type. The aspect also specifies a symbol
used when doing formatted output of dimensioned quantities. The syntax is:
with Dimension => ([Symbol =>] SYMBOL, DIMENSION_VALUE {, DIMENSION_Value}) SYMBOL ::= STRING_LITERAL | CHARACTER_LITERAL DIMENSION_VALUE ::= RATIONAL | others => RATIONAL | DISCRETE_CHOICE_LIST => RATIONAL RATIONAL ::= [-] NUMERIC_LITERAL [/ NUMERIC_LITERAL]
This aspect can only be applied to a subtype whose parent type has
a Dimension_System
aspect. The aspect must specify values for
all dimensions of the system. The rational values are the powers of the
corresponding dimensions that are used by the compiler to verify that
physical (numeric) computations are dimensionally consistent. For example,
the computation of a force must result in dimensions (L => 1, M => 1, T => -2).
For further examples of the usage
of this aspect, see package System.Dim.Mks
.
Note that when the dimensioned type is an integer type, then any
dimension value must be an integer literal.