Skip to content

Potential Bug in Surface Plume Implementation in GOTM #73

Open

Description

@lonefeet

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.

Thank you for your attention to this matter.

Activity

  1. hburchard commented on Nov 26, 2025

    @hburchard
    Contributor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions