Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

* Implements a module to simulate CFCs via NUOPC cap #189

Merged

Conversation

gustavo-marques
Copy link
Collaborator

@gustavo-marques gustavo-marques commented Jun 14, 2021

This PR introduces a new module (MOM_CFC_cap) that can used to simulate chlorofluorocarbons (CFCs) tracers via drivers/caps (commit 3aade32). Only the NUOPC cap is supported at this time, but the module can be used . Additional details on this implemetation are provided below. This PR also includes a bug fix to the tridiagonal solvers used in
subroutines tracer_vertdiff_Eulerian and tracer_vertdiff (commit 276954f, which solves https://github.com/NOAA-GFDL/MOM6/issues/1415). This bug fix will change answers in configurations using either tracer_vertdiff_Eulerian or tracer_vertdiff.

Summary

The following fields are needed to compute the CFCs fluxes into the ocean:

  • Sea-ice fraction [nondim]
  • Wind speed @ 10m, squared [m2 s-2]
  • Atmospheric pressure at the surface of the ocean [Pa]
  • Sea surface concentration of CFC-11 and CFC-12 [mol kg-1]
  • atmospheric concentration of CFC-11 and CFC-12 [mol kg-1 atm-1]

Sea-ice fraction, wind speed squared, and atmospheric pressure are stored in the fluxes type, while the sea surface concentration of CFC-11 and CFC-12 are stored in the surface type. These types are passed to the subroutine CFC_cap_fluxes, which is called from subroutine convert_IOB_to_fluxes. In CFC_cap_fluxes, atmospheric concentrations of CFC-11 and CFC-12 can either be read from a netCDF file or generated internally (TODO). CFC_cap_fluxes also orchestrates the calculation of the CFC fluxes, including calls to subroutines that compute solubility and Schmidt number. The calculations are carried out in gravimetric units, but there is the option to output CFCs using volumetric units, which is what the Climate Model Output Rewriter (CMOR) protocol recommends. Unit tests for the Schmidt number calculation (subroutine comp_CFC_schmidt) and the solubility function (subroutine get_solubility) have been added.

Methodology

Chlorofluorocarbons (CFCs) tracers are implemented following the Ocean
Model Intercomparison Project (OMIP) protocol (Orr et al., 2017; doi:10.5194/gmd-10-2169-2017). The solubility function at 1 atm comes from Warner and Weiss (1985); doi:10.1016/0198-0149(85)90099-8, with coefficients for alpha (mol kg-1 atm-1) derived from Table 5 in this manuscript. The Schmidt numbers and gas exchange formulations follow Wanninkhof (2014); doi:10.4319/lom.2014.12.351.

New diagnostics

  • cfc11_flux - Gas exchange flux of CFC11 into the ocean [mol m-2 s-1]
  • cfc12_flux - Gas exchange flux of CFC12 into the ocean [mol m-2 s-1]
  • ice_fraction - Fraction of cell area covered by sea ice [nondim]
  • u10_sqr - Wind magnitude at 10m, squared [m2 s-2]
  • CFC11 - Mole Concentration of CFC11 in Sea Water [mol m-3] CMOR
  • CFC12 - Mole Concentration of CFC12 in Sea Water [mol m-3] CMOR
  • CFC_11 - Moles Per Unit Mass of CFC-11 in sea water [mol kg-1]
  • CFC_12 - Moles Per Unit Mass of CFC-12 in sea water [mol kg-1]
  • Varios forms of the terms needed to close the budget of CFC_11 and CFC_12

Validation

To validate this implementation, we run CESM/MOM6 forced with JRA-55 starting in January of 1985 and compare the results against a similar run done with POP2. The plot below shows SST versus CFC11 concentration (monthly averages) taken in the North Pacific subtropical gyre during June 1985. Despite the fact that the CFCs concentrations in the ocean interior have not been equilibrated in the CESM/MOM6 run, both simulations show a very similar relation between SST and CFC11.

image

Commit 276954f will change answers in experiments where USE_OCMIP2_CFC = True

This commit fixes misplaced parentheses in the tridiagonal solvers used in
subroutines tracer_vertdiff_Eulerian and tracer_vertdiff. This bug has been
reported in https://github.com/NOAA-GFDL/MOM6/issues/1415

This commit also changes the mask condition used in these subroutines.
This commit adds a new module (MOM_CFC_cap) that can used to
simulate chlorofluorocarbons (CFCs) tracers. It also includes
the modifications needed to 1) allocate arrays in the fluxes and
surface types, and 2) activate the MOM_CFC_cap module via NUOPC cap.
@gustavo-marques
Copy link
Collaborator Author

Thanks to @klindsay28 for his guidance in the design, implementation, and validation of this module. Keith, please review this PR when you have a chance.

@alperaltuntas
Copy link
Member

@gustavo-marques we are getting answer changes in all our test cases. Is this expected?

@gustavo-marques
Copy link
Collaborator Author

@alperaltuntas, I had not realized that tracer_vertdiff_Eulerian is used in subroutine diabatic_ALE to update T&S. That's why we are getting answer changes. I will update the PR to reflect this, but we should go ahead and merge this. As Bob said in https://github.com/NOAA-GFDL/MOM6/issues/1415, there is no need to maintain old answers in this case.

@gustavo-marques gustavo-marques changed the title Implements a module to simulate CFCs via NUOPC cap * Implements a module to simulate CFCs via NUOPC cap Jul 1, 2021
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.

2 participants