This is similar to some older resolved issues like #172
Suppose we want to compare a pair of single-column RRTMG processes that have different solar constants, but are otherwise identical. This should work:
import climlab
mystate = climlab.column_state()
rad1 = climlab.radiation.RRTMG(state=mystate)
rad2 = climlab.process_like(rad1)
rad2.S0 = 1200.
The problem is that currently the new value of S0 is ignored by the model rad2. If we step the models rad1 and rad2 forward in time, they produce exactly the same results.
The reason is that the new S0 value is not propagated to the Shortwave subprocess. This assertion passes:
assert rad1.S0 == rad1.subprocess['SW'].S0
while this one fails:
assert rad2.S0 == rad2.subprocess['SW'].S0
(an AssertionError is produced)
The workaround
For now, one can simply modify the S0 value of the SW subprocess instead:
rad2.subprocess['SW'].S0 = 1200.