You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Potential Bug in Surface Plume Implementation in GOTM #73
I am writing to report a potential bug in the surface plume implementation that I discovered during my simulations.
Problem Description
When using the surface plume configuration (plume_type = surface), the model produces abnormal results:
Bottom friction becomes zero
Turbulent kinetic energy becomes extremely small with periodic oscillations
Surface salinity becomes zero
Velocity fields show abnormal behavior
However, when I switch to bottom plume configuration (plume_type = bottom) with identical other settings, the model runs normally and produces physically reasonable results.
Configuration Details
My gotm.yaml configuration:
int_pressure:
type: plume
plume:
type: surface # Problematic
# type: bottom # Works correctly
x_slope: 0.001
y_slope: 0.00005
Technical Context
External forcing: Velocity fields from reanalysis data
Turbulence model: Standard GOTM turbulence closure
Model version: latest
Platform: windows
Evidence of the Bug
The consistent failure with surface plume and success with bottom plume suggests a specific issue in the surface plume implementation rather than general configuration problems.
Suspected Code Locations
Based on my analysis, the issue might be in:
friction.F90: Surface friction calculation for plume scenarios
internal_pressure.F90: Internal pressure gradient calculation for surface plumes
Boundary condition handling in the momentum equations
Steps to Reproduce
Configure a case with plume_type = surface
Use external velocity forcing
Compare with identical setup using plume_type = bottom
Request
Could you please investigate the surface plume implementation? I'm available to provide additional diagnostic information or test cases if needed.
thanks a lot for your question, and please excuse my late reply.
I think that the problem you have is due to the external forcing by means of prescribed velocity fields, which is transmitted by means of pressure gradient reconstruction. However, the pressure gradient for the plume simulations is already calculated from the slope of the ice-ocean interface and the density difference between plume and ambient water. That is constructed in a way that a zero pressure gradient results at the bottom (for surface plumes).
What exactly is the aim of your simulation? Maybe, the setup could be modified to serve your purpose.
Activity
hburchard commentedon Nov 26, 2025
Dear colleague,
thanks a lot for your question, and please excuse my late reply.
I think that the problem you have is due to the external forcing by means of prescribed velocity fields, which is transmitted by means of pressure gradient reconstruction. However, the pressure gradient for the plume simulations is already calculated from the slope of the ice-ocean interface and the density difference between plume and ambient water. That is constructed in a way that a zero pressure gradient results at the bottom (for surface plumes).
What exactly is the aim of your simulation? Maybe, the setup could be modified to serve your purpose.
Best regards, Hans.