Skip to content

Update Shoebox with GFDL fork#675

Closed
hlkong wants to merge 40 commits into
mom-ocean:dev/gfdlfrom
hlkong:shoebox
Closed

Update Shoebox with GFDL fork#675
hlkong wants to merge 40 commits into
mom-ocean:dev/gfdlfrom
hlkong:shoebox

Conversation

@hlkong
Copy link
Copy Markdown
Contributor

@hlkong hlkong commented Dec 26, 2017

No description provided.

hlkong added 20 commits December 9, 2017 21:54
	new file:   config_src/solo_driver/channel_surface_forcing.F90
	new file:   config_src/solo_driver/shoebox_surface_forcing.F90
	modified:   src/initialization/MOM_fixed_initialization.F90
	modified:   src/initialization/MOM_state_initialization.F90
	new file:   src/user/bowlhk_initialization.F90
	new file:   src/user/box_initialization.F90
	new file:   src/user/channel3_initialization.F90
	new file:   src/user/channel_initialization.F90
	new file:   src/user/channels_initialization.F90
	new file:   src/user/channelssp_initialization.F90
	new file:   src/user/shoebox_initialization.F90
	modified:   src/user/channel_initialization.F90
	modified:   src/user/channelssp_initialization.F90
	modified:   src/user/channelssp_initialization.F90
	new file:   config_src/solo_driver/channel2_surface_forcing.F90
	modified:   config_src/solo_driver/channel_surface_forcing.F90
	modified:   config_src/solo_driver/shoebox_surface_forcing.F90
	modified:   src/initialization/MOM_fixed_initialization.F90
	modified:   src/initialization/MOM_state_initialization.F90
	new file:   src/user/channel2_initialization.F90
	modified:   src/user/channel3_initialization.F90
	modified:   src/user/channel_initialization.F90
	modified:   src/user/channels_initialization.F90
	modified:   src/user/channelssp_initialization.F90
	modified:   src/user/shoebox_initialization.F90
	modified:   src/initialization/MOM_fixed_initialization.F90
	modified:   src/initialization/MOM_state_initialization.F90
	modified:   src/user/channel2_initialization.F90
	new file:   src/user/channel4_initialization.F90
	modified:   src/initialization/MOM_fixed_initialization.F90
	new file:   src/user/channel5_initialization.F90
	new file:   src/user/shoebox2_initialization.F90
	new file:   src/user/shoebox3_initialization.F90
	renamed:    src/user/shoebox3_initialization.F90 -> src/user/shoebox0_initialization.F90
	modified:   src/user/shoebox2_initialization.F90
	modified:   src/user/shoebox2_initialization.F90
	modified:   config_src/solo_driver/channel2_surface_forcing.F90
	new file:   config_src/solo_driver/channel3_surface_forcing.F90
	modified:   src/user/channel5_initialization.F90
	new file:   config_src/solo_driver/shoebox3_surface_forcing.F90
	modified:   src/user/channel5_initialization.F90
	modified:   config_src/solo_driver/shoebox3_surface_forcing.F90
	modified:   src/user/channel4_initialization.F90
	new file:   config_src/solo_driver/shoebox4_surface_forcing.F90
@Hallberg-NOAA
Copy link
Copy Markdown
Collaborator

Thank you, @hlkong, for this pull request. I see where you are going with this, and we appreciate your willingness to contribute to the MOM6 development.

