LOGICAL type
Standard: (F77) F90 F95 F2003 F2008 Example program
<Syntax>
LOGICAL [ ( [ KIND= ] expression ) ]
The expression must be a scalar integer whose value identifies a valid kind of logical.
LOGICAL*1
LOGICAL*2
LOGICAL*4
LOGICAL*8
<Semantics>
LOGICAL declares entities (variables, functions, etc.) to have logical values.
Logical values are either .TRUE.
or .FALSE.
.
The KIND number determines the representation (storage space used);
The F90_KIND module contains named constants BYTE
, TWOBYTE
, WORD
and LOGICAL64
which are convenient for specifying logical types with a particular storage.
The actual kind numbers used depend on whether “sequential”, “byte” or “unique” kind numbering is being used.
Sequential Kind Numbering (default)
KIND | 1 | 2 | 3 | 4 |
Name | BYTE | TWOBYTE | WORD | LOGICAL64 |
Storage size | 8 bits | 16 bits | 32 bits | 64 bits |
Byte Kind Numbering (-kind=byte option)
KIND | 1 | 2 | 4 | 8 |
Name | BYTE | TWOBYTE | WORD | LOGICAL64 |
Storage size | 8 bits | 16 bits | 32 bits | 64 bits |
Unique Kind Numbering (-kind=unique option)
KIND | 201 | 202 | 203 | 204 |
Name | BYTE | TWOBYTE | WORD | LOGICAL64 |
Storage size | 8 bits | 16 bits | 32 bits | 64 bits |
LOGICAL*1
, LOGICAL*2
, LOGICAL*4
and LOGICAL*8
are synonyms for LOGICAL(BYTE)
, LOGICAL(TWOBYTE)
, LOGICAL(WORD)
and LOGICAL(LOGICAL64)
respectively.
These synonyms are not standard Fortran.
<Related>
CHARACTER type, COMPLEX type, Component Definition statement, IMPLICIT statement, INTEGER type, KIND intrinsic function, LOGICAL intrinsic function, REAL type, Type Declaration statement