-
Notifications
You must be signed in to change notification settings - Fork 106
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
Compile with -std=f2008
#228
Conversation
Codecov Report
@@ Coverage Diff @@
## main #228 +/- ##
=======================================
Coverage 41.35% 41.35%
=======================================
Files 13 13
Lines 3794 3794
=======================================
Hits 1569 1569
Misses 2225 2225 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
@nwu63 I can have a look at the remaining issues as I wanted to update the complex build anyway. |
Is this ready @eirikurj? |
Yeah, I think this is good for now. Will mark it ready for review. Few things to note. I created an interface for |
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.
Looks good. I think this is fine as is so I approved, but I also have some comments:
I have a failing case that produces NaNs in complex mode. The behavior did change with this PR. Instead of crashing with returnFail during the first iteration, it continuously takes NK steps of size 0.01 where all monitor variables are NaNs. I prefer the original behavior, but this is not that big of an issue.
Allow specified modules to be compiled without optimization
I did want to take a look at this. I can review within the next 2 days if there is no urgency. I wanted to review partly also because my current open PR touches a bit of fortran and I want to see how bad the conflicts will be and if I can fix that PR as well. |
Ok, from my point of view, that fine. Please take your time testing this, preferably on some complex cases if you have any. |
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.
Most of the changes here look good. I have a few general comments:
- None of my cases get NaNs right now, so I cannot test this. However, if you want, we can add a test that we force to get a nan and see if we can catch it.
- What did you mean by try my "complex" cases? As in complicated cases or cases that use complex numbers for complex step checks?
- Some files only have whitespace added (adBuffer.f, adStack.c). Do we want to keep these whitespace changes or just remove them to have a cleaner diff?
- Will this now not work with compilation using GCC 9?
Otherwise stuff look good. I don't fully understand the implications of the compilation flags but it would be nice if one of you can give me a quick summary over a call so I dont miss any nuance. The other code changes make sense.
@anilyil see my comments below. We can discuss optimization flags offline if you want.
|
Am I correct that this PR is necessary but not sufficient to get ADflow working with GCC 11? |
With a cheeky little |
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.
Works for me.
I would like to eventually fix these, so that we do not have to conditionally add those to the Docker builds once we update to U22 which will be using gcc>9. But I guess that does not have to happen in this PR |
@anilyil wanted to have a chat offline, but we have yet to meet. Will reach out offline so we can figure out a time and can get this merged soon. |
Purpose
This the last remaining repo. This fixes a number of things
-std=f2008
standardI got the real build to work (there are some warnings still but it should run fine). The complex build has some extra problems that will require more investigation, in particular
complexify.py
probably needs to be modified. I have absolutely no idea how it works in idwarp without such fixes.I will not continue working on this PR, but this should be done soon as it is blocking adoption of our codes with newer GCC compilers.
Expected time until merged
This is not ready to merge yet.
Type of change
Testing
Checklist
flake8
andblack
to make sure the code adheres to PEP-8 and is consistently formatted