GREB Decomposition: Solar Radiation

I turn to Dommenget and Floter’s 2011Conceptual understanding of climate change with a globally
resolved energy balance model for description of the treatment of solar radiation and albedo within the model.I have reformatted some equations and symbols for readability.
3.1 Solar radiation
The absorbed incoming solar radiation is given byF_solar = (1 -albedo_clouds) * (1 -albedo_surface) * S0 * r(lambda, t_julian) (2)
with the solar constant S0, the 24 h mean fraction reaching a normal surface area on top of the atmosphere, r, as function of latitude, k, and the Julian day of the calendar year, t_julian (Sellers 1965). A fraction of the incoming solar radiation is reflected by clouds, albedo_clouds, and by the surface, albedo_surf. The cloud albedo, albedo_clouds, is assumed to be proportional to the total cloud cover, which is given as a seasonal climatology (see Fig. 1f). For complete cloud cover albedo_clouds = 0.35.
The surface albedo, albedo_surf, is assumed to be a linear function of T_surf within a temperature interval near the freezing point of water and constant outside this temperature interval, see Fig. 3a. Within the temperature interval, where albedo_surf, is a function of T_surf, the solar radiation represents a strong positive feedback. This temperature dependence shall reflect a simple parameterization of the surface albedo dependence on the snow/ice-cover over land and sea ice cover over oceans, which is similar to other simple model approaches (e.g. Sellers 1976; Ramanathan 1977). The large glaciers of Greenland and Antarctica, for instance, are kept with a constant albedo, assuming that they will not change, see Fig. 1b for the glacier mask. Figure 3c, d illustrates where the snow-albedo feedback is active. During wintertime T_surface is within the temperature interval (-10C, 0C) only in a band around 40–50N. The strength of the feedback is also altered by the incoming solar radiation and by the cloud cover. Since the solar radiation in high latitudes winter is very weak, the ice-albedo feedback is also weaker the further north it goes. In summertime the feedback is much weaker and mostly in the Arctic Sea. We neglect any cloud feedbacks on the albedo in this formulation, due to the large uncertainty of the main feedback and its regional structure, although it may in principle be possible to include a simple feedback formulation in this model. Note also, that regional and seasonal variations in albedo_surf without snow/ice cover changes (e.g. vegetation) are also neglected.
The albedo due to clouds is set to a global static value of 0.35. Cloud cover is derived from the ISCCP data and is stored in the file cloud.coverage. Cloud cover does not evolve over time. This represents the totality of atmospheric contribution to the solar forcing. No aerosols, pollutants, or volcanoes.
The surface albedo is more complicated with an albedo for glacial ice, another for snow and ocean ice, and a third for land and sea regions without ice. The albedo for ice-free land and sea is a constant 0.10. The albedo for snow and ice and ice covered regions is 0.35. And the albedo for glacial regions is 0.50. There are separate temperature functions for smooth transition of albedo values between the ice free and icy regions on the land and on the sea – a variation of Budyko’s riff I believe.
The S0*r(lambda, t_julian) component is the strength of the solar forcing at a given latitude at a given time of year. The calculation is shown at wiki’s Insolation page. These values are unchanging within a time span of a few centuries and have been pre-calculated and stored in the file solar.radiation. These values are displayed below.

The solar forcing is calculated in the following subroutine.
F_solar = (1 -albedo_clouds) * (1 -albedo_surface) * S0 * r(lambda, t_julian) (2)
!+++++++++++++++++++++++++++++++++++++++
subroutine SWradiation(Tsurf, sw, albedo)
!+++++++++++++++++++++++++++++++++++++++
! SW radiation model
USE mo_numerics, ONLY: xdim, ydim
USE mo_physics, ONLY: ityr, sw_solar,da_ice, a_no_ice, a_cloud, z_topo &
& , Tl_ice1, Tl_ice2, To_ice1, To_ice2, glacier &
& , cldclim, log_exp
! declare temporary fields
real, dimension(xdim,ydim) :: Tsurf, sw, albedo, a_surf, a_atmos
! atmos albedo
a_atmos=cldclim(:,:,ityr)*a_cloud
! surface albedo
! Land: ice -> albedo linear function of T_surf
where(z_topo >= 0. .and. Tsurf = 0. .and. Tsurf >= Tl_ice2) a_surf = a_no_ice ! no ice
where(z_topo >= 0. .and. Tsurf > Tl_ice1 .and. Tsurf albedo/heat capacity linear function of T_surf
where(z_topo < 0. .and. Tsurf <= To_ice1) a_surf = a_no_ice+da_ice ! ice
where(z_topo = To_ice2) a_surf = a_no_ice ! no ice
where(z_topo To_ice1 .and. Tsurf no albedo changes
where(glacier > 0.5) a_surf = a_no_ice+da_ice
if (log_exp <= 5) a_surf = a_no_ice
! SW flux
albedo=a_surf+a_atmos-a_surf*a_atmos
forall (i=1:xdim)
sw(i,:)=SW_solar(:,ityr)*(1-albedo(i,:))
end forall
end subroutine SWradiation
To look at the sensitivity of the model, I tweaked the solar forcing by various amounts (110%, 101%, 99% and 90%) as shown in the chart above. I did not do the tweaking in the above subroutine, because modifying the solar forcing there seems to be negated by the flux corrections calculated for the control run. Instead, I dropped an if-block into the ‘time_loop’ switching on the file number (21=control, 22=scenario) where the surface temperature is calculated. ‘dsw’ is the tweaking factor.
! surface temperature if (ionum == 21) then Ts0 = Ts1 +dT_ocean +dt*( SW +LW_surf -LWair_down +Q_lat +Q_sens +TF_correct(:,:,ityr)) / cap_surf else Ts0 = Ts1 +dT_ocean +dt*( dsw*SW + LW_surf -LWair_down +Q_lat +Q_sens +TF_correct(:,:,ityr)) / cap_surf end if
I was curious as to the model’s response to a solar cycle forcing and ran the model again with a solar cycle with a period of 10.66 years and an amplitude of 0.005%. Results shown below.

—-
Dommenget, D., and J. Floeter 2011: Conceptual Understanding of Climate Change with a Globally Resolved Energy Balance Model. Climate dynamics, 2011, 37, 2143-2165.