Skip to content

Mpnds4#655

Merged
einola merged 26 commits intodevelopfrom
mpnds4
Aug 9, 2024
Merged

Mpnds4#655
einola merged 26 commits intodevelopfrom
mpnds4

Conversation

@docguibou
Copy link
Copy Markdown
Contributor

Einar's latest melt pond inspired by Flocco et al (2010) and Holland et al. (2012)

einola and others added 23 commits October 5, 2023 21:10
The initial code written by me and Dani. It compiles, but it needs an
option to turn on the meltpond scheme and mooring outputs.
It had a misspelling in its name - and more importantly, the
permeability was incorrectly calculated.
It's called thermo.use_meltponds
We can now output "meltpond_volume", "meltpond_lid_volume", and
"meltpond_fraction". All are averaged over the entire grid cell.
There were lots of minor problems with the initial implementation. Most
of them are now fixed. The model runs and produces not unreasonable
looking meltponds. The main remaining problems are
 - For some reason the meltpond volume recovers almost immediately after
   flushing
 - I get very deep meltponds in the oldest and most ridged ice. These
   can be deeper than the ice is thick and they never go away, because
   they don't flush and the lid becomes more than a meter thick and
   grows very slowly.
The isPermiable function now takes all temperatures into account and
selects the Assur or Notz formulation, depending on temperature.
Some code clean-up of isPermeable. No functionality change or bug
fixing.
A less convoluted and more obvious way of growing, melting, or forming a
lid on top of a melt pond.
There's a risk that the ponds become unrealistically deep. The can even
become deeper than the ice is thick. This patch prevents this, and
(arbitrarily) limits the depth to 1/3 of the ice thickness by flushing
excess water via the runoff variable. The limit can be thought out more
carefully.
I was missing the melting term for the lid. This is now fixed.
In this version, the meltponds don't affect the freshwater balance
(EMP). I also added a code to remove meltponds if the lid gets too thick
(more then 30 cms).
I simply added a constant (tunable) albedo for the fraction of ponds
without a lid (or a lid thinner than 5 cm - arbitrary number). This has
a substantial effect in initial tests, but much more testing is needed.
This adds an alb_scheme == 4 option. It simply assumes constant snow, ice, and meltpond albedos. Something like alb_ice = 0.54, alb_sn = 0.83, and alb_pnd = 0.3 makes sense.
Two manual fixes to replace physical::mu with M_freezingpoint_mu.
Turns out that it's more Holland et al. (2012) that I want to follow,
rather than Hunke et al (2013). Simpler and with fewer fudge factors.
@docguibou docguibou requested a review from einola August 6, 2024 13:08
Copy link
Copy Markdown
Member

@einola einola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You need to move the vm call, it's very bad for performance to have it there. Do what you want with the other comments. Otherwise good.

Comment thread model/finiteelement.cpp Outdated
Comment on lines +6515 to +6520

// Drain the pond to the freeboard, if it's permiable
// The pond drains immediately - this may not be accurate
const double freeboard = M_conc[cpt]*( hi*(physical::rhow-physical::rhoi) - hs*physical::rhos) / physical::rhow;
if ( M_pond_volume[cpt] > freeboard && this->isPermeable(cpt) )
M_pond_volume[cpt] -= freeboard;
//const double freeboard = M_conc[cpt]*( hi*(physical::rhow-physical::rhoi) - hs*physical::rhos) / physical::rhow;
//if ( M_pond_volume[cpt] > freeboard && this->isPermeable(cpt) )
// M_pond_volume[cpt] -= freeboard;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would just delete this section and also the isPermeable function.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Comment thread model/finiteelement.cpp Outdated
Comment thread model/finiteelement.cpp Outdated
@einola einola merged commit 2276129 into develop Aug 9, 2024
@einola einola deleted the mpnds4 branch August 9, 2024 08:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants