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

Gcc 7 4 0 patch #2

Merged
merged 4 commits into from
Nov 1, 2019

Conversation

MJHarrison-GFDL
Copy link

No description provided.

@codecov-io
Copy link

Codecov Report

Merging #2 into tc4_fix will decrease coverage by <.01%.
The diff coverage is 84.44%.

Impacted file tree graph

@@             Coverage Diff             @@
##           tc4_fix       #2      +/-   ##
===========================================
- Coverage    44.69%   44.69%   -0.01%     
===========================================
  Files          212      212              
  Lines        62244    62237       -7     
===========================================
- Hits         27823    27815       -8     
- Misses       34421    34422       +1
Impacted Files Coverage Δ
src/initialization/MOM_state_initialization.F90 31.38% <100%> (ø) ⬆️
src/parameterizations/vertical/MOM_ALE_sponge.F90 29.31% <83.72%> (-1.45%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1b96028...251b0d9. Read the comment docs.

@marshallward marshallward merged commit 77e7342 into marshallward:tc4_fix Nov 1, 2019
@marshallward
Copy link
Owner

I just tested this on my laptop and the energies are identical, but I'm seeing differences in the other fields:

$ tr -s ' ' < results/tc4/ocean.stats.symmetric | cut -d ' ' -f3- | tail -n 1
1.000, 0, En 2.3406820605638800E-07, CFL 0.00019, SL 4.2633E-14, M 7.18210E+13, S 35.0000, T 0.4626, Me 2.51E-17, Se -1.84E-13, Te 2.10E-02
$ tr -s ' ' < results/tc4/ocean.stats.restart | cut -d ' ' -f3- | tail -n 1
1.000, 0, En 2.3406820605638800E-07, CFL 0.00019, SL 4.2633E-14, M 7.18210E+13, S 35.0000, T 0.4626, Me -5.14E-17, Se -9.53E-14, Te 1.04E-02

Specifically the last three, Me, Se, Te.

Are you also seeing this, or is it just on my end?

@MJHarrison-GFDL MJHarrison-GFDL deleted the gcc_7_4_0_patch branch December 3, 2020 15:21
marshallward pushed a commit that referenced this pull request Mar 23, 2021
marshallward pushed a commit that referenced this pull request Sep 2, 2021
marshallward added a commit that referenced this pull request Jan 5, 2022
A fix to opening an existing file in MOM_file_parser was added.

If an open file is re-opened, then the root PE will detect this and
`return`, but the others will proceed into `populate_param_data` and get
stuck in a broadcast waiting for root.

We fix this by gathering the logical test result over PEs as a global
any() function.

Leading to change #2...

`any_across_PEs` and `all_across_PEs` have been added to MOM_coms as
any/all implementations over PEs (i.e. MPI ranks).  Since legacy FMS
does not support logical collectives, we convert to integers and use
min/max collectives as an equivalent test.
marshallward added a commit that referenced this pull request Jan 7, 2022
A fix to opening an existing file in MOM_file_parser was added.

If an open file is re-opened, then the root PE will detect this and
`return`, but the others will proceed into `populate_param_data` and get
stuck in a broadcast waiting for root.

We fix this by gathering the logical test result over PEs as a global
any() function.

Leading to change #2...

`any_across_PEs` and `all_across_PEs` have been added to MOM_coms as
any/all implementations over PEs (i.e. MPI ranks).  Since legacy FMS
does not support logical collectives, we convert to integers and use
min/max collectives as an equivalent test.
marshallward added a commit that referenced this pull request Jan 13, 2022
A fix to opening an existing file in MOM_file_parser was added.

If an open file is re-opened, then the root PE will detect this and
`return`, but the others will proceed into `populate_param_data` and get
stuck in a broadcast waiting for root.

We fix this by gathering the logical test result over PEs as a global
any() function.

Leading to change #2...

`any_across_PEs` and `all_across_PEs` have been added to MOM_coms as
any/all implementations over PEs (i.e. MPI ranks).  Since legacy FMS
does not support logical collectives, we convert to integers and use
min/max collectives as an equivalent test.
marshallward added a commit that referenced this pull request Feb 17, 2022
A fix to opening an existing file in MOM_file_parser was added.

If an open file is re-opened, then the root PE will detect this and
`return`, but the others will proceed into `populate_param_data` and get
stuck in a broadcast waiting for root.

We fix this by gathering the logical test result over PEs as a global
any() function.

Leading to change #2...

`any_across_PEs` and `all_across_PEs` have been added to MOM_coms as
any/all implementations over PEs (i.e. MPI ranks).  Since legacy FMS
does not support logical collectives, we convert to integers and use
min/max collectives as an equivalent test.
marshallward added a commit that referenced this pull request Feb 22, 2022
A fix to opening an existing file in MOM_file_parser was added.

If an open file is re-opened, then the root PE will detect this and
`return`, but the others will proceed into `populate_param_data` and get
stuck in a broadcast waiting for root.

We fix this by gathering the logical test result over PEs as a global
any() function.

Leading to change #2...

`any_across_PEs` and `all_across_PEs` have been added to MOM_coms as
any/all implementations over PEs (i.e. MPI ranks).  Since legacy FMS
does not support logical collectives, we convert to integers and use
min/max collectives as an equivalent test.
marshallward added a commit that referenced this pull request Mar 9, 2022
A fix to opening an existing file in MOM_file_parser was added.

If an open file is re-opened, then the root PE will detect this and
`return`, but the others will proceed into `populate_param_data` and get
stuck in a broadcast waiting for root.

We fix this by gathering the logical test result over PEs as a global
any() function.

Leading to change #2...

`any_across_PEs` and `all_across_PEs` have been added to MOM_coms as
any/all implementations over PEs (i.e. MPI ranks).  Since legacy FMS
does not support logical collectives, we convert to integers and use
min/max collectives as an equivalent test.
marshallward added a commit that referenced this pull request Mar 31, 2022
A fix to opening an existing file in MOM_file_parser was added.

If an open file is re-opened, then the root PE will detect this and
`return`, but the others will proceed into `populate_param_data` and get
stuck in a broadcast waiting for root.

We fix this by gathering the logical test result over PEs as a global
any() function.

Leading to change #2...

`any_across_PEs` and `all_across_PEs` have been added to MOM_coms as
any/all implementations over PEs (i.e. MPI ranks).  Since legacy FMS
does not support logical collectives, we convert to integers and use
min/max collectives as an equivalent test.
marshallward added a commit that referenced this pull request Jan 4, 2023
Two changes, one an iterative improvement, the other a hack to get
things running.

1. The get_file_fields has been rewritten to fetch both axes and fields,
and there is some minimal effort to distinguish between them when
sweeping through variables.  The results are then populated into the
linked lists of the handle.

Two caveats:
    - it's untested, probably not even working
    - we don't even use this function anymore, see change #2

2. get_file_info now just returns -1 for nvars.

Why?  because previously FMS would initialize its nvar to -1, and if you
query a newly opened file then this is what you see.  That was an
indicator to "recreate" the file (actually its metadata, which pulls
from existing templates and now matches the opened file).

To spoof this, I just always return -1 and trigger this "recreate"
effect.  I can do this because the file metadata is static across runs.

Not robust, but it makes sense in a perverse way...

I will try to make this work honestly, so that get_file_fields will
return the correct content.  But for now this feels sufficient.
marshallward added a commit that referenced this pull request Jan 11, 2023
Two changes, one an iterative improvement, the other a hack to get
things running.

1. The get_file_fields has been rewritten to fetch both axes and fields,
and there is some minimal effort to distinguish between them when
sweeping through variables.  The results are then populated into the
linked lists of the handle.

Two caveats:
    - it's untested, probably not even working
    - we don't even use this function anymore, see change #2

2. get_file_info now just returns -1 for nvars.

Why?  because previously FMS would initialize its nvar to -1, and if you
query a newly opened file then this is what you see.  That was an
indicator to "recreate" the file (actually its metadata, which pulls
from existing templates and now matches the opened file).

To spoof this, I just always return -1 and trigger this "recreate"
effect.  I can do this because the file metadata is static across runs.

Not robust, but it makes sense in a perverse way...

I will try to make this work honestly, so that get_file_fields will
return the correct content.  But for now this feels sufficient.
marshallward added a commit that referenced this pull request Feb 22, 2023
Commit #1
---------

Removes calls to mpp_open, and replaces then with FATAL MOM_error calls
when present.

This also introduces the idea where only domain-decomposed files are
used with infra IO.  I've floated this idea a few times and people seem
supportive, but it may not necessarily be embraced by everyone.

Also moves Vertical_coordinate.nc from infra to native netCDF.

This is primarily a trial balloon to see how the regression suite holds
up.

Commit #2
---------

mpp_open removal

This formally removes the mpp_open functions, along with the FMS_writes
control flag.  Hopefully there is nothing much interesting here.

Also removed open_file_unit since it's no longer used, and renamed
open_file_type to open_file since the interface serves no purpose.
marshallward added a commit that referenced this pull request Feb 23, 2023
Commit #1
---------

Removes calls to mpp_open, and replaces then with FATAL MOM_error calls
when present.

This also introduces the idea where only domain-decomposed files are
used with infra IO.  I've floated this idea a few times and people seem
supportive, but it may not necessarily be embraced by everyone.

Also moves Vertical_coordinate.nc from infra to native netCDF.

This is primarily a trial balloon to see how the regression suite holds
up.

Commit #2
---------

mpp_open removal

This formally removes the mpp_open functions, along with the FMS_writes
control flag.  Hopefully there is nothing much interesting here.

Also removed open_file_unit since it's no longer used, and renamed
open_file_type to open_file since the interface serves no purpose.
marshallward added a commit that referenced this pull request Mar 3, 2023
Commit #1
---------

Removes calls to mpp_open, and replaces then with FATAL MOM_error calls
when present.

This also introduces the idea where only domain-decomposed files are
used with infra IO.  I've floated this idea a few times and people seem
supportive, but it may not necessarily be embraced by everyone.

Also moves Vertical_coordinate.nc from infra to native netCDF.

This is primarily a trial balloon to see how the regression suite holds
up.

Commit #2
---------

mpp_open removal

This formally removes the mpp_open functions, along with the FMS_writes
control flag.  Hopefully there is nothing much interesting here.

Also removed open_file_unit since it's no longer used, and renamed
open_file_type to open_file since the interface serves no purpose.
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.

3 participants