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, +BA, +BETA, +CARET, +CC
>     INTEGER +CG, +CHI, +CI, +COLON, +COMMA, +CR, +CS, +CYA, +CYB
>     INTEGER +CYCHE, +CYD, +CYE, +CYEE, +CYEEK, +CYF, +CYG, +CYK
>     INTEGER +CYKHA, +CYL, +CYM, +CYMZNK, +CYN, +CYO, +CYOO, +CYP, +CYR
>     INTEGER +CYS, +CYSH, +CYSHCH, +CYT, +CYTSE, +CYTZNK, +CYV, +CYYA
>     INTEGER +CYYE, +CYYIRI, +CYYOO, +CYZ, +CYZHE, +DEL, +DELTA
>     INTEGER +DOLLAR, +DQUOTE, +DR, +EPSLON, +EQUALS, +ETA, +EXCLPT
>     INTEGER +FCASE, +FTYPE, +FVAR, +GAMMA, +GE, +GG, +GI, +I, +IDIG
>     INTEGER +IG, +II, +ILC, +IOTA, +IR, +IUC, +KAPPA, +KG, +KR
>     INTEGER +LAMBDA, +LANGLE, +LBRACE, +LBRAKT, +LCA, +LCB, +LCC, +LCD
>     INTEGER +LCE, +LCF, +LCG, +LCH, +LCI, +LCJ, +LCK, +LCL, +LCM, +LCN
>     INTEGER +LCO, +LCP, +LCQ, +LCR, +LCS, +LCT, +LCU, +LCV, +LCW, +LCX
>     INTEGER +LCY, +LCZ, +LOC0, +LOC0SV, +LOCLC, +LOCUC, +LPAREN
>     INTEGER +MINUS, +MU, +N20147, +NOCHAR,  NPR007,  NPR008,  NPR010
>     INTEGER  NPR011,  NPR012,  NPR013,  NPR015,  NPR016,  NPR019
>     INTEGER  NPR027,  NPR028,  NPR032,  NPR033,  NPR043,  NPR044, +NU
>     INTEGER +NUL, +NUMBER, +NX0028, +NX0050, +NX0061, +NX0100, +NX0114
>     INTEGER +NX0141, +NX0204, +NX0244, +OMCRON, +OMEGA, +PERCNT
>     INTEGER +PERIOD, +PHI, +PI, +PLUS, +PSI, +QUERY, +RANGLE, +RBRACE
>     INTEGER +RBRAKT, +RHO, +RPAREN, +RSLANT, +SA, +SCOLON, +SG, +SIGMA
>     INTEGER +SLASH, +SPACE, +SQUOTE, +SR, +SS, +STAR, +TAU, +THETA
>     INTEGER +TILDE, +TR, +UCA, +UCB, +UCC, +UCD, +UCE, +UCF, +UCG
>     INTEGER +UCH, +UCI, +UCJ, +UCK, +UCL, +UCM, +UCN, +UCO, +UCP, +UCQ
>     INTEGER +UCR, +UCS, +UCT, +UCU, +UCV, +UCW, +UCX, +UCY, +UCZ
>     INTEGER +UPSLON, +USCORE, +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),        +BSWTCH(5)
>     SYM03              INTEGER +FONTID(5),          +FONTNM(5,5)
>     SYM03              INTEGER +FSWTCH(5),          +LSWTCH(5)
>     SYM03              INTEGER +USWTCH(5)