Implement npzd model
- Outsource parameter definitions to yaml configuration file
- How to avoid case definitions for continuously differentiable function? oxic vs. anoxic conditions → individual parameter switches and functions of environmental conditions (mixed) resuspension vs. deposition depending on critical shear stress limitation terms: min(lim_1, lim_2, lim_3)
- How to incorporate more complex functions like N-Limitation into matrix formulation (torch.tensor((NPZD_Old_State[4] / (Nitrate_Half_Saturation + NPZD_Old_State[4]) * torch.exp(-1.0 * Ammonium_Inhibition * NPZD_Old_State[5]))))?
- How to consider additional fluxes: air-sea oxygen flux, sediment release of nutrients, sinking, etc.
- Remove diagnostic calculations by moving them into the rate equations or keep separate? -- category 1: functions of T, light, bottom stress (defined by critical shear - - -- stress and for resuspension the actual shear stress) category 2: simplifications of equations by calculating repeated parts diagnostically
- Include sediment organic matter and inorganic phosphorus in state or separately?