OceanBioME / OceanBioME.jl

🌊 🦠 🌿 A fast and flexible modelling environment written in Julia for modelling the coupled interactions between ocean biogeochemistry, carbonate chemistry, and physics
https://oceanbiome.github.io/OceanBioME.jl/
MIT License
40 stars 20 forks source link

Implements `PISCES` model #178

Open jagoosw opened 2 months ago

jagoosw commented 2 months ago

To do (for me but others feel free to open a PR into this branch doing them if you want to):

I also imagine that there are a lot of GPU issues, and a lot of formatting needs to be changed

CC: @hannahmw1 @ciadht

jagoosw commented 1 month ago

Btw, I've temporarily turned off the automatic testing for this branch since its not testing any of the PISCES stuff anyway yet, and we have a limited quota for testing. When it gets closer to completion let me know and I'll turn it back on.

jagoosw commented 4 days ago

Comment origionally posted by @ciadht in #209:

This where we're leaving PISCES after the internship:

PISCES is currently a working and (hopefully) correct model. She can run with a timestep of >=50mins on standard box and column models.

What remains to be done: Although sinking speed has been implemented, w_GOC is not yet depth dependent. Currently this is because of issues with setup_velocity_fields requiring the velocity fields to be a named tuple of scalars, or a velocity field itself. As I am not sure how velocity fields work, I have left this, but the function field in the way I had tried did not work. Yearly maximum silicate, carbonate saturation ratio and dust deposition, have all been assigned temporary values but not implemented fully. Length of day is currently set to 1.0. This would need to be changed to allow more accurate phytoplankton growth. Latitude is currently set at -1. This also needs a proper input function, as although the Aumont Paper only needs a positive or negative value of latitude, to add correct length of day we would need latitude. The Aumont Paper assumes a constant vertical diffusivity of 1.0. Jago mentioned that this is actually determined by Oceananigans and OceanBioME, so this would need to be corrected. PISCES does not work with open_bottom = false. Don’t know if this must be addressed but for testing it probably should do. Testing files for the model. Fix the Calcite model according to TOP/PISCES/P4Z/p4zlys.F90, and https://bg.copernicus.org/articles/4/505/2007/bg-4-505-2007.pdf. Box Model could be altered to be a slice at different z values. Currently only z = 0 is possible, even with the changing of the grid type. Fix the air-sea CO2 flux in the Column Model.

This leaves the to-do above.