packages feed

camfort-0.62: samples/units/dst-example/ex1.f90

program energy
  != unit :: speed = m/s

 != unit (m / s** (2)) :: gravity
 != unit (m) :: height
 != unit (kg) :: mass
  real, parameter :: mass = 3.00, gravity = 9.81, height = 4.20
 != unit (kg m** (2) / s** (2)) :: potential_energy
  real :: potential_energy

 != unit (1) :: half
 != unit (speed) :: velocity
  real, parameter :: half = 0.5, velocity = 4.00
 != unit (kg m** (2) / s** (2)) :: kinetic_energy
 != unit (kg m** (2) / s** (2)) :: total_energy
  real :: kinetic_energy, total_energy

  potential_energy = mass * gravity * height
  kinetic_energy = half * mass * square(velocity)

  total_energy = potential_energy + kinetic_energy

  contains

  real function square(x)
    real x
    square = x * x
  end function square
end program energy