Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Language for Bearing Program

  1. Dec 6, 2013 #1
    So, my company has quite a few old programs for calculating solutions to bearings, annular seals, etc. The calculations are iterative in nature, and none of these old programs are really integrated together, which is problematic. Plus they're in Fortran (or something else), and don't run on our newer computers. So I would like to reprogram some of them to run on 64 bit Windows machines. But I'm not sure what language to use for something like this. We'd like to package them together into a software suite that we can distribute among our engineering group. I know some Python, and I think I could do it in Python relatively quickly, but is this really something that Python's suitable for? Should we be looking at C (or one of its variants)?
  2. jcsd
  3. Dec 6, 2013 #2


    User Avatar
    Gold Member

    C#.NET would be a reasonable choice.
  4. Dec 6, 2013 #3


    User Avatar
    Science Advisor
    Homework Helper

    If the company is paying for the job, Microsoft Visual Studio supports Fortran (but not in the free VS Express versions). All the languages are integrated with each other, so if you want to leave your Fortran code untouched and add a graphical user interface in a different language, you can.

    I agree the .NET framework would be a reasonable choice for any new code. Use whichever language is easiest to translate your old code into (which probably means "old school" C, rather than C++ or C#).

    There used to be a very good fortran-to-C conversion program, called, unimaginatively, f2c. I don't know if it's still around or supported though. Try Google.
  5. Dec 6, 2013 #4
    EDIT: If you can package up the Fortran code as a DLL, you could use the existing code from another language like Python. I don't have any practical experience with this, though. Otherwise...

    Python with numpy would be a good choice.


    There are several Python distributions for windows that probably have all you need, like Anaconda, Canopy, WinPython, and Portable Python.


    I use WinPython. The default install is just a directory, with no registry changes. It's only as invasive as you want it to be. But Portable Python may be even more convenient in this way since it's meant to be run off a USB stick.

    And here's a site with many pre-compiled scientific Python modules for windows:


    With numpy, you want to try to convert an iterative solution to a vectorized solution. Usually this is very straightforward, but some cases may take some thought. In the case where only an iterative solution will work, I've found Cython fairly easy to use for massive speedups without having to write C by hand:

    Last edited: Dec 6, 2013
  6. Dec 6, 2013 #5
  7. Dec 7, 2013 #6


    User Avatar
    Science Advisor
    Homework Helper

  8. Dec 7, 2013 #7
    Thanks for the help guys. Looks like we'll have to find a co-op or something (we're a bunch of mech engineers).
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook