Skip to content

Update to treatment of vertical passive tracers and a new pseudo-salt tracer#353

Merged
adcroft merged 25 commits into
mom-ocean:dev/masterfrom
ashao:vertical_tracer_fix
Sep 22, 2016
Merged

Update to treatment of vertical passive tracers and a new pseudo-salt tracer#353
adcroft merged 25 commits into
mom-ocean:dev/masterfrom
ashao:vertical_tracer_fix

Conversation

@ashao
Copy link
Copy Markdown
Collaborator

@ashao ashao commented Sep 13, 2016

The changes made here ensure that passive tracers are treated in the same way as the active tracers.
Overview of changes

  • tracer_vertdiff was moved from MOM_tracer_registry.F90 to MOM_tracer_diabatic.F90
  • The new subroutine applyTracerBoundaryFluxesInOut is an equivalent routine to applyBoundaryFluxesInOut. This is called during tracer_vertdiff if the appropriate options are passed into that routine.
  • This new subroutine also now allows passive tracers to be conserved when ALE is used
  • A new passive tracer, dubbed 'pseudo_salt' has been added that uses the same initial conditions and boundary fluxes as the thermodynamic salt tracer. The diagnostic 'pseudo_salt_diff' should be zero everywhere if active and passive tracers are treated the same.
  • A new run time flag has been added called 'TRACER_TRIDIAG' which uses tracer_vertdiff instead of tridiagTS to do vertical diffusion of T and S.
  • The fidelity of these changes was confirmed in a version of the Baltic test case configured for use in ALE z
  • The changes in this pull request should NOT change answers except for passive tracers

jeffflick and others added 20 commits September 30, 2013 12:21
- Added ocean_SIS/OM4_025 (new basis for CM4 ocean component)
- *Major fix for "interp from Z"
- Added z-diagnostics to OM4/MOM6z
…ve tracers because of a layer thickness update.w

Details:
  In the subroutine applyBoundaryFluxesInOut, the 'h' field is updated based on freshwater fluxes. T and S are treated in a way that is
consistent with these mass fluxes. However for passive tracers, the change in layer thickness (particularly at the top) does not result
in a change of tracer concentration. Thus, the 'hold' field that is passed into tracer_column_fns and eventually tracer_vertdiff is either
thicker or thinner, but the tracer concentration in that cell has not changed resulting in a net change in tracer inventory. This fix
modifies the thickness of the top layer by subtracting the freshwater flux (set in applyBoundaryFluxesInOut as ea(i,j,1)) before passing 'hold'
into the tracer_column_fns. This change should only affect passive tracers and not change budgets of T, S, or mass.
…Need to think about how to implement it most efficiently
…ngificant figures are identical except for the last 2 or 3, but it is different in the exponent by a factor of 1000. The factor of 1000 arises because write_energy divides the total salt stock by mass. However, differences do exist between pseudo_salt and salt on a grid cell. Unsure if this is a real difference or not.
…because of freshwater flux during ice formation/melting
…ed by comparing the passive pseudo-salt tracer to the active salt tracer used for thermodynamic calculations. A small difference in the placement of parentheses in tracer_vertdiff compared to tridiagTS lead to answers changing when T/S were diffused vertically using the passive tracer routines. In a Baltic ALE-z test case, the pseudo salt tracer tracks the active salt tracer perfectly.
@ashao
Copy link
Copy Markdown
Collaborator Author

ashao commented Sep 13, 2016

Also note that this does NOT fix the passive tracer concentration for tracer which use MOM_generic_tracer. generic_tracer_vertdiff_G must be updated similarly to tracer_vertdiff in MOM_tracer_diabatic.F90.

@ashao
Copy link
Copy Markdown
Collaborator Author

ashao commented Sep 21, 2016

To validate this fix for the generic tracer framework, I used a OM4 0.5 degree configuration based on John Krasting's CFC/SF6 model run. I integrated it for a day, then used it as a restart for a short 5-day run where surface fluxes of CFCs were turned off. Total CFC-11 and CFC-12 stock were conserved to the last 4 decimal places which is the same level of accuracy as passive tracers using the MOM6 tracer framework.

@adcroft adcroft merged commit 9cf6b64 into mom-ocean:dev/master Sep 22, 2016
@jkrasting
Copy link
Copy Markdown
Contributor

@ashao -

@adcroft, @nikizadehgfdl, and I were looking at this update. Are any changes needed to ocean_shared for this to work?

@ashao
Copy link
Copy Markdown
Collaborator Author

ashao commented Sep 22, 2016

@nikizadehgfdl , @adcroft , @jkrasting ,
No there should be no changes necessary to any of the ocean_shared routines.

Originally, I thought there might need to be, but I was able to organize it so that the fix is only implemented on the MOM6 side via MOM_generic_tracer.F90.

Andrew

@jkrasting
Copy link
Copy Markdown
Contributor

Excellent. Thanks @ashao


Dr. John Krasting, Physical Scientist
NOAA/Geophysical Fluid Dynamics Laboratory
Biogeochemistry, Ecosystems, and Climate Group
201 Forrestal Road, Princeton, NJ 08540
P. (609) 452-5359 | F. (609) 987-5063

On Thu, Sep 22, 2016 at 11:51 AM, Andrew Shao notifications@github.com
wrote:

@nikizadehgfdl https://github.com/nikizadehgfdl , @adcroft
https://github.com/adcroft , @jkrasting https://github.com/jkrasting
,
No there should be no changes necessary to any of the ocean_shared
routines.

Originally, I thought there might need to be, but I was able to organize
it so that the fix is only implemented on the MOM6 side via
MOM_generic_tracer.F90.

Andrew


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
NOAA-GFDL#353 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AGSgc5khXuJlwUX5I-weonDSAmujIICPks5qsqPugaJpZM4J8Gs6
.

@jkrasting
Copy link
Copy Markdown
Contributor

The fix from @ashao undoes the edits required for the generic_abiotic routines from commit 3b8ecaa. Thus, today's tag dev/master/2016.09.22 no longer works with the latest ocean_shared code. I will put back in the necessary changes, but once it is done, can we retest and update the 2016.09.22 tag?

use MOM_hor_index, only : hor_index_type
use MOM_io, only : file_exists, read_data, slasher, vardesc, var_desc
use MOM_restart, only : register_restart_field, query_initialized, MOM_restart_CS
use MOM_spatial_means, only : global_area_mean
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jkrasting is right, this commit did undo the changes from https://github.com/NOAA-GFDL/MOM6/pull/351/files . I'm guessing this happened because he was merging in changes from a file that is being copied in via the XML and isn't even on GitHub.

@adcroft
Copy link
Copy Markdown
Collaborator

adcroft commented Sep 22, 2016

This is fixed now. Thanks @ashao and @jkrasting .

@ashao ashao deleted the vertical_tracer_fix branch February 15, 2017 22:13
iangrooms pushed a commit to iangrooms/MOM6 that referenced this pull request May 6, 2025
* add geolat_u, geolat_v, geolon_u, and geolon_v coordinates to the ocean_geometry file.
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

Successfully merging this pull request may close these issues.

5 participants