#
DTOS 1L "12 May 1992"

##
Table of contents

dtos - convert Fortran program from double-precision to single-precision

**dtos**
< infile >outfile
**dtos**
copies its standard input to standard output,
converting Fortran double-precision constants,
built-in functions, and type declarations to
single precision.

Floating-point FORMAT specifications are left
intact; on some ancient systems, they may require
modifications. They do
*not*
under the rules of Fortran 77.

Leading tabs are correctly interpreted according
to common extended Fortran rules.

**dtos**
recognizes all of the standard Fortran 77
single- and double-precision functions,
as well as the pair
**rand/drand**
(UNIX pseudo-random number generators), and
the pair
**r1mach/d1mach**
from the PORT library framework.

**dtos**'s
other purpose is to demonstrate a modest
**lex**(1)
program.

Undeclared variables are not type-converted. To find
such instances, use the Extended PFORT Verifier,
**pfort**(1),
or the Fortran checker,
**ftnchek**(1).
Some UNIX Fortran compilers have a compile-time
option, usually called
*-u*,
to flag undeclared variables.
Text beyond column 72 is discarded when
lines are collected into Fortran statements.

**dtos**
does not handle embedded ASCII tab characters
correctly when long lines are to be broken. A
Fortran-sensitive detabbing utility should be
applied first if the input file possibly contains
embedded tabs. Note that
**expand**(1)
*cannot*
be used to do this job correctly!

Mixed-precision code may not be converted correctly.
For example,
**DBLE(FLOAT(N))**
will become
**SNGL(FLOAT(N))**,
which is syntactically incorrect.

Functions and variables of type
**COMPLEX**
are not converted, because Fortran 77 does not
define a double precision complex type. Complex
constants will be converted, however, since their
real and imaginary parts look like normal
floating-point values.

**ftnchek**(1),
**lex**(1),
**pfort**(1),
**stod**(1).

Nelson H. F. Beebe, Ph.D.
Center for Scientific Computing

Department of Mathematics

South Physics Building

University of Utah

Salt Lake City, UT 84112

Tel: (801) 581-5254

FAX: (801) 581-4148

Email: <beebe@math.utah.edu>