C===============================COMP.FOR================================ C C COMP: COMPILES STRING OF UNITS TO ITS FUNDAMENTAL CONVERSION C FACTOR AND PRODUCES AN EIGHT ELEMENT VECTOR OF FUNDA- C MANTAL UNIT POWERS. C C CF: FINAL COVERSION FACTOR IN TERMS OF FUNDAMENTAL UNITS. C VPOW: 8 ELEMENT VECTOR; C 1 = Kilogram C 2 = Meter C 3 = Second C 4 = Ampere C 5 = Candela C 6 = Kelvin C 7 = Null (Dimensionless) C 8 = Mol C STRU: STRING OF UNITS C TV: TABLE OF VALUES (FUNDAMENTAL CONVERSION FACTORS) C TU: TABLE OF FUNDAMENTAL UNIT NAMES C TFUP: TABLE OF FUNDAMENTAL UNIT POWERS SUBROUTINE COMP(CF, VPOW, STRU, TV, TU, TUIND, TFUP) PARAMETER (MAXUNIT=7, MAXARG=70) REAL*8 CF, F, TV(120) INTEGER VPOW(8), VP(8), TFUP(120,8), SIGN, IND, POWER, SH INTEGER TUIND(120) CHARACTER*(MAXARG) STRU CHARACTER*423 TU CHARACTER*(MAXUNIT) UNIT SIGN=1 CF=1D0 DO 100, K=1,8 VPOW(K)=0 100 CONTINUE 5 IF (SIGN .EQ. 0) GOTO 30 IF (SIGN .EQ. 99) GOTO 20 CALL GETUNIT(STRU, UNIT, POWER, SIGN, SH) CALL GETCF(F, IND, TU, TUIND, TV, UNIT, POWER, SH) CALL GETFU(VP, IND, POWER, TFUP) CALL VADD(VPOW,VP) CF=CF*F GOTO 5 20 PRINT *,'FINISHED WITH 99' 30 RETURN END