CUNIT

Converts X in units XUNITS to Y in units YUNITS.

Required Arguments

X — Value to be converted. (Input)

XUNITS — Character string containing the name of the units for X. (Input)

See Comments for a description of units allowed.

See Comments for a description of units allowed.

Y — Value in YUNITS corresponding to X in XUNITS. (Output)

YUNITS — Character string containing the name of the units for Y. (Input)

See Comments for a description of units allowed.

See Comments for a description of units allowed.

FORTRAN 90 Interface

Generic: CALL CUNIT (X, XUNITS, Y, YUNITS [, …])

Specific: The specific interface names are S_CUNIT and D_CUNIT.

FORTRAN 77 Interface

Single: CALL CUNIT (X, XUNITS, Y, YUNITS)

Double The double precision name is DCUNIT.

Description

Routine CUNIT converts a value expressed in one set of units to a value expressed in another set of units.

The input and output units are checked for consistency unless the input unit is “SI”. SI means the Systeme International d’Unites. This is the meter‑kilogram‑second form of the metric system. If the input units are “SI”, then the input is assumed to be expressed in the SI units consistent with the output units.

Comments

1. Strings XUNITS and YUNITS have the form U1 * U2 * … * Um/V1 … Vn, where Ui and Vi are the names of basic units or are the names of basic units raised to a power. Examples are, “METER * KILOGRAM/SECOND”, “M * KG/S”, “METER”, or “M/KG2”.

2. The case of the character string in XUNITS and YUNITS does not matter. The names “METER”, “Meter” and “meter” are equivalent.

3. If XUNITS is “SI”, then X is assumed to be in the standard international units corresponding to YUNITS. Similarly, if YUNITS is “SI”, then Y is assumed to be in the standard international units corresponding to XUNITS.

4. The basic unit names allowed are as follows:

Units of time

day, hour = hr, min = minute, s = sec = second, year

day, hour = hr, min = minute, s = sec = second, year

Units of frequency

Hertz = Hz

Hertz = Hz

Units of mass

AMU, g = gram, lb = pound, ounce = oz, slug

AMU, g = gram, lb = pound, ounce = oz, slug

Units of distance

Angstrom, AU, feet = foot = ft, in = inch, m = meter = metre, micron, mile, mill, parsec, yard

Angstrom, AU, feet = foot = ft, in = inch, m = meter = metre, micron, mile, mill, parsec, yard

Units of area

acre

acre

Units of volume

l = liter = litre

l = liter = litre

Units of force

dyne, N = Newton, poundal

dyne, N = Newton, poundal

Units of energy

BTU(thermochemical), Erg, J = Joule

BTU(thermochemical), Erg, J = Joule

Units of work

W = watt

W = watt

Units of pressure

ATM = atomosphere, bar, Pascal

ATM = atomosphere, bar, Pascal

Units of temperature

degC = Celsius, degF = Fahrenheit, degK = Kelvin

degC = Celsius, degF = Fahrenheit, degK = Kelvin

Units of viscosity

poise, stoke

poise, stoke

Units of charge

Abcoulomb, C = Coulomb, statcoulomb

Abcoulomb, C = Coulomb, statcoulomb

Units of current

A = ampere, abampere, statampere,

A = ampere, abampere, statampere,

Units of voltage

Abvolt, V = volt

Abvolt, V = volt

Units of magnetic induction

T = Tesla, Wb = Weber

T = Tesla, Wb = Weber

Other units

1, farad, mole, Gauss, Henry, Maxwell, Ohm

1, farad, mole, Gauss, Henry, Maxwell, Ohm

The following metric prefixes may be used with the above units. Note that the one or two letter prefixes may only be used with one letter unit abbreviations.

A | Atto | 1.E ‑ 18 |

F | Femto | 1.E ‑ 15 |

P | Pico | 1.E ‑ 12 |

N | Nano | 1.E ‑ 9 |

U | Micro | 1.E ‑ 6 |

M | Milli | 1.E ‑ 3 |

C | Centi | 1.E ‑ 2 |

D | Deci | 1.E ‑ 1 |

DK | Deca | 1.E + 2 |

K | Kilo | 1.E + 3 |

Myriad | 1.E + 4 (no single letter prefix; M means milli | |

Mega | 1.E + 6 (no single letter prefix; M means milli | |

G | Giga | 1.E + 9 |

T | Tera | 1.E + 12 |

5. Informational error

Type | Code | Description |
---|---|---|

3 | 8 | A conversion of units of mass to units of force was required for consistency. |

Example

The routine CONST is used to obtain the speed on light, c, in SI units. CUNIT is then used to convert c to mile/second and to parsec/year. An example involving substitution of force for mass is required in conversion of Newtons/Meter2 to Pound/Inch2.

USE CONST_INT

USE CUNIT_INT

USE UMACH_INT

IMPLICIT NONE

INTEGER NOUT

REAL CMH, CMS, CPY, CPSI

! Get output unit number

CALL UMACH (2, NOUT)

! Get speed of light in SI (m/s)

CMS = CONST('SpeedLight')

WRITE (NOUT,*) 'Speed of Light = ', CMS, ' meter/second'

! Get speed of light in mile/second

CALL CUNIT (CMS, 'SI', CMH, 'Mile/Second')

WRITE (NOUT,*) 'Speed of Light = ', CMH, ' mile/second'

! Get speed of light in parsec/year

CALL CUNIT (CMS, 'SI', CPY, 'Parsec/Year')

WRITE (NOUT,*) 'Speed of Light = ', CPY, ' Parsec/Year'

! Convert Newton/Meter**2 to

! Pound/Inch**2.

CALL CUNIT(1.E0, 'Newton/Meter**2', CPSI, &

'Pound/Inch**2')

WRITE(NOUT,*)' Atmospheres, in Pound/Inch**2 = ',CPSI

END

Output

Speed of Light = 299792440.0 meter/second

Speed of Light = 186282.39 mile/second

Speed of Light = 0.3063872 Parsec/Year

*** WARNING ERROR 8 from CUNIT. A conversion of units of mass to units of

*** force was required for consistency.

Atmospheres, in Pound/Inch**2 = 1.4503773E-4