Source t208d.f

### SUBROUTINE SYMSF ( FONT, SWCHAR )

> Argument Definitions (+ indicates altered content)
>     INTEGER            FONT,       SWCHAR

> 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,    +BSWTCH
>     SYM03              INTEGER           +FONTID,   +FONTNM
>     SYM03              INTEGER           +FSWTCH,   +LSWTCH
>     SYM03              INTEGER           +USWTCH