Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Snow depth increase due to inconsistent snow cover fraction calculation #573

Closed
kjetilaas opened this issue Nov 23, 2018 · 12 comments
Closed
Assignees
Labels
bug something is working incorrectly science Enhancement to or bug impacting science

Comments

@kjetilaas
Copy link

Brief summary of bug

In the presence of surface water, the old and new snow cover fractions are inconsistently calculated in subroutine "SnowCompaction". This can result in significant negative compaction (snow depth increase) during snow melt.

General bug information

CTSM version you are using: Probably All (last version I have tested is release-clm5.0.8)

Does this bug cause significantly incorrect results in the model's science? Yes

Details of bug

There is an inconsistency in the calculation of snow cover fraction (FSNO) in the SnowCompaction subroutine when there is surface water present. The actual snow cover is limited to 0.99 when surface water is present (and the surface water fraction is set to 0.01). However, SnowCompaction recalculates the old FSNO without accounting for this limitation. This results in an apparent decrease in FSNO, and corresponding negative snow compaction from snow melt (ddz3).

This can result in substantial, artificial increase in snow depth during summer (can be more than 0.5 m during a single season).

The problem might be masked in monthly output, but could be significant whenever snow cover is close to 1 and surface water present. Snow mass is indirectly affected by this as radiation and temperature fluxes in the snow pack will be affected by artificially thick snow layers.

@swensosc
Copy link
Contributor

It looks like the limitation to ensure non-zero fh2osfc needs to be taken into account in snowcompaction. I will test a fix and try to get this corrected.

@billsacks
Copy link
Member

@lvankampenhout calling your attention to this

@swensosc
Copy link
Contributor

I've created a branch with a simple fix to the calculation of fsno_melt: https://github.com/swensosc/ctsm/tree/snowcompaction_573. @kjetilaas can you check whether this corrects the behavior you noticed?

@kjetilaas
Copy link
Author

kjetilaas commented Nov 28, 2018

This fix seems to work (after also addding "frac_h2osfc" to the subroutine).

I have just tested this for a single point (flat, high-Arctic location). Here the "snowdp" is reduced with up to 85 cm during snow melt. This is probably an extreme case, but it seems this fix is important. Interestingly, the snow water eq. ("h2osno") is generally larger after the fix (i.e. less snow melt). So somehow the artificially lage "snowdp" is enhancing snow melt.

@lvankampenhout
Copy link

In the past we've seen unrealistic sub-surface melt in Antarctica, caused by too low values for snow density, which inhibits heat conduction and thereby trapping heat until melting starts. Larger values for snow density/thermal conductivity fixed this. This would also provide an explanaition to what you are seeing @kjetilaas

Just checking: this bug should not impact glacier landunits right, because glacier does not allow surface water?

@kjetilaas
Copy link
Author

kjetilaas commented May 21, 2019

This issue was solved with a small correction in the snow compaction code, which I pointed out and @swensosc provided a fix for. I am not sure why this has not been included in the new releases, but it seems to me to be a clear bug. I am sure snow density parameters might be worth looking closer at also in my simulations, but it was not the source of this unphysical snow behaviour.

About the glaciated landunits, I agree that these should not be affected, and I cannot see any change in these areas with the correction.

@billsacks billsacks self-assigned this May 21, 2019
@billsacks
Copy link
Member

@lvankampenhout My understanding is also that glacier landunits should not be affected.

@kjetilaas sorry that we lost track of this issue! Before we bring this to master, we need to check its impact in a global run. @swensosc will do the necessary run soon.

@billsacks billsacks added tag: bug - impacts science bug something is working incorrectly and removed type: bug - impacts science labels May 24, 2019
@billsacks
Copy link
Member

From @swensosc 's run of the diagnostics package, looked at with @olyson

  • Snow depth is a bit smaller over Greenland and polar regions on average, as expected (up to 5-10% decrease in average snow depth averaged over the Canadian Arctic)

  • There is a small increase in h2osno over Greenland: about 30 mm averaged over Greenland; it looks like the main changes are around the coasts (which makes sense given that this bug only affects vegetated landunits)

  • There are small changes in runoff over Greenland

  • Changes in snow cover fraction are tiny

  • Overall, this doesn't look climate changing, but could potentially have a significant impact on select grid cells, and on some variables in polar regions

@billsacks
Copy link
Member

@kjetilaas and others: this is fixed on master (in ctsm1.0.dev047). We probably will not fix it on the release-clm5.0 branch, in order to avoid changing answers on that branch.

@adamrher
Copy link
Contributor

Hi @kjetilaas, cc @lvankampenhout

In the NorESM2 paper just out in GMD, it seems a more general fix was used to deal with snow lingering around in the summer in arctic regions:

Screen Shot 2020-02-12 at 2 11 43 PM

Do you have any information on why NorESM decided to go that route, despite having fixed the issue that is the topic of this thread?

I am having trouble understanding why snowpack around the Greenland coasts are not completely melting away by the end of summer ... If you can, would you mind pointing me to the CLM code mods that is referred to in that paper. i.e., send the surface water pool to run-off when it freezes? I am curious to see if this has a large effect using the current code base.

@kjetilaas
Copy link
Author

Hi @adamrher, cc @lvankampenhout,

The modification described the NorESM2 paper was made before we found the actual bug reported here. The bug fix never made it into the NorESM code used for CMIP6. Although both the actual bug and the modification to NorESM are related to surface water, they are really two separate things, and the NorESM fix mitigated the snow depth bug only to a limited extent.

So, I would definitely include the fix in this tread in your simulations. What to do with freezing surface water is less clear. Ideally, I think this variable should also have a frozen state which is not snow. Both during spring (initial melt) and during fall (when surface water start freezing), I think it could be problematic to move this water to snow, which has very different thermal and radiative properties than for instance lake ice. The NorESM solution is not ideal either, but could be worth testing. You will find the code her (only the change to SoilHydrologyMod is related to this issue):
NorESMhub@ed7194d

You could also try to write QH2OSFC_TO_ICE to history file (not an output by default I think), to see if this is actually a significant flux in your simulations. Your issue could also just be a cold or wet bias in your forcing.

@adamrher
Copy link
Contributor

Thanks for all this info @kjetilaas. You make a good point about potential thermodynamic inconsistencies of treating a frozen surface water pool as snow pack.

I'm using a fairly up to date clm tag ctsm1.0.dev071, and it seems that a lot more of SoilHydrologyMod has since been modularized into their own subroutines ... so it took some time translating your code fix into the current code base, but I managed to do it. I'll be playing around with this and If I see something worth sharing, I'll loop you in. At first glance, there are no obvious, glaring sensitivities to this fix.

@samsrabin samsrabin added the science Enhancement to or bug impacting science label Aug 8, 2024
@ekluzek ekluzek moved this to Done (non release/external) in CTSM: Upcoming tags Aug 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug something is working incorrectly science Enhancement to or bug impacting science
Projects
Status: Done (non release/external)
Development

No branches or pull requests

6 participants