Table of Contents

Previous: -volatile

## Option: wordsize

**-wordsize=***num*
Specifies the default word size to
be *num * bytes. This is the size of logical and single-precision numeric
variables that are not given explicit precisions. (Explicit precisions
for non-character variables are an extension to the Fortran 77 Standard,
and are given by type declarations such as REAL*8 X .) Double-precision
and complex variables will be twice this value, and double complex variables
four times. Quad-precision constants and intrinsic function results will
be four times this value. Note that variables declared as REAL*16 will
be regarded as quad precision only if the word size is 4 bytes. Default
= turn-on = 4 bytes.
The word size value does not matter for checking standard-conforming
programs that do not declare explicit precisions for non-character variables
or store Hollerith data in variables. This setting also does not affect
the default size of character variables, which is always 1 byte. Hollerith
constants also are assumed to occupy 1 byte per character.

The word size
is used to determine whether truncation occurs in assignment statements,
and to catch precision mismatches in subprogram argument lists and common
block lists. The exact warnings that are issued will depend on the status
of other flags. Under both the **-portability=mixed-size ** and the **-nowordsize
** flag, any mixing of explicit with default precision objects (character
expressions not included) is warned about. This applies to arithmetic
expressions containing both types of objects, and to subprogram arguments
and COMMON variables. Under control of the **-truncation=demotion ** and **promotion
** options, a warning is given for assignment of an expression to a shorter
variable of the same type, or for promotion of a lower precision value
to higher precision in an arithmetic expression or an assignment statement.

Giving a word size of 0, or equivalently, using **-nowordsize ** means that
no default value will be assumed. This is equivalent to specifying **-portability=mixed-size
**. Use it to find cases of mixing default and explicit precision, for example
to flag places where REAL*8 is treated as equivalent to DOUBLE PRECISION
.

See also: **-pointersize **, **-portability **, **-truncation **.

Next: -wrap