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

Why not use the actual freezing temperature for MinimumTemperatureSeaIce? #173

Open
glwagner opened this issue Sep 5, 2024 · 12 comments
Open

Comments

@glwagner
Copy link
Member

glwagner commented Sep 5, 2024

The main benefit is simply that it makes sense rather than being random (and assuming S = 35) or something.

ClimaSeaIce has a simple tool to diagnose the melting temperature so its not hard at all.

MinimumTemperatureSeaIce() = MinimumTemperatureSeaIce(-1.8)

cc @simone-silvestri wondering if there is a reason for this or just convenience?

@glwagner
Copy link
Member Author

glwagner commented Sep 5, 2024

side node is the function has the wrong argument order for a mutating function that uses dispatch (should be mutated_args..., dispatch_args... other_args...).

function limit_fluxes_over_sea_ice!(grid, kernel_parameters, sea_ice::MinimumTemperatureSeaIce,
centered_velocity_fluxes,
net_tracer_fluxes,
ocean_temperature,
ocean_salinity)

@glwagner
Copy link
Member Author

glwagner commented Sep 5, 2024

Shouldn't we also prevent the ocean from going below the freezing temperature btw? Not just limit fluxes?

@simone-silvestri
Copy link
Collaborator

Nono, it is just convenience. I am not sure how "physical" this method is, but we can use a freezing temperature. If we use a correct freezing temperature indeed, we need to limit the interior. Using a constant temperature we should not need it as if the model is conservative (which is not because of the linear free surface) it should not be able to go below that minimum temperature in the interior if we limit the fluxes.

@glwagner
Copy link
Member Author

glwagner commented Sep 6, 2024

The point is not to make it more physical but just make it easier to understand. -1.8 is random whereas the freezing temperaure, is, well, the freezing temperature... it's more logical...

@glwagner
Copy link
Member Author

glwagner commented Sep 6, 2024

The model can go below freezing transiently, how would it warm back up? The dynamics here are identical to if we had a sea ice model, cooling causes the temperature to dip below freezing. Sure, you can shut off fluxes after that, but you'd also have to add warming to return the temperature to above freezing.

@simone-silvestri
Copy link
Collaborator

Right here, the warming is allowed. It is probably not extremely physical because the warming should be subject to a different albedo if we want to go the "physical" route.

@glwagner
Copy link
Member Author

Grid cells below the surface can dip below freezing due to vertical mixing

@glwagner
Copy link
Member Author

We should avoid assumptions based on how we think things will happen. It's helpful to consider extreme cases. The model has to produce reasonable behavior all the time. It's not about what 'we' want to do but ,along this option as reasonable as possible for anyone

@simone-silvestri
Copy link
Collaborator

Ok, let's add the freezing temperature from ClimaSeaIce.

@glwagner
Copy link
Member Author

Ok!

It occurs to me that one may not want to auto-adjust internal ocean temperatures to freezing because the model will no longer conserve energy. Just turning off fluxes maintains conservation. So if we want to adjust ocean temperatures to freezing, it should probably be an option rather than the only possibility (and maybe we don't need it at all).

As an example. I ran a simulation that accidentally removed continents, and the ocean temperature plunged to -40...

@simone-silvestri
Copy link
Collaborator

Yeah, longwave radiation is quite powerful! 😄

@glwagner
Copy link
Member Author

Also the atmospheric temperature over siberia is pretty cold.

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

No branches or pull requests

2 participants