-
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
User/jml/operation fms2 the reckoning #1033
User/jml/operation fms2 the reckoning #1033
Conversation
…al_condition, added a default case that throws a fatal error if the 't_grid_str' is empty in write_initial_conditions and save_restart
Merge in latest dev/gfdl updates
* dev/gfdl: Bugfix: diabatic_salt_tendency diagnostics in ALE
… facilitate use of new open_file, which requires that these values be associated
…nitialize_ocean_public_type to set the io_domain value in Ocean_sfc%domain, which is required by the new fms-io read_data calls for domain-decomposed netcdf files in xgrid.F90/
Merge in latest dev/gfdl updates
…the domains argument
… routines MOM_open_file, MOM_close_file, and references to file_exists, FmsNetcdfFomainFile_t, read_data, defined in MOM_io to preserve encapsulation.
…e public routine references read_data from new fms_io, made FMSNetCDFDomainFile_t public
…o mpp_open_file and mpp_close_file, all open_file and close_file calls reference the new fms-io interfaces, added a routine to MOM_read_data to deal with the supergrid domain, removed unused open_file and close_file calls, replaced the fms read_data reference and calls with old_fms_read_data. MOM_read_data calls new fms read_data directly without fms2 prepended to the name, replaced old fms reads of netcdf files with new open, read, and close interface calls referenced from MOM_io
…and replaced calls with direct calls to register_variable_attribute
…blic, removed the fms2_ from the routine names
…pp_domain attribute to the new fms MOM_open_file wrapper call, replaced the create_file call with new MOM_open_file, register_field, axis registration routines, write_data, register_variable_attribute, and close_file calls
…and routines, made new fms write_data public
…ariable descriptions are already in a struct, added the field varaiable and attribute registration calls to the i-loop
…nters, put the new io public routines in abc order
…s for axis_data_CS%axis and axis_data_CS%data
…open_file interface
…h the new fms io open, register, write, and close routines
…rface. This accomodates the writing of the vertical coordinate file in MOM_ALE and MOM_coord_initialization.
…ile routines, and call to MOM_open_file. This file is not domain-decomposed, and does not need the mpp_domains from G
…ity with fms_cpu_affinity_set
…OM_io. Added use statements for fms_affinity_set,get to MOM_driver and mom_domains
merge in latest dev/gfdl updates
* dev/gfdl: Segment index added for several OBC segment flags Replaced intent(out) with intent(inout) in EOS Added option to trailer.py for line length excluding comments Adds MOM_random module Adds global extents to hor_index type Correct spelling in HI doxumentation
changed get_affinity and set_affinity to point to new wrappers in fms_affinity.F90 changed file_exist to file_exists in MOM_domains
…inity.F90, and fixed arguments in set_affinity
…ongkindofdoctor/MOM6 into user/jml/operation_fms2_the_reckoning * 'user/jml/operation_fms2_the_reckoning' of github.com:wrongkindofdoctor/MOM6: redirected get_affinity and set_affinity calls to routines in fms_affinity.F90, and fixed arguments in set_affinity added procedure to set the io_layout for 1-pe jobs to restore_state changed get_affinity and set_affinity to point to new wrappers in fms_affinity.F90 changed file_exist to file_exists in MOM_domains
… added pelist definition and argument to open_file call in write_scalar
…ity with fms_cpu_affinity_set added module use fms_affinity fms_affinity_set, fms_affinity_get to MOM_io. Added use statements for fms_affinity_set,get to MOM_driver and mom_domains
- Option -s now specifies the maximum length of lines after stripping out comments. The defaults are for the Fortran standard, not MOM6. MOM6 standard are specified in the Travis-CI invocation of trailer.py.
- niglobal,njglobal are available from the Domain type and usually accessed via a ocean_grid_type function. Modules that do not need the Domain but do use the hor_index type are obliged to use the ocean_grid_type to get the global extent, even though it's just integer information most closely related to the indices. - This commit adds niglobal,njglobal to the hor_index type so that modules that use HI, and only need indices, do not need to the full ocean_grid_type.
- MOM_random provides a wrapper to the Mersenne twister pseudo-random number generator in FMS. In particular it allows for reproducible 2d fields of numbers using the MOM6 domain decomposition. - Commit includes unit tests that check specific values as well as the statistics (the latter are not unit tests but there's no harm in doing them).
In setup_[uv]_point_obc, a number of flags for each segment were assigned without index (OBC%segment%flag), which was causing all segments to be assigned the same value. This could problems with, say, `[uv]_value_needed` flags, which have different values depending on if they are E-W or N-S oriented. This patch adds the index to the assignments.
- For arrays using intent(inout) avoids potential copies and also allows aliasing of arguments which can reduce the overhead of multiple spare arrays in the calling code.
changed get_affinity and set_affinity to point to new wrappers in fms_affinity.F90 changed file_exist to file_exists in MOM_domains redirected get_affinity and set_affinity calls to routines in fms_affinity.F90, and fixed arguments in set_affinity removed extraneous calls to open file from write_field_noDD routines, added pelist definition and argument to open_file call in write_scalar declared variable i in write_scalar removed extraneous open_file and pelist definition from write_field_1d_nodd
…ongkindofdoctor/MOM6 into user/jml/operation_fms2_the_reckoning * 'user/jml/operation_fms2_the_reckoning' of github.com:wrongkindofdoctor/MOM6: added procedure to set the io_layout for 1-pe jobs to restore_state changed get_affinity and set_affinity to point to new wrappers in fms_affinity.F90 changed file_exist to file_exists in MOM_domains Replaced intent(out) with intent(inout) in EOS Segment index added for several OBC segment flags Adds MOM_random module Adds global extents to hor_index type Correct spelling in HI doxumentation Added option to trailer.py for line length excluding comments replaced get_cpu_affinity with fms_cpu_affinity_get and set_cpu_affinity with fms_cpu_affinity_set
…the sum to set_affinity if true, and 1 if false to prevent the new fms_affinity_set routine from evaluating cpuset_sz as 0 for 1-pe/1-thread jobs with openMP enabled
Hi Jess, given that there are still lots of commits coming in to this PR, and since it will also require a squash at some point, can I request that we close this and re-open once it's ready? |
@marshallward Sorry about that! I had to resolve issues incorporating the new thread affinity module in the latest FMS updates. but this should be it. If all of the Travis CI tests pass, you, @adcroft, and @MJHarrison-GFDL can proceed with the review of the code when you are able. In the mean time, I will start updating SIS2. |
…et_cpu_affinity cleaned up whitespace and commented out code fixed line length issue in MOM_domains
Closed while I work through updates for internal gitlab CI tests. |
- This version of FMS is a prerequisite to updating calls to FMS ready to try FMS2 I/O behind NOAA-GFDL/SIS2#117 and NOAA-GFDL/MOM6#1033
This is a draft PR for the MOM6 code with the new fms-io calls so that MOM6 developers can see what the preliminary round of changes looks like. The code compiles with gnu7 in debug on gaea, but still needs more thorough testing. I will change the PR status ( and branch head, if the MOM6 team would prefer to have separate branch to test the new IO similar to fms-io-dev in the FMS repo) when I have finished regression testing. The PR for the alpha tag will also include thorough descriptions of the major changes.