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

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 13K views
lordentropy
Messages
5
Reaction score
0
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 what's 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?
 
on Phys.org
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>
...
system("something.exe");
...

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.
 
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