EarthTemperature.frink

View or download EarthTemperature.frink in plain text format


// Program to find earth's temperature if it did and didn't have greenhouse
// gases, atmosphere, etc.

// Tweakable parameters:

// Assume albedo = 0 (perfectly black)?
// Actual earth average albedo is about 0.30 (and varies with time.)
// (This is the Bond albedo, not the geometric albedo.)
albedo = 0.30

// Where earthEta is the emissivity of the earth.  For a blackbody this is 1,
// for most materials, around 0.95, but for clouds it's about 0.5.
// The actual effective emissivity of the earth (because of clouds,) is
// measured to be about 0.612.
// Setting the effective emissivity and the albedo to their measured values
// gives a temperature very close to their actual values (average surface
// temperature of the earth is usually given at 59 F) and takes into account
// greenhouse gases and atmospheric effects.
earthEta = .612

// Total power absorbed by the earth is equal to the fraction of the sun's
// radiated power that strikes a circle with the earth's radius:
earthReceivingArea = pi earthradius^2

// At the distance that the earth is from the sun, the sun's whole power is
// spread over a sphere:
sunSphere = 4 pi earthdist^2

// So the earth receives only:
earthPower = sunpower * (earthReceivingArea/sunSphere) * (1-albedo)

println["With an albedo of $albedo"]
println["And an emissivity of $earthEta"]
println["Earth receives " + (earthPower -> "watts")]

// The earth's surface area:
earthArea = 4 pi earthradius^2

//   I'll assume that the earth is a blackbody and radiates its energy into
// another blackbody with a temperature of 2.725 K (the latest figure for the
// cosmic background radiation; the effective temperature of our surrounding
// neighborhood might be somewhat higher due to dust clouds, planets, distant
// stars, that radiate back at us a little, but probably not *too* much.)

Tu = 2.725 K

//  A body radiates an amount of power equal to:

//   sigma eta T^4 area

// Where sigma is the Stefan-Boltzmann constant (Frink knows this) and eta is
// the emissivity (which is 1 for a blackbody).  T is, of course, the
// temperature.  We'll call the temperature of the earth Te and the temperature
// of the universe Tu.

// The area that we radiate over is the total surface area of the earth:
earthArea =  4 pi earthradius^2

//  Thus, we reach equilibrium when the power radiated (out) by the earth is
// equal to (the power radiated (in) by the universe plus the power radiated
// (in) by the sun:)

//   sigma earthEta Te^4 earthArea = sigma Tu^4 earthArea + earthPower

// Rearranging to solve for Te,

Te = ((earthPower + sigma earthArea Tu^4)/(sigma earthEta earthArea))^(1/4)

println["Earth's average temperature is " + F[Te] + " F"]


View or download EarthTemperature.frink in plain text format


This is a program written in the programming language Frink.
For more information, view the Frink Documentation or see More Sample Frink Programs.

Alan Eliasen was born 17591 days, 17 hours, 36 minutes ago.