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