1: C
   2: C Copyright (c) 1980 Regents of the University of California.
   3: C All rights reserved.  The Berkeley software License Agreement
   4: C specifies the terms and conditions for redistribution.
   5: C
   6: C	@(#)ioinit.f	5.1 (Berkeley) 6/8/85
   7: C
   8: C
   9: C ioinit - initialize the I/O system
  10: C
  11: C synopsis:
  12: C	logical function ioinit (cctl, bzro, apnd, prefix, vrbose)
  13: C	logical cctl, bzro, apnd, vrbose
  14: C	character*(*) prefix
  15: C
  16: C where:
  17: C	cctl	is .true. to turn on fortran-66 carriage control
  18: C	bzro	is .true. to cause blank space to be zero on input
  19: C	apnd	is .true. to open files at their end
  20: C	prefix	is a string defining environment variables to
  21: C		be used to initialize logical units.
  22: C	vrbose	is .true. if the caller wants output showing the lu association
  23: C
  24: C returns:
  25: C	.true. if all went well
  26: C
  27: C David L. Wasley
  28: C U.C.Bekeley
  29: C
  30:         logical function ioinit (cctl, bzro, apnd, prefix, vrbose)
  31:         logical         cctl, bzro, apnd, vrbose
  32:         character*(*)   prefix
  33: 
  34:         automatic       iok, fenv, ienv, ename, fname, form, blank
  35:         logical         iok, fenv, ienv
  36:         integer*2       ieof, ictl, izro
  37:         character       form, blank
  38:         character*32    ename
  39:         character*256   fname
  40:         common /ioiflg/ ieof, ictl, izro
  41: 
  42:         if (cctl) then
  43:             ictl = 1
  44:             form = 'p'
  45:         else
  46:             ictl = 0
  47:             form = 'f'
  48:         endif
  49: 
  50:         if (bzro) then
  51:             izro = 1
  52:             blank = 'z'
  53:         else
  54:             izro = 0
  55:             blank = 'n'
  56:         endif
  57: 
  58:         open (unit=5, form=form, blank=blank)
  59:         open (unit=6, form=form, blank=blank)
  60: 
  61:         if (apnd) then
  62:             ieof = 1
  63:         else
  64:             ieof = 0
  65:         endif
  66: 
  67:         iok = .true.
  68:         fenv = .false.
  69:         ienv = .false.
  70:         lp = len (prefix)
  71: 
  72:         if ((lp .gt. 0) .and. (lp .le. 30) .and. (prefix .ne. " ")) then
  73:             ienv = .true.
  74:             nb = index (prefix, " ")
  75:             if (nb .eq. 0) nb = lp + 1
  76:             ename = prefix
  77:             if (vrbose) write (0, 2002) ename(:nb-1)
  78:             do 200 lu = 0, 19
  79:                 write (ename(nb:), "(i2.2)") lu
  80:                 call getenv (ename, fname)
  81:                 if (fname .eq. " ") go to 200
  82: 
  83:                 open (unit=lu, file=fname, form='f', access='s', err=100)
  84:                 if (vrbose) write (0, 2000) lu, fname(:lnblnk(fname))
  85:                 fenv = .true.
  86:                 go to 200
  87: 
  88:   100           write (0, 2003) ename(:nb+1)
  89:                 call perror (fname(:lnblnk(fname)))
  90:                 iok = .false.
  91: 
  92:   200       continue
  93:         endif
  94: 
  95:         if (vrbose) then
  96:             if (ienv .and. (.not. fenv)) write (0, 2001) ename(:nb-1)
  97:             write (0, 2004) cctl, bzro, apnd
  98:             call flush (0)
  99:         endif
 100: 
 101:         ioinit = iok
 102:         return
 103: 
 104:  2000   format ('ioinit: logical unit ', i2,' opened to ', a)
 105:  2001   format ('ioinit: no initialization found for ', a)
 106:  2002   format ('ioinit: initializing from ', a, 'nn')
 107:  2003   format ('ioinit: ', a, ' ', $)
 108:  2004   format ('ioinit: cctl=', l, ', bzro=', l, ', apnd=', l)
 109:         end
Last modified: 1987-02-18
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1245
Valid CSS Valid XHTML 1.0 Strict