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

Running a Fortran 77 program in a C++ enviorment/program

  1. Apr 3, 2008 #1
    I hope someone out there can help me out on this one. I have intermediate C++ experience, just a working level knowledge, however my prof. threw me a project to work on and where I am at now I have no experience with.

    So this is whats up, I have a massive fortran 77 program...that does some heavy, calculations with a but load of data which can take days to execute on a supercomputer. However, I was told not to mess with the fortran77 program even though most of the code is 'homegrown' and there are extensive libraries out now that can take away pages of code.

    So my task is to vary the input file this program is running off of, run the fortran program and get the output files and loop it over again at another interval.

    So some how I need to run this fortran program within a C++ program that I am going to write, more to the point inside a loop that will change the input file, run fortran, get output files...rename output files to match interval it was intially ran at, and change interval and do it all over again.

    How in the hell do you run a fortran77 program within a C++ program?
  2. jcsd
  3. Apr 3, 2008 #2
    If the fortran code is already compiled (so you have "something.exe" sat in your working directory) then you could try something like:

    #include <stdlib.h>

    If you want to run fortran code in c++ then there is a wrapper, called "f2c" (I think you just need a header file, "f2c.h"). I've never used this so I have no idea how it works... but I hope this helps.
  4. Apr 3, 2008 #3
    Yes that helps, I figured it had to be something like that but I had no clue where to look, I figured as for simplistically and efficiency I should just run the executable within the C++ program, b/c well my next task after I write this piece of serial code...is to parallelize the loop and I thought it would be better for me and the program to just run the executable.
    Thanks much
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook