-
Notifications
You must be signed in to change notification settings - Fork 244
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
Adds first version of the MCT driver #578
Conversation
Frazil formation was being converted to surface layer evaporation under ice sheves and this was double counting the effect of frazil on the system.
Removes frazil's contribution to evaporation
This commit adds the option to read initial temperature and salinity fields from separate z-space input files. Before, both T and S had to be in the same file. The input parameter TEMP_SALT_Z_INIT_FILE is kept, so previous configurations do not to be changed. Two new parameters are introduced (TEMP_Z_INIT_FILE and SALT_Z_INIT_FILE). Answers should not change.
Adds option to read initial temp and salt from separate files
committing pull request #2 to dev/ncar branch
Added coupler indices module
- get_global_shape() returns niglobal, njglobal from domain type. - get_global_grid_shape() returns niglobal, njglobal by calling get_global_shape(). - This avoids exposing members inside opaque types otherwise needed for initializing under MCT.
- To initialize within the MCT coupler we need access to members of ocean_state_type which are private. This method allows us to have local pointers to those members.
First version with working initialization routine
- In keeping with MOM6 style guide, all module use statements now have "only" and each imported entity is explicitly listed.
Adds "only" for all use statements
- something we'll get in the habit of doing...
Cleans up white space
- Add place holders and diagnostics of time types
Adds placeholders for stepping foward MOM
- To later facilitate MOM doing the time-averaging within the DT_FORCING time-step, we need to use the ocean_public_type when export surface state to the MCT coupler. - Removes a buffer array inspired by POP interface. - Removes the time-averaging routine we wrote that worked on the POP-like buffer.
- The ocean_public_type uses global indexing without halos.
Use ocn public for surface
Small fixes
- If OBC is not associated, the if expression could lead to a segmentation violation even when apply_OBC is false. - No answer changes.
- The "none" option for COORD_CONFIG literally did nothing which meant that Rlay and gprime were unset (they actually appeared to be zero). This mode was added with the intent that the model should not need these coordinate variables in ALE mode. However, gprime(k=1) is used and should be set to GFS, which this commit now does. - I also added "ALE" as an option for COORD_CONFIG which is equivalent to "none" since "ALE" is bit more intuitive. - We might even use this as a master switch or check that COORD_CONFIG is consistent with USE_REGRIDDING (for later)? - This commit "appears" to changes answers but I don't think it does. What changes is the calculation of energy for some experiments in which Rlay was not set before this commit. A non-zero gprime(1) produces different APEs. Experiments affected are: - CVmix_SCM_tests/cooling_only/EPBL - CVmix_SCM_tests/cooling_only/KPP - CVmix_SCM_tests/mech_only/EPBL - CVmix_SCM_tests/mech_only/KPP - CVmix_SCM_tests/skin_warming_wind/EPBL - CVmix_SCM_tests/skin_warming_wind/KPP - CVmix_SCM_tests/wind_only/EPBL - CVmix_SCM_tests/wind_only/KPP - SCM_idealized_hurricane - single_column/EPBL - single_column/KPP - unit_tests All the above have COORD_CONFIG="none".
Cherry picked fixes from dev/gfdl
Fix ssh slope calculation
Merging latest dev/master into dev/ncar
Some code got that I added in MOM_state_initialization.F90 was lost during the merge with dev/master. This PR fixes that. * adds do_not_log=just_read * doxygenizes new variables * passes all MOM-examples/ocean_only tests on Cheyenne
Adds code that got lost during merge
Fixed clock and timing
Updates IOB fluxes and adds option to write restart files
Merge MCT modules and Doxygenize
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a PR from NCAR to dev/master. dev/master is currently using a different version of FMS so testing this PR requires a clean build.
- Answers change (see below);
- MOM_parameter_docs are affected due to some new FROM_Z_INIT parameters.
Commit be46fee is cherry-picked from dev/gfdl and changes the apparent answers due to a change in definition of energy (this commit set gprime to non-zero in ALE mode).
- Affected experiments are logged in the be46fee commit message;
- I have checked that reverting commit be46fee recovers answer on dev/master;
- I have also checked that merging from the candidate dev/master on to dev/gfdl recovers dev/gfdl (which already has commit be46fee ).
In all, this passes tests.
@kshedstrom Can you that check that this branch works for you (given the caveats in previous comment) and give us the thumbs up or down? |
So I have to guess which version of FMS? It's not obvious to me how to know that. Guessing dev/master gives a compile-time error: -fcray-pointer -fdefault-double-8 -fdefault-real-8 -Waliasing -ffree-line-length-none -fno-range-check -I/u1/uaf/kshedstrom/include -I../../shared/repro -c -I//center1/d/kate/ESMG/ESMG-configs/src/MOM6/src/framework //center1/d/kate/ESMG/ESMG-configs/src/MOM6/src/diagnostics/MOM_debugging.F90 use fms_io_mod, only : get_filename_appendix => get_filename_appendix public :: close_file, create_file, field_exists, field_size, fieldtype, get_filename_appendix |
Sorry, I should have specified:
32a7923, as recorded in src/ of dev/master
at https://github.com/NOAA-GFDL/MOM6-examples/tree/dev/master/src.
…--
Dr Alistair Adcroft ([email protected])
Princeton University Tel: (609) 987-5073
NOAA/GFDL, 201 Forrestal Road, Princeton, NJ 08540
On Thu, Aug 17, 2017 at 3:09 PM, Kate Hedstrom ***@***.***> wrote:
So I have to guess which version of FMS? It's not obvious to me how to
know that. Guessing dev/master gives a compile-time error:
-fcray-pointer -fdefault-double-8 -fdefault-real-8 -Waliasing
-ffree-line-length-none -fno-range-check -I/u1/uaf/kshedstrom/include
-I../../shared/repro -c -I//center1/d/kate/ESMG/ESMG-configs/src/MOM6/src/framework
//center1/d/kate/ESMG/ESMG-configs/src/MOM6/src/
diagnostics/MOM_debugging.F90
//center1/d/kate/ESMG/ESMG-configs/src/MOM6/src/
framework/MOM_io.F90:19:32:
use fms_io_mod, only : get_filename_appendix => get_filename_appendix
1
Error: Symbol ‘get_filename_appendix’ referenced at (1) not found in
module ‘fms_io_mod’
//center1/d/kate/ESMG/ESMG-configs/src/MOM6/src/
framework/MOM_io.F90:39:93:
public :: close_file, create_file, field_exists, field_size, fieldtype,
get_filename_appendix
1
Error: Symbol ‘get_filename_appendix’ at (1) has no IMPLICIT type
make[1]: *** [Makefile:175: MOM_io.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/import/c1/w/kshedstrom/MOM6/
build/gnu/symmetric_ocean_only/repro'
make: *** [Makefile:497: /center1/w/kshedstrom/MOM6/
build/gnu/symmetric_ocean_only/repro/MOM6] Error 2
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<NOAA-GFDL#578 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AFlo8-I97mXCgAkPs0em7RvUQ2vg2Ji0ks5sZI_agaJpZM4O5Yr7>
.
|
Thanks. Yes, all my little ocean-only tests run, with small answer changes I would expect. CCS is in the queue. |
- NOAA-GFDL/MOM6@ae22a0f Merge pull request mom-ocean#578 from NCAR/dev/ncar - NOAA-GFDL/MOM6@f4f882f Merge pull request mom-ocean#23 from gustavo-marques/combine_mct_modules - NOAA-GFDL/MOM6@a85b728 Merge MCT modules - NOAA-GFDL/MOM6@ba5b5ba Merge pull request mom-ocean#22 from gustavo-marques/check_fluxes - NOAA-GFDL/MOM6@f5a8483 Adds option to write restart files - NOAA-GFDL/MOM6@8745b4b Fills additional IOB fluxes - NOAA-GFDL/MOM6@f6b22ff Merge branch 'dev/ncar' into check_fluxes - NOAA-GFDL/MOM6@369d5d6 Merge pull request mom-ocean#21 from alperaltuntas/dev/ncar - NOAA-GFDL/MOM6@2582e0a Adds run paramaters to control SW decomposition - NOAA-GFDL/MOM6@58f78b9 Fill IOB, some fluxes still need to be checked - NOAA-GFDL/MOM6@06a30ab Fixed clock and timing - NOAA-GFDL/MOM6@1bca79b Merge pull request mom-ocean#20 from gustavo-marques/fix_merge - NOAA-GFDL/MOM6@fb89b08 Adds code that got lost during merge - NOAA-GFDL/MOM6@7480492 Merge pull request mom-ocean#19 from gustavo-marques/new_merge - NOAA-GFDL/MOM6@be1e6cf Merge branch 'dev/master' into dev/ncar - NOAA-GFDL/MOM6@76565cb Merge pull request mom-ocean#17 from gustavo-marques/fix_ssh_slopes - NOAA-GFDL/MOM6@c04f081 Fix ssh slope calculation - NOAA-GFDL/MOM6@17d4586 Merge pull request mom-ocean#16 from adcroft/ncar-cherry-picked-fixes - NOAA-GFDL/MOM6@be46fee (*)Fixes gprime(1) when no layer coordinates are set - NOAA-GFDL/MOM6@fccb7ae Avoids a SEGV when OBC are not in use with bi-harmonic friction - NOAA-GFDL/MOM6@f42c970 Merge pull request mom-ocean#15 from gustavo-marques/small_fixes - NOAA-GFDL/MOM6@31787c2 Adds reference to set_time that was lost during a conflict handling - NOAA-GFDL/MOM6@d77936e Fix intent(inout) in ice_ocean_boundary - NOAA-GFDL/MOM6@b403edd Merge pull request mom-ocean#14 from gustavo-marques/docs - NOAA-GFDL/MOM6@4d346ca Merge branch 'dev/ncar' into docs - NOAA-GFDL/MOM6@f7c26a5 Clean the module and start doxygenizing it - NOAA-GFDL/MOM6@cd58e2a Merge pull request mom-ocean#13 from alperaltuntas/dev/ncar - NOAA-GFDL/MOM6@37a53bc reorganize file structure - NOAA-GFDL/MOM6@e6c5ddd Merge pull request mom-ocean#12 from gustavo-marques/fill_ice_ocean_bnd - NOAA-GFDL/MOM6@6b6289a Remove trailing whitespace - NOAA-GFDL/MOM6@7ce40e5 Fix undefined reference to fill_ice_ocean_bnd - NOAA-GFDL/MOM6@d517719 Merge branch 'dev/ncar' into fill_ice_ocean_bnd - NOAA-GFDL/MOM6@b69ab33 Filling ice_ocean_bnd - Draft - NOAA-GFDL/MOM6@a306c90 Merge pull request mom-ocean#11 from adcroft/use-ocn-public-for-surface - NOAA-GFDL/MOM6@c83e238 Correct indexing when using ocean_public_type - NOAA-GFDL/MOM6@1f39c84 Replaces use of "surface" with "ocean_public_type" - NOAA-GFDL/MOM6@5cd8d7a Filling ice_ocean_bnd, still needs work - NOAA-GFDL/MOM6@3ceef26 Merge pull request mom-ocean#10 from adcroft/sketch-out-mct-run - NOAA-GFDL/MOM6@714e8d6 Adds placeholders for stepping foward MOM - NOAA-GFDL/MOM6@7f2207c Merge pull request #7 from adcroft/fix-mct-whitespace - NOAA-GFDL/MOM6@a1db77f Cleans up white space - NOAA-GFDL/MOM6@5700d67 Merge pull request #6 from adcroft/add-use-only-for-imports - NOAA-GFDL/MOM6@beac3ed Adds "only" for all use statements - NOAA-GFDL/MOM6@231d19e Merge pull request #5 from alperaltuntas/dev/ncar - NOAA-GFDL/MOM6@3a923a2 Got initialization working - NOAA-GFDL/MOM6@8b38141 Wrapped global data - NOAA-GFDL/MOM6@970f848 added debugging - NOAA-GFDL/MOM6@2540ed8 Filled empty subroutines in ocn_comp_mct.F90 - NOAA-GFDL/MOM6@ed3ed30 Added ocn_import_export module - NOAA-GFDL/MOM6@aba7dc2 Completed ocn_init_mct - NOAA-GFDL/MOM6@5df3bc3 Added method to point ponters to members of ocean_state_type - NOAA-GFDL/MOM6@57e6086 Added methods to return domain/grid shape - NOAA-GFDL/MOM6@37e7356 Added ocn_import_export.F90 - NOAA-GFDL/MOM6@2b794da Merge pull request #4 from alperaltuntas/dev/ncar - NOAA-GFDL/MOM6@fbd405b Added coupler indices module - NOAA-GFDL/MOM6@fa86163 Merge pull request #3 from NCAR/dev/gfdl - NOAA-GFDL/MOM6@e8f2999 Merge pull request #2 from gustavo-marques/temp_salt_z_init_file - NOAA-GFDL/MOM6@86936ba Adds option to read initial temp and salt from separate files - NOAA-GFDL/MOM6@54f7976 Most initialization working - NOAA-GFDL/MOM6@426357c Time and calendar initialization in ocn_comp_mct.F90 - NOAA-GFDL/MOM6@346097d Moved blank ocn_comp_mct.F90 - NOAA-GFDL/MOM6@405fecb Merge pull request #1 from gustavo-marques/ice_shelf - NOAA-GFDL/MOM6@711a613 Removes frazil's contribution to evaporation
- Updates MOM_parameter_doc files. - NOAA-GFDL/MOM6@cde6d3f Merge branch 'dev/master' into dev/gfdl - NOAA-GFDL/MOM6@ae22a0f Merge pull request mom-ocean#578 from NCAR/dev/ncar - NOAA-GFDL/MOM6@f4f882f Merge pull request mom-ocean#23 from gustavo-marques/combine_mct_modules - NOAA-GFDL/MOM6@a85b728 Merge MCT modules - NOAA-GFDL/MOM6@ba5b5ba Merge pull request mom-ocean#22 from gustavo-marques/check_fluxes - NOAA-GFDL/MOM6@f5a8483 Adds option to write restart files - NOAA-GFDL/MOM6@8745b4b Fills additional IOB fluxes - NOAA-GFDL/MOM6@f6b22ff Merge branch 'dev/ncar' into check_fluxes - NOAA-GFDL/MOM6@369d5d6 Merge pull request mom-ocean#21 from alperaltuntas/dev/ncar - NOAA-GFDL/MOM6@2582e0a Adds run paramaters to control SW decomposition - NOAA-GFDL/MOM6@58f78b9 Fill IOB, some fluxes still need to be checked - NOAA-GFDL/MOM6@06a30ab Fixed clock and timing - NOAA-GFDL/MOM6@1bca79b Merge pull request mom-ocean#20 from gustavo-marques/fix_merge - NOAA-GFDL/MOM6@fb89b08 Adds code that got lost during merge - NOAA-GFDL/MOM6@7480492 Merge pull request mom-ocean#19 from gustavo-marques/new_merge - NOAA-GFDL/MOM6@be1e6cf Merge branch 'dev/master' into dev/ncar - NOAA-GFDL/MOM6@76565cb Merge pull request mom-ocean#17 from gustavo-marques/fix_ssh_slopes - NOAA-GFDL/MOM6@c04f081 Fix ssh slope calculation - NOAA-GFDL/MOM6@17d4586 Merge pull request mom-ocean#16 from adcroft/ncar-cherry-picked-fixes - NOAA-GFDL/MOM6@be46fee (*)Fixes gprime(1) when no layer coordinates are set - NOAA-GFDL/MOM6@fccb7ae Avoids a SEGV when OBC are not in use with bi-harmonic friction - NOAA-GFDL/MOM6@f42c970 Merge pull request mom-ocean#15 from gustavo-marques/small_fixes - NOAA-GFDL/MOM6@31787c2 Adds reference to set_time that was lost during a conflict handling - NOAA-GFDL/MOM6@d77936e Fix intent(inout) in ice_ocean_boundary - NOAA-GFDL/MOM6@b403edd Merge pull request mom-ocean#14 from gustavo-marques/docs - NOAA-GFDL/MOM6@4d346ca Merge branch 'dev/ncar' into docs - NOAA-GFDL/MOM6@f7c26a5 Clean the module and start doxygenizing it - NOAA-GFDL/MOM6@cd58e2a Merge pull request mom-ocean#13 from alperaltuntas/dev/ncar - NOAA-GFDL/MOM6@37a53bc reorganize file structure - NOAA-GFDL/MOM6@e6c5ddd Merge pull request mom-ocean#12 from gustavo-marques/fill_ice_ocean_bnd - NOAA-GFDL/MOM6@6b6289a Remove trailing whitespace - NOAA-GFDL/MOM6@7ce40e5 Fix undefined reference to fill_ice_ocean_bnd - NOAA-GFDL/MOM6@d517719 Merge branch 'dev/ncar' into fill_ice_ocean_bnd - NOAA-GFDL/MOM6@b69ab33 Filling ice_ocean_bnd - Draft - NOAA-GFDL/MOM6@a306c90 Merge pull request mom-ocean#11 from adcroft/use-ocn-public-for-surface - NOAA-GFDL/MOM6@c83e238 Correct indexing when using ocean_public_type - NOAA-GFDL/MOM6@1f39c84 Replaces use of "surface" with "ocean_public_type" - NOAA-GFDL/MOM6@5cd8d7a Filling ice_ocean_bnd, still needs work - NOAA-GFDL/MOM6@3ceef26 Merge pull request mom-ocean#10 from adcroft/sketch-out-mct-run - NOAA-GFDL/MOM6@714e8d6 Adds placeholders for stepping foward MOM - NOAA-GFDL/MOM6@7f2207c Merge pull request #7 from adcroft/fix-mct-whitespace - NOAA-GFDL/MOM6@a1db77f Cleans up white space - NOAA-GFDL/MOM6@5700d67 Merge pull request #6 from adcroft/add-use-only-for-imports - NOAA-GFDL/MOM6@beac3ed Adds "only" for all use statements - NOAA-GFDL/MOM6@231d19e Merge pull request #5 from alperaltuntas/dev/ncar - NOAA-GFDL/MOM6@3a923a2 Got initialization working - NOAA-GFDL/MOM6@8b38141 Wrapped global data - NOAA-GFDL/MOM6@970f848 added debugging - NOAA-GFDL/MOM6@2540ed8 Filled empty subroutines in ocn_comp_mct.F90 - NOAA-GFDL/MOM6@ed3ed30 Added ocn_import_export module - NOAA-GFDL/MOM6@aba7dc2 Completed ocn_init_mct - NOAA-GFDL/MOM6@5df3bc3 Added method to point ponters to members of ocean_state_type - NOAA-GFDL/MOM6@57e6086 Added methods to return domain/grid shape - NOAA-GFDL/MOM6@37e7356 Added ocn_import_export.F90 - NOAA-GFDL/MOM6@2b794da Merge pull request #4 from alperaltuntas/dev/ncar - NOAA-GFDL/MOM6@fbd405b Added coupler indices module - NOAA-GFDL/MOM6@fa86163 Merge pull request #3 from NCAR/dev/gfdl - NOAA-GFDL/MOM6@e8f2999 Merge pull request #2 from gustavo-marques/temp_salt_z_init_file - NOAA-GFDL/MOM6@86936ba Adds option to read initial temp and salt from separate files - NOAA-GFDL/MOM6@54f7976 Most initialization working - NOAA-GFDL/MOM6@426357c Time and calendar initialization in ocn_comp_mct.F90 - NOAA-GFDL/MOM6@346097d Moved blank ocn_comp_mct.F90 - NOAA-GFDL/MOM6@405fecb Merge pull request #1 from gustavo-marques/ice_shelf - NOAA-GFDL/MOM6@711a613 Removes frazil's contribution to evaporation
Summary of commits:
config_src/mct_driver/ocn_comp_mct.F90
- Adds the main driver for MOM6 in CIME. This module 1) initializes, 2) runs, and 3) finalizes MOM6 via the CESM framework. The model successfully run for one month using CORE forcing. There are mismatches between MCT and MOM6 in terms of ice ocean boundary fluxes that need to be accounted in the future. These have been documented in the code. We have followed MOM6 code style guide and the module has been Doxygenized.Changes on existent MOM6 modules
config_src/coupled_driver/ocean_model_MOM.F90
- Adds a subroutine that returns pointers to objects within ocean_state_type;src/core/MOM_grid.F90
- Adds a subroutine that returns global shape of horizontal grid;src/framework/MOM_domains.F90
- Adds a subroutine that returns the global shape of h-point arrays;src/initialization/MOM_coord_initialization.F90
- Fixes gprime(1) when no layer coordinates are set.src/initialization/MOM_state_initialization.F90
- Adds option to read initial temp and salt from separate files;src/ice_shelf/MOM_ice_shelf.F90
- Removes frazil's contribution to evaporation. Frazil formation was being converted to surface layer evaporation under ice shelves and this was double counting the effect of frazil on the system;src/parameterizations/lateral/MOM_hor_visc.F90
- Avoids a SEGV when OBC are not in use with bi-harmonic friction.