Looking over this contribution, there are couple of things that we think need to be addressed before this development is brought onto the dev/gfdl branch of MOM6. Specifically, (1) we think that there are ways to achieve the initialization that you would like to see without adding quite so many new modules, and (2) there are a number of places where closer attention should be paid to the MOM6 coding conventions (https://github.com/NOAA-GFDL/MOM6/wiki/Code-style-guide) with respect to indents, trailing white space, etc.

Looking over this contribution, I see that there are 12 new named topography configurations, 2 new thickness configurations, and 4 new sponge configurations. Many of the topographies differ in the number and locations of the topographic spikes and bells. I also note that the "channel" and "shoebox" configurations seem to be identical apart from the use of reentrant boundary conditions. I suspect that with a little creativity, all 12 topographies could be generated from a single routine by providing a run-time parsed list of the locations, sizes and amplitudes of spikes and bells to add. Similarly, the thickness configuration routines are identical to what is already available in Neverland_initialize_thickness. We could justifiably be accused of hypocrisy here because we already have a lot of (too many?) named options for topographies, sponges and thickness configurations, but we do want to try to keep the options to a minimum in the interest of preserving as simple a user interface as possible. Please try to consolidate your various options into a single subroutine, with internal run-time options that can be used to generate your desired configurations, and then we will be happy to reconsider this PR.

This sort of development could benefit from a virtual group discussion of MOM6 development. Over the next few days, we intend to set up a regular conference call, and we would like you to join. A discussion of how to parsimoniously implement the family of test cases you are using would seem like an valuable and instructive exercise.

Again, thank you for this PR. We look forward to a revised, streamlined version, and would be happy to work with you to help make that happen.

@hlkong
Copy link
Copy Markdown
Contributor Author

hlkong commented Jan 24, 2018

Thank you for your comments, @Hallberg-NOAA ! It sounds to be a great idea to have all my topography and sponge layer setups implemented parsimoniously. I would love to join the virtual meeting if it fits into my schedule - could you please let me know the time and link to join once it is scheduled? Meanwhile, I'll revise the my code to make it compatible with MOM6 conventions. Thank you!

	new file:   config_src/solo_driver/channel4_surface_forcing.F90
	new file:   config_src/solo_driver/channel5_surface_forcing.F90
	new file:   config_src/solo_driver/channel6_surface_forcing.F90
	new file:   config_src/solo_driver/shoebox8_surface_forcing.F90
	new file:   config_src/solo_driver/shoebox9_surface_forcing.F90
	modified:   src/initialization/MOM_fixed_initialization.F90
	modified:   src/user/channel4_initialization.F90
	deleted:    src/user/channel5_initialization.F90
	modified:   config_src/solo_driver/shoebox4_surface_forcing.F90
	new file:   config_src/solo_driver/shoebox5_surface_forcing.F90
	modified:   src/initialization/MOM_state_initialization.F90
	new file:   config_src/solo_driver/channel7_surface_forcing.F90
	modified:   src/initialization/MOM_fixed_initialization.F90
	modified:   src/initialization/MOM_state_initialization.F90
	new file:   src/user/channel5_initialization.F90
	new file:   src/user/channel7_initialization.F90
	new file:   src/user/channel47_initialization.F90
	new file:   src/user/channel4t_initialization.F90
	new file:   src/user/channel74_initialization.F90
	new file:   src/user/channel42d_initialization.F90
	modified:   src/user/channel4_initialization.F90
	new file:   src/user/channel4tt_initialization.F90
	new file:   src/user/channel6_initialization.F90
	new file:   src/user/user_change_diffusivity_Hailu.F90
	modified:   src/parameterizations/vertical/MOM_vert_friction.F90
	modified:   src/user/channel4_initialization.F90
	modified:   src/user/channel6_initialization.F90
	modified:   src/parameterizations/lateral/MOM_MEKE.F90
	new file:   src/parameterizations/lateral/MOM_MEKE_old.F90
@Hallberg-NOAA
Copy link
Copy Markdown
Collaborator

This pull request had issues that were discussed but not resolved with the updates to the pull request. The shoebox test case is a good idea, but it needs to be implemented as a single reconfigurable module covering the whole familly of related test cases for sustainability. @hlkong, we can talk again about how to implement this if you would like. For now I am closing this pull request because it is substantially out-of-date with the latest MOM6 code.

marshallward pushed a commit to Hallberg-NOAA/MOM6 that referenced this pull request Sep 10, 2024
In the MOM_streaming_filter module, a system of two coupled ODEs is
configured as a streaming band-pass filter that takes the broadband
model output as the input and returns the filtered signal at a user
specified tidal frequency as the output. It is capable of detecting
the instantaneous tidal signals while the model is running, and can
be used to impose frequency-dependent wave drag or to de-tide model
output. An example of filtering the M2 and K1 barotropic velocities
is provided in the MOM_barotropic module.

Added runtime flags for the M2 and K1 filters. Simplified the code
by removing the control structure of the linked list, and now each
filter has its own control structure.

Using hor_index_type argument to avoid calculation in halo regions.
angus-g pushed a commit to angus-g/MOM6 that referenced this pull request Sep 25, 2024
In the MOM_streaming_filter module, a system of two coupled ODEs is
configured as a streaming band-pass filter that takes the broadband
model output as the input and returns the filtered signal at a user
specified tidal frequency as the output. It is capable of detecting
the instantaneous tidal signals while the model is running, and can
be used to impose frequency-dependent wave drag or to de-tide model
output. An example of filtering the M2 and K1 barotropic velocities
is provided in the MOM_barotropic module.

Added runtime flags for the M2 and K1 filters. Simplified the code
by removing the control structure of the linked list, and now each
filter has its own control structure.

Using hor_index_type argument to avoid calculation in halo regions.
gmacgilchrist pushed a commit to gmacgilchrist/MOM6 that referenced this pull request Oct 9, 2024
In the MOM_streaming_filter module, a system of two coupled ODEs is
configured as a streaming band-pass filter that takes the broadband
model output as the input and returns the filtered signal at a user
specified tidal frequency as the output. It is capable of detecting
the instantaneous tidal signals while the model is running, and can
be used to impose frequency-dependent wave drag or to de-tide model
output. An example of filtering the M2 and K1 barotropic velocities
is provided in the MOM_barotropic module.

Added runtime flags for the M2 and K1 filters. Simplified the code
by removing the control structure of the linked list, and now each
filter has its own control structure.

Using hor_index_type argument to avoid calculation in halo regions.
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