##### 15.4.5.1 Fortran Operators and Expressions

Operators must be defined on values of specific types. For instance, `+` is defined on numbers, but not on characters or other non- arithmetic types. Operators are often defined on groups of types.

`**`
  The exponentiation operator. It raises the first operand to the power of the second one.
`:`
  The range operator. Normally used in the form of array(low:high) to represent a section of array.
`%`
  The access component operator. Normally used to access elements in derived types. Also suitable for unions. As unions aren't part of regular Fortran, this can only happen when accessing a register that uses a gdbarch-defined union type.