Source t208d.f

### SUBROUTINE SYMSF ( FONT, SWCHAR )

> Argument Definitions (+ indicates altered content)
>     INTEGER            font(1),    swchar(1)

> Description
>        (Select Font)
>        Select  one  of  the  Hershey  fonts  for  subsequent  text
>        plotting.  Up to five fonts may  be in effect at one  time.
>        The last selected is  the default one.   If more than  five
>        fonts are requested, the sixth will replace the first,  the
>        seventh the second, and  so on in  a cyclic fashion.   This
>        restriction  is  purely  dimensional,  and  may  easily  be
>        changed  if  required.   The  case  switch  characters  are
>        initialized to  "<"  and  ">"  for  to-upper  and  to-lower
>        respectively.    The   backspace   character   switch    is
>        initialized to 0, suppressing the backspace facility.   The
>        arguments are:

>        FONT(*).....5-character string selecting font (see below).
>        SWCHAR(*)...Single  character (e.g. 1H=)  used  as a switch
>                    character to return to this font from  another.
>                    It will be interpreted as a switch character if
>                    it occurs only  once.  However, two  successive
>                    switch characters  for a  single font  will  be
>                    collapsed to a single character and will not be
>                    interpreted as a font switch.  A blank or  zero
>                    value indicates  that  no switch  character  is
>                    selected.

>        The fonts are selected by  a five-character string made  up
>        of a  2-character case  specification, a  2-character  type
>        specification, and a 1-character variant specification,  as
>        follows:

>        Case: UC - Upper Case
>              LC - Lower Case

>        Type: KR - Cartographic Roman (9)
>              KG - Cartographic Greek (9)
>              IR - Indexical Roman (13)
>              II - Indexical Roman Italic (13)
>              IG - Indexical Greek (13)
>              SA - Simplex ASCII (15)
>              BA - Block ASCII (15)
>              SR - Simplex Roman (21)
>              SS - Simplex Roman Script (21)
>              SG - Simplex Greek (21)
>              CR - Complex Normal Roman (21)
>              CI - Complex Normal Roman Italic (21)
>              CG - Complex Normal Greek (21)
>              CS - Complex Script (21)
>              DR - Duplex Roman (21)
>              TR - Triplex Roman (21)
>              GE - Gothic English (21)
>              GI - Gothic Italian (21)
>              GG - Gothic German (21)
>              CC - Complex Cyrillic (21)

>        Variant: 1 - Principal
>                 2 - Secondary
>                 3 - Tertiary
>                 4 - Quaternary

>        Selector letters may be  either upper- or lower-case.   The
>        case specification is arranged  such that if upper-case  is
>        requested, upper-case text will be mapped into  upper-case,
>        and  lower-case   into   lower-case.   If   lower-case   is
>        requested, both upper-  and lower-case  letters are  mapped
>        into lower case.  The four  variants are provided to  allow
>        representation of  special  characters within  the  limited
>        FORTRAN set.  The Gothic and  Cyrillic fonts have only  two
>        variants available.  Requests for variants  3 or 4 will  be
>        reduced to  variant  2.   The ASCII  fonts  have  only  one
>        variant, and  requests for  variants  2, 3,  or 4  will  be
>        reduced to variant 1.

>        The numbers (9),  (13), (15), and  (21) following the  type
>        indicate the height of the characters in raster units.  The
>        spacing between lines of text is conventionally measured by
>        the printer's  unit  "em",  giving the  distance  from  the
>        bottom of one line of type to the bottom of the next  line.
>        It should be  21 raster  units for indexical  size, and  32
>        raster units for normal size.

>        If any of the three parts  of the font specification is  in
>        error, a message  will be  issued, and a  default for  that
>        part will be assumed.  The default corresponds to  "UCTR1".
>        (01-APR-83)
>     - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

>        EXTERNAL REFERENCES (FUNCTION,SUBROUTINE,COMMON)

>        EXTERNAL REFS       ERRAT,       ERRCK,       ERRMS,       KARASC
>        EXTERNAL REFS       KARCM2,      KARUC,       KARUPK,      MIN0
>        EXTERNAL REFS       MOD

>     - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

>        EXTERNAL FUNCTIONS AND SUBROUTINES

> Source file: | t208d.f

> Intrinsic Functions Called
>     INTEGER            min0,       mod

> External Functions and Subroutines Called
>     INTEGER            karasc,     karcm2,     karuc
>     SUBROUTINE         errat,      errck,      errms,      karupk

