@X @~
~L3 COUK1247
80
~V7 56 2 -5
~D10
~H                    MUSS
~
~
~D10
~H             FTN211
~D10
~MMANCHESTER UNIVERSITY  -  CONFIDENTIAL~
~
~
                                                            ISSUE 11~
~V9 -1
~P
~YFTN211
~V9 1
~S1~M~OFORTRAN 77 I/O LIBRARY IMPLEMENTATION DESCRIPTION~
~S1~M~OSection 21~
~S1~OSection 21.  Configuration Section~
~S1~O1.1  General Description~
~BThis section contains various implementation dependent
literals specifying table sizes, word sizes and the like. It
may need to be altered for different machines or different sites.
~S1~O2.  Interfaces~
~S1~O2.1  Section Interfaces Used~
~BNone.
~S1~O2.2  Section Interface~
~T# 23
~
Exported Literals:~
~3
   BYTE.PER.S.L     -~INumber of bytes per integer.~
   BYTE.PER.D.L     -~INumber of Holleriths per Double Precision.~
   BITS.PER.S.L     -~INumber of bits per integer.~
   BITS.PER.R.L     -~INumber of bits per REAL.~
   ASHIFT           -~IAmount of shift.~
   SPACE.L          -~ISpace character.~
   NL               -~INewline character.~
   CR               -~ICarriage return character.~
   VT               -~IVertical tab character.~
   FF               -~IFormfeed character.~
   EOT              -~IEnd of text character.~
   R.CHAR.LIMIT     -~ISize of runtime format character table.~
   R.FMT.LIMIT      -~ISize of runtime format table.~
   FMT.NEST.LIMIT   -~ISize of format nesting table.~
   I.BUF.SZ.L       -~ISize of input buffer.~
   HOLLCH           -~
   RDLOG10.0        -~IThe single precision real value of natural log 10.0.~
   RD0.0            -~IThe single precision real value 0.0.~
   RD1.0            -~IThe single precision real value 1.0.~
   RD10.0           -~IThe single precision real value 10.0.~
   RD0.1            -~IThe single precision real value 0.1.~
   RD0.5            -~IThe single precision real value 0.5.~
   RDLOG0.1         -~IThe single precision real value of natural log 0.1.~
   RQLOG10.0        -~IThe double precision real value of the natural log of 10.
0.~
   RQ0.0            -~IThe double precision real value of 0.0.~
   RQ1.0            -~IThe double precision real value of 1.0.~
   RQ10.0           -~IThe double precision real value of 10.0.~
   RQ0.1            -~IThe double precision real value of 0.1.~
   RQ0.5            -~IThe double precision real value of 0.5.~
   RQLOG0.1         -~IThe double precision real value of the natural log of 0.1
.~
   FMT.E15.6E4L     -~IThe format index of the format (E15.6,E4).~
   FMT.G15.8L       -~IThe format index of the format (G15.8).~
   TRUE.L           -~IThe value of TRUE.~
   FALSE.L          -~IThe value of FALSE.~
   HOLL.PROPS.Z     -~
   CONTROL.CHAR.Z.L -~IThe size of the CONTROL.CHAR vector.~
~
Exported Vectors:~
   CONTROL CHAR     -~IA vector to indicate control chars from others.~
   LD.FMT.TBL       -~IA table of formats for list directed I/O.~
~0
~S1~O3. Implementation~
~S1~O3.1 Outline of Operation~
~BThis section contains only declarations.
~X%%
~Y
~V9 -1
~P
~D15
~HFLOWCHARTS
~
~
~H                FTN211
~V9 -1
~F
@TITLE FTN21(1,11)
@COL 1S-2R-3R-4R-9F
@FLOW 1-2-3-4-9
@BOX 1.0
CONFIGURATION SECTION
@BOX 2.0
MODULE HEADING
@BOX 3.0
SPECIAL GLOBALS FOR
HOLLERITH MAPPING
@BOX 4.0
LITERAL DECLARATIONS
AND SOME GLOBALS
@BOX 9.0
END
@BOX 2.1
::CV ;L.SPEC CAPTION(ADDR[$LO8])
; MODULE (BYTE.PER.S.L,BYTE.PER.D.L,BITS.PER.S.L,SPACE.L,NL,CR,VT,FF,EOT,
   R.CHAR.LIMIT,R.FMT.LIMIT,FMT.NEST.LIMIT,I.BUF.SZ.L,HOLLCH,
   REC.HDR.Z,RDLOG10.0,RD0.0,RD1.0,RD10.0,RD0.1,RD0.5,RDLOG0.1,
   RQLOG10.0,RQ0.0,RQ1.0,RQ10.0,RQ0.1,RQ0.5,RQLOG0.1,
   FMT.E15.6E4L,FMT.G15.8L,TRUE.L,FALSE.L,HOLL.PROPS.Z,
   UNIT.TABLE.SZ.L,STR0.IN.L,STR0.OUT.L,MAX.INT.WIDTH.L,NO.OF.TRAPS,
   CONTROL.CHAR,CONTROL.CHAR.Z.L,LD.FMT.TBL,BITS.PER.R.L,I8,
   I16,I32,I64,HOLL.ARRAY,I8.SIZE.L,I16.SIZE.L,I32.SIZE.L,I64.SIZE.L,
   MAX.HOLL.Z.L,DATA.SEG.Z,MAX.SECTION.Z.L);
