Source code for climlab.radiation.absorbed_shorwave

from __future__ import division, print_function
from climlab.process.energy_budget import EnergyBudget
from climlab import constants as const


[docs] class SimpleAbsorbedShortwave(EnergyBudget): '''A class for the shortwave radiation process in a one-layer EBM. The basic assumption is that all the shortwave absorption occurs at the surface. Computes the diagnostic ``ASR`` (absorbed shortwave radiation) from the formula ``self.ASR = (1-self.albedo) * self.insolation`` and applies this as a tendency on the surface temperature ``self.Ts`` ``albedo`` and ``insolation`` are given as inputs. These should either be scalars or have same dimensions as state variable ``Ts`` User can supply constants, or link to diagnostics of specific insolation and albedo processes. ''' def __init__(self, insolation=const.S0/4, albedo=0.3, **kwargs): super(SimpleAbsorbedShortwave, self).__init__(**kwargs) self.add_input('albedo', albedo) self.add_input('insolation', insolation) self.add_diagnostic('ASR', 0.*self.Ts) self.topdown = False # call subprocess compute methods first def _compute_heating_rates(self): self.ASR = (1-self.albedo) * self.insolation self.heating_rate['Ts'] = self.ASR