CARVIEW |
Navigation Menu
-
Notifications
You must be signed in to change notification settings - Fork 334
Description
Brief summary of bug
I came across a number of atm2lnd terms that have units of Pa, which I think should be included in the atm -> lnd downscaling.
General bug information
CTSM version you are using: master; this bug (if I'm right in thinking it's a bug) would have been in place for a long time
Does this bug cause significantly incorrect results in the model's science? Possibly
Configurations affected: I think this impacts any configuration with CISM – where we downscale to vegetated columns as well as glacier columns over Greenland. It may also impact any configuration with multiple glacier elevation classes (which is typically the case over Greenland and Antarctica), though I'm not sure if any of the problematic quantities have an impact on glacier columns.
Details of bug
Looking through the code in lnd_import and atm2lndType, I realized that there are a number of variables that have units of Pa and are derived through a multiplication by the gridcell-level pbot value. In columns where we downscale atmospheric quantities to the column level, pbot gets adjusted for each column. Some of these other variables are also downscaled, but not all.
Potentially impacted quantities that I see from a quick look are co2, ch4 and variables that depend on pbot in this subroutine:
https://github.com/escomp/CTSM/blob/master/src/cpl/utils/lnd_import_export_utils.F90#L24-L99
There may be others, too, but those are the ones that catch my eye.
My guess is that these variables mostly / entirely impact vegetated columns. Most of the current downscaling is done over glacier columns, but we also downscale to vegetated columns in the CISM domain (typically Greenland), so I think this would at least have an impact there. This may have more widespread impacts in @swensosc 's branch where I think he has extended the downscaling to operate over hillslope columns.
Solving the problem
A relatively straightforward solution would be to add these extra variables to the downscaling done in subroutine downscale_forcings, creating downscaled versions that depend on the column-level pbot.
An alternative, which may help prevent errors like this in the future, would be: Do not create gridcell-level derived quantities that depend on pbot in lnd_import / derive_quantities. Instead, wait until after downscale_forcings has been done and then create the derived quantities at the column level, based on the downscaled pbot. (However, ch4 and possibly other variables seem to already come in with units of pressure, so would need to be added to the downscaling in any case.)
In either case, references to these variables in the science code will need to be changed to refer to downscaled, column-level quantities.