> Local Variables (+ indicates altered content)
>     INTEGER           +accent,    +alpha,     +ampsnd,    +at
>     INTEGER           +ba,        +beta,      +caret,     +cc
>     INTEGER           +cg,        +chi,       +ci,        +colon
>     INTEGER           +comma,     +cr,        +cs,        +cya
>     INTEGER           +cyb,       +cyche,     +cyd,       +cye
>     INTEGER           +cyee,      +cyeek,     +cyf,       +cyg
>     INTEGER           +cyk,       +cykha,     +cyl,       +cym
>     INTEGER           +cymznk,    +cyn,       +cyo,       +cyoo
>     INTEGER           +cyp,       +cyr,       +cys,       +cysh
>     INTEGER           +cyshch,    +cyt,       +cytse,     +cytznk
>     INTEGER           +cyv,       +cyya,      +cyye,      +cyyiri
>     INTEGER           +cyyoo,     +cyz,       +cyzhe,     +del
>     INTEGER           +delta,     +dollar,    +dquote,    +dr
>     INTEGER           +epslon,    +equals,    +eta,       +exclpt
>     INTEGER           +fcase,     +ftype,     +fvar,      +gamma
>     INTEGER           +ge,        +gg,        +gi,        +i
>     INTEGER           +idig,      +ig,        +ii,        +ilc
>     INTEGER           +iota,      +ir,        +iuc,       +kappa
>     INTEGER           +kg,        +kr,        +lambda,    +langle
>     INTEGER           +lbrace,    +lbrakt,    +lca,       +lcb
>     INTEGER           +lcc,       +lcd,       +lce,       +lcf
>     INTEGER           +lcg,       +lch,       +lci,       +lcj
>     INTEGER           +lck,       +lcl,       +lcm,       +lcn
>     INTEGER           +lco,       +lcp,       +lcq,       +lcr
>     INTEGER           +lcs,       +lct,       +lcu,       +lcv
>     INTEGER           +lcw,       +lcx,       +lcy,       +lcz
>     INTEGER           +loc0,      +loc0sv,    +loclc,     +locuc
>     INTEGER           +lparen,    +minus,     +mu,        +n20147
>     INTEGER           +nochar,     npr007,     npr008,     npr010
>     INTEGER            npr011,     npr012,     npr013,     npr015
>     INTEGER            npr016,     npr019,     npr027,     npr028
>     INTEGER            npr032,     npr033,     npr043,     npr044
>     INTEGER           +nu,        +nul,       +number,    +nx0028
>     INTEGER           +nx0050,    +nx0061,    +nx0100,    +nx0114
>     INTEGER           +nx0141,    +nx0204,    +nx0244,    +omcron
>     INTEGER           +omega,     +percnt,    +period,    +phi
>     INTEGER           +pi,        +plus,      +psi,       +query
>     INTEGER           +rangle,    +rbrace,    +rbrakt,    +rho
>     INTEGER           +rparen,    +rslant,    +sa,        +scolon
>     INTEGER           +sg,        +sigma,     +slash,     +space
>     INTEGER           +squote,    +sr,        +ss,        +star
>     INTEGER           +tau,       +theta,     +tilde,     +tr
>     INTEGER           +uca,       +ucb,       +ucc,       +ucd
>     INTEGER           +uce,       +ucf,       +ucg,       +uch
>     INTEGER           +uci,       +ucj,       +uck,       +ucl
>     INTEGER           +ucm,       +ucn,       +uco,       +ucp
>     INTEGER           +ucq,       +ucr,       +ucs,       +uct
>     INTEGER           +ucu,       +ucv,       +ucw,       +ucx
>     INTEGER           +ucy,       +ucz,       +upslon,    +uscore
>     INTEGER           +vbar,      +xi,        +zeta
>     LOGICAL           +error

> Referenced Common Block Variables (+ indicates altered content)
>     SYM02              INTEGER           +kfont,     maxfnt
>     SYM02              INTEGER           +nfont,    +nfused
>     SYM03              INTEGER           +ascii(96,5)
>     SYM03              INTEGER           +bswtch(5)
>     SYM03              INTEGER           +fontid(5)
>     SYM03              INTEGER           +fontnm(5,5)
>     SYM03              INTEGER           +fswtch(5)
>     SYM03              INTEGER           +lswtch(5)
>     SYM03              INTEGER           +uswtch(5)