EXIT ;
@BOX 3.1
;*GLOBAL 7
;$LO8 I8
;*GLOBAL 8
;$LO16 I16
;*GLOBAL 9
;$LO32 I32
;*GLOBAL 10
;$LO64 I64
;*GLOBAL 5
;$LO8[8] HOLL.ARRAY
@BOX 4.1
; LITERAL I8.SIZE.L = 1
; LITERAL I16.SIZE.L = 2
; LITERAL I32.SIZE.L = 4
; LITERAL I64.SIZE.L = 8
; LITERAL MAX.HOLL.Z.L = 8
; LITERAL NO.OF.TRAPS = 16
::IN32 ; LITERAL BYTE.PER.S.L = 4
::IN16 ; LITERAL BYTE.PER.S.L = 2
::IN32 ; LITERAL BITS.PER.S.L = 32
::IN16 ; LITERAL BITS.PER.S.L = 16
;LITERAL BITS.PER.R.L = 32
;LITERAL BYTE.PER.D.L = BYTE.PER.S.L + BYTE.PER.S.L
::IN32 ;LITERAL MAX.INT.WIDTH.L = 10
::IN16 ; LITERAL MAX.INT.WIDTH.L = 5
;LITERAL/$LO8 SPACE.L = %20
;LITERAL/$LO8 NL = %0A,CR = %0D,VT = %0B,FF = %0C,EOT = %04
;LITERAL R.CHAR.LIMIT = 136,R.FMT.LIMIT = 1000,FMT.NEST.LIMIT = 16
;LITERAL I.BUF.SZ.L = %4000
;LITERAL UNIT.TABLE.SZ.L = 64			
;LITERAL STR0.IN.L = UNIT.TABLE.SZ.L - 1	
;LITERAL STR0.OUT.L = UNIT.TABLE.SZ.L - 2	
;LITERAL HOLLCH = 142
;LITERAL/REAL32 RDLOG10.0 = 2.3025850929940456840,
     RD0.0 = 0.,
     RD1.0 = 1.,
     RD10.0 = 10.,
     RD0.1 = 0.1,
     RD0.5 = 0.5,
     RDLOG0.1 = -2.3025850929940456840
;LITERAL/$RE64
   RQLOG10.0 = 2.3025850929940456840,
   RQ0.0 = 0.,
   RQ1.0 = 1.0,
   RQ10.0 = 10.,
   RQ0.1 = 0.1,
   RQ0.5 = 0.5,
   RQLOG0.1 = -2.3025850929940456840
;LITERAL FMT.E15.6E4L = 0,
     FMT.G15.8L = 4
;LITERAL TRUE.L = 1, FALSE.L = 0
;LITERAL HOLL.PROPS.Z = 3
;$LI/$IN32 DATA.SEG.Z = %10000
;$LI/$IN32 MAX.SECTION.Z.L = 0
;$LI REC.HDR.Z = 4
; *GLOBAL 4
; DATAVEC CONTROLCHAR($IN)
0[4] 1 0[5] 1[4] 0[114]
END
;LITERAL CONTROL.CHAR.Z.L = 128
; DATAVEC LD.FMT.TBL($IN16)
4 15 6 4 6 15 8 0
END
::CV ;CAPTION(%" Fortran input output library 25th February 1983 $L")
; *GLOBAL 0
@BOX 9.1
; *END
@END

