|
Module
processor_dependencies
Home --> Fact Sheet
--> Free Source Code
--> Portability Project
--> processor_dependencies
About the Module
processor_dependencies
Go directly to Inquiry
Constants
Go directly to Downloads
The module processor_dependencies exists to give a
single definition to as many processor dependencies as possible, but especially
processor supported kinds. It also gives names to Fortran standard specified
conditions.
To make a processor_dependencies module and a
processor_model program for the compiler you're using,
download the make_processor_model program, read how
to set up its input file, compile the program
using the compiler you're using, and execute it using the hardware you're
using.
Back to the Top
A list of (most) types, constants and procedures
defined follows.
- Constants
- Hardware
- The sizes (in bits) of a numeric storage unit, character
storage unit and file storage unit are described in the integers
numeric_storage_size, character_storage_size
and file_storage_size. The logicals
is_byte_addressable and is_word_addressable
describe the addressing mode.
- Flags describing processor arithmetic are the values of
logicals is_ieee_fp and is_2s_comp.
- The logicals is_big_endian and
is_little_endian specify processor endian.
- Software
- Characters compiler_version,
compiler_serial, os_version identify the
processor.
- The size of the random number seed array is defined as
integer random_seed_size.
- Flags describing whether the processor supports
ISO_VARYING_STRINGS is logical iso_varying_string_t.
- Kinds, etc.
- Integers byte_k, short_k,
int_k, long_k are (possible) integer kinds.
- Integers single_k,
double_k, quad_k are (possible) real kinds
(and therefore also possible complex kinds).
- Integers l_byte_k,
l_short_k, l_int_k, l_long_k
are (possible) logical kinds
- Integers ascii_k, ebcdic_k
and iso_10646_k are (possible) character kinds.
- Input/Output
- Logical opt_plus_sign describes whether the
processor writes the optional leading plus sign when using a numeric format.
- Logicals leading_zero_f and
leading_zero_e describe whether the processor writes the
optional leading zero when using f or e format.
- Integers ld_fmt_fmax and
ld_fmt_fmin describe the largest and smallest decimal exponent
written by list-directed format using f format before switching to e format.
- Logical ld_fmt_comma is true if the
processor places a separator (a comma) between output items when using list
directed format.
- The maximum record length is specified by integer
max_recl.
- The form of a filename when a unit is opened without a file
is specified in character default_filename.
- The units preconnected for input, output and possibly error
messages are the values of integers input_unit,
output_unit and error_unit.
- The IOSTAT= value returned when trying to read an undefined
record via a direct access read is the value of integer
read_undefined_record.
Back to the Top
- Library
- The bit_size() intrinsic is extended to all
intrinsic types and kinds.
- The int() intrinsic is extended to logical
kinds. It returns 1 if its argument is true and 0 if its argument is false.
- The logical() intrinsic is extended to
integer kinds. It returns true if its argument is not 0 and false otherwise.
- The huge() and tiny()
intrinsics are extended to complex and character entities.
- The epsilon() intrinsic is extended to
complex entities.
- The function max_exact_int() determines the
largest integer value in which the one's bit is represented exactly by any kind
of real.
Back to the Top
The source code for both processor_dependencies and
processor_model may be generated (almost) automatically by using the
make_processor_model program.
For more information about the make_processor_model program, click
here.
A discussion of the make_processor_model
namelist input file is available
here.
Back to the Top
To make comments or suggestions regarding
processor_dependencies, or any of our software, please
E-mail us. We're always happy to share
the experiences others have using our software. |