Z:\sl\eng\cf\cf.f.html

    C===========================CF.FOR (main)===============================

    c  This program converts from one set of units to another.  Conversion
    c  factors and unit abreviations are defined according to the listing
    c  given in the "...UNITS"  section of the HP-28S reference manual.
    c
    c  CASE IS SIGNIFICANT when entering units.
    c
    c  The degrees symbol, "ø" is produced by holding down Alt and typing
    c  248 on the numeric key pad.
    c  The prefix micro is represented by lowercase u.    /DEE 1-89

          PARAMETER (MAXUNIT=5, MAXARG=70)
          REAL*8 TV(120), SUCF, EUCF, CF
          INTEGER  TFUP(120,8), SUPOW(8), EUPOW(8), TUIND(120)
          CHARACTER*423 TU
          CHARACTER*(MAXARG) SU,EU
          CHARACTER*(MAXUNIT) U
    C==================MAIN PROGRAM
          CALL TVAL   (TV)
          CALL TUNIT  (TU,TUIND)
          CALL TFUPOW (TFUP)

    C------------Get Starting and Ending unit conversion arguments-----------
          CALL GETC('Enter the original starting units:',SU)
          CALL GETC('Enter the units to convert to:',EU)
    C------------Compiling unit strings to a conversion factor and an
    c            integer unit vector...
          CALL COMP(SUCF, SUPOW, SU, TV, TU, TUIND, TFUP)
          CALL COMP(EUCF, EUPOW, EU, TV, TU, TUIND, TFUP)
    C------------Check for consistancy of units...
          DO 10, K=1, 8
          IF ((SUPOW(K)-EUPOW(K)) .NE. 0) GOTO 20
     10   CONTINUE
          CF=SUCF/EUCF
          PRINT *, 'The conversion factor is: ',CF
          GOTO 30
     20   PRINT *, 'Hey stupid the units do not check!'
     30   END