Comments (8)
The issue here is that older gfortran
products have missed the -Wsurprising
cases with respect to stack vs static memory when a subroutine could be called recursively or in a multithreaded situation: "This makes the procedure unsafe when called recursively, or concurrently from multiple threads" (agree!).
Simple work-around: remove -Wsurprising
from the Makefile
. However, this is not a real fix but will suffice as bubblegum as long as the code is not significanlty modified. Fragile LARGE Fortran source file: mercury6_2.for
!!
I will be opening a PR with a fix to README.md and Makefile.
Best long-term solution (IMHO): Rewrite this project in Julia, Go, or some other efficient code-generating compiler language (No, Python does not qualify as much as I like Python for certain tasks). How about one of you academics finding a brilliant student to take on this huge mind-numbing challenge? (-:
from mercury.
Hi, i'm trying to compile mercury and i'm getting this error with stock mercury.inc. Any ideas?
from mercury.
No problem compiling in Ubuntu 22.04 using gfortran 9.4.0-1ubuntu1~20.04.1.
The error is when compiling in Debian 11 with gfortran version Debian 10.2.1-6. Maybe the code needs to be updated for this compiler.
from mercury.
Hi all,
@texadactyl Thank you for your comment (and your effort in another PR). That's amazing!
I strongly agree with your point that this code has to be rewritten in a modern language (? maybe, Rust). The question is whether it is needed. Our colleagues created an amazing package 'rebound' (https://github.com/hannorein/rebound). Of course, while it is written in python, it is not as fast as this one, but it includes many new integrators, including the updated version of hybrid integration, which works with close encounters (when the denominator tends to 0).
It is not a big deal with rewrite this code into Rust or anything similar. I assume it will take a couple of days. However, the challenge is to support it and, moreover, to be used by others. I'm not sure whether it is true.
from mercury.
@smirik
Conversion effort vs benefit to users - agreed. Its just a pain at times to maintain a program with 1-letter variable names and other quirks! )-:
from mercury.
Sometimes, I enjoy working with fortran77. While it is painful (especially, on f77), it brings low-level coding feeling :)
from mercury.
@smirik
I miss using Assembly Language the most. What other languages can hide data in the back half of an unconditional branch! (:
from mercury.
Maybe, maybe. I forgot Assembler as a bad dream after I had completed the corresponding course. It takes too much time to accomplish a simple task. However, it might depend on my skills that time.
from mercury.
Related Issues (17)
- Obliquity calculation and valid spin angular momentums for the bodies HOT 8
- Suggestion for a change-tracker wiki HOT 2
- Data from JPL vs original data HOT 2
- Updated big.in HOT 1
- Enhancement request: Update README.md
- IEEE invalid operation when checking for central body collision HOT 8
- Total number of bodies exceeds NMAX (ONLY in close6 execution) HOT 33
- README.md instructions for "How to use" are incorrect (suggestion enclosed) HOT 2
- mfo_user user define force Issue HOT 5
- gfortran with -O2 compiles but does not run in older processors HOT 4
- Integration issue HOT 1
- Software License HOT 4
- add topics HOT 1
- Accuracy in simple test HOT 1
- A few issues fixed; donationware HOT 7
- Program received signal SIGSEGV: Segmentation fault - invalid memory reference. HOT 33
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mercury.