Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getarg(3F)

getenv(3F)

IOINIT(3F)                           BSD                            IOINIT(3F)



NAME
     ioinit - change f77 I/O initialization

SYNOPSIS
     logical function ioinit (cctl, bzro, apnd, prefix, vrbose)
     logical cctl, bzro, apnd, vrbose
     character*(*) prefix

DESCRIPTION
     This routine will initialize several global parameters in the f77 I/O
     system, and attach externally defined files to logical units at run time.
     The effect of the flag arguments applies to logical units opened after
     ioinit is called.  The exception is the preassigned units, 5 and 6, to
     which cctl and bzro will apply at any time.  ioinit is written in
     FORTRAN-77.

     By default, carriage control is not recognized on any logical unit. If
     cctl is .true. then carriage control will be recognized on formatted
     output to all logical units except unit 0, the diagnostic channel.
     Otherwise, the default will be restored.

     By default, trailing and embedded blanks in input data fields are
     ignored. If bzro is .true. then such blanks will be treated as 0s.
     Otherwise, the default will be restored.

     By default, all files opened for sequential access are positioned at
     their beginning.  It is sometimes necessary or convenient to open at the
     END-OF-FILE so that a write will append to the existing data.  If apnd is
     .true. then files opened subsequently on any logical unit will be
     positioned at their end upon opening.  A value of .false. will restore
     the default behavior.

     ioinit can be used to associate file names with FORTRAN logical unit
     numbers through environment variables.  If the argument prefix is a non-
     blank string, then names of the form prefixNN will be sought in the
     program environment. The value associated with each such name found will
     be used to open logical unit NN for formatted sequential access.  For
     example, if f77 program myprogram included the call

          call ioinit (.true., .false., .false., 'FORT', .false.)

     then the following sequence

           % setenv FORT01 mydata
           % setenv FORT12 myresults
           % myprogram


     would result in logical unit 1 opened to file mydata and logical unit 12
     opened to file myresults.  Both files would be positioned at their
     beginning.  Any formatted output would have column 1 removed and
     interpreted as carriage control.  Embedded and trailing blanks would be
     ignored on input.

     If the argument vrbose is .true. then ioinit will report on its activity.

     The effect of

          call ioinit (.true., .true., .false., '', .false.)

     can be achieved without the actual call by including "-lI66" on the f77
     command line.  This gives carriage control on all logical units except 0,
     causes files to be opened at their beginning, and causes blanks to be
     interpreted as 0s.

     The internal flags are stored in a labeled common block with the
     following definition:

          integer*2 ieof, ictl, ibzr
          common /ioiflg/ ieof, ictl, ibzr


FILES
     /usr/lib/libI77.a       f77 I/O library
     /usr/lib/libI66.a       sets older FORTRAN I/O modes

SEE ALSO
     getarg(3F), getenv(3F)

BUGS
     prefix can be no longer than 30 characters.  A pathname associated with
     an environment name can be no longer than 255 characters.

     The "+" carriage control does not work.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026