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

Modify NUOPC cap to accept separate glc runoff fluxes #288

Merged
merged 7 commits into from
Aug 30, 2024

Conversation

alperaltuntas
Copy link
Member

This PR addresses issue #281

Changes made:

  • Added Forr_rofl_glc and Forr_rofi_glc import files corresponding the glc runoff fluxes via the rof component.
  • Currently, these new fluxes get added to fluxes%lrunoff and fluxes%frunoff.
  • For now, these new fluxes are imported only if cesm_coupled is .true.. If EMC folks decide the import these fluxes in the same way in the future, the import statements can be taken out of the if-blocks.

@alperaltuntas
Copy link
Member Author

@mvertens Could you confirm if this PR addresses the issue #288 ?

@@ -472,6 +474,16 @@ subroutine convert_IOB_to_fluxes(IOB, fluxes, index_bounds, Time, valid_time, G,
fluxes%frunoff(i,j) = kg_m2_s_conversion * IOB%frunoff(i-i0,j-j0) * G%mask2dT(i,j)
endif

! add liquid glc runoff flux via rof
if (associated(IOB%lrunoff_glc)) then
Copy link
Collaborator

Choose a reason for hiding this comment

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

We should keep these new fields separate in fluxes and not under fluxes%lrunoff and fluxes%frunoff.

Suggestion:
fluxes%lrunoff_glc(i,j) = fluxes%lrunoff_glc(i,j) + kg_m2_s_conversion * IOB%lrunoff_glc(i-i0,j-j0) * G%mask2dT(i,j)

fluxes%frunoff_glc(i,j) = fluxes%frunoff_glc(i,j) + kg_m2_s_conversion * IOB%frunoff_glc(i-i0,j-j0) * G%mask2dT(i,j)

@gustavo-marques
Copy link
Collaborator

Thanks for this PR, @alperaltuntas!

Are the changes in src/initialization/MOM_shared_initialization.F90 intended?

In addition to what I mentioned above, we also need to:

  1. Add two new fields for the heat content associated with lrunoff_glc and frunoff_glc (heat_content_lrunoff_glc and heat_content_frunoff_glc). The coupler should provide these fields, and here is a PR that can be used as an example of adding them in CMEPS.

We should only account for heat_content_lrunoff_glc and heat_content_frunoff_glc when ENTHALPY_FROM_COUPLER = True.

  1. The new mass and heat fluxes should be added to src/core/MOM_forcing_type.F90 and src/diagnostics/MOM_sum_output.F90. Please follow what was done in Option to provide enthalpy fluxes via NUOPC coupler #214

@alperaltuntas
Copy link
Member Author

@gustavo-marques I just pushed a commit here and a PR to CMEPS (ESCOMP/CMEPS#489) to address your comments. One outstanding task is to determine what to do with the diagnostics associated with lrunoff and frunoff. Now that we have separated lrunoff_glc from lrunoff and frunoff_glc from frunoff, I wonder whether we should split the diagnostics as well, and if so, whether the split diagnostics truly correspond to cmor definitions of those diagnostics. See, for instance, the frunoff diagnostic whose cmor name is set to be ficeberg as defined in src/core/MOM_forcing_type.F90

@gustavo-marques
Copy link
Collaborator

These are the new available diagnostics:

"frunoff_glc"  [Unused]
    ! modules: {ocean_model,ocean_model_d2}
    ! long_name: Frozen glc runoff (calving) and iceberg melt into ocean
    ! units: kg m-2 s-1
    ! standard_name: glc_water_flux_into_sea_water_from_icebergs
    ! cell_methods: xh:mean yh:mean area:mean
"lrunoff_glc"  [Unused]
    ! modules: {ocean_model,ocean_model_d2}
    ! long_name: Liquid runoff (glaciers) into ocean
    ! units: kg m-2 s-1
    ! standard_name: water_flux_into_sea_water_from_glaciers
    ! cell_methods: xh:mean yh:mean area:mean
"total_frunoff_glc"  [Unused]
    ! modules: ocean_model
    ! long_name: Area integrated frozen glc runoff (calving) & iceberg melt into ocean
    ! units: kg s-1
"total_lrunoff_glc"  [Unused]
    ! modules: ocean_model
    ! long_name: Area integrated liquid glc runoff into ocean
    ! units: kg s-1
    ! cell_methods: xh:mean yh:mean area:mean
"heat_content_frunoff_glc"  [Unused]
    ! modules: {ocean_model,ocean_model_d2}
    ! long_name: Heat content (relative to 0C) of solid glc runoff into ocean
    ! units: W m-2
    ! cell_methods: xh:mean yh:mean area:mean
"heat_content_lrunoff_glc"  [Unused]
    ! modules: {ocean_model,ocean_model_d2}
    ! long_name: Heat content (relative to 0C) of liquid glc runoff into ocean
    ! units: W m-2

Copy link
Collaborator

@gustavo-marques gustavo-marques left a comment

Choose a reason for hiding this comment

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

One minor suggestion: only make the new diagnostics available if GLC is active.

@alperaltuntas alperaltuntas merged commit 621107b into NCAR:dev/ncar Aug 30, 2024
10 checks passed
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