NAG Fortran Compiler, Release 7.2: <CODE>dbx90</CODE> Expressions

Navigation: Previous Up Next

## 3.5 `dbx90` Expressions

### 3.5.1 Scalar expressions

Scalar expressions in dbx90 are composed of literal constants, scalar variable references including array elements, intrinsic operations and parentheses.

Literal constants can be of any intrinsic type, e.g.

`INTEGER` | `42`
`REAL` | `1.2`
| `1.3e2`
`COMPLEX` | `(5.2,6.3)`
`CHARACTER` | `"string"`
`LOGICAL` | `.TRUE.`
| `.T.`

Subscript expressions must be scalar and of type `INTEGER`.

All intrinsic operations are supported except for exponentiation and concatenation, that is:

`+`, `-`, `*`, `/`, `==`, `/=`, `<`, `<=`, `>`, `>=`, `.AND.`, `.OR.`, `.NOT.`, `.EQV.`, `.NEQV.`, `.EQ.`, `.NE.`, `.LT.`, `.LE.`, `.GT.`, `.GE.`

(Operator names are not case-sensitive).

Note: array operations and operations involving variables of complex, character or derived type are not supported.

### 3.5.2 Array sections

Assignment, printing and displaying of array sections follows the Fortran syntax, e.g.

       ARRAY(:)
       ARRAY(1:5)
       ARRAY(1:10:2)

If the stride is supplied it must be a positive scalar expression – negative strides are not supported. All subscript expressions must be scalar – vector subscripts are not supported.

### 3.5.3 Derived type component specification

Individual components of a derived type scalar or array may be printed using normal Fortran syntax.

For example,

         print var%a

will print the “a” component of derived type “var”.

Components of all data types are supported.

Components which are of derived type will be displayed recursively until either:

1. there are no further nested derived types, or
2. a derived type array component is reached.

Array components of intrinsic data types will be truncated to ‘`<array>`’, and derived type array components will be truncated to ‘`<derived type array>`’.

Allocatable components of derived types are supported.

Derived type assignment is not supported; however, scalar non-derived-type components may be assigned values.