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

Click For Summary
SUMMARY

This discussion focuses on integrating a Fortran 77 program within a C++ environment. The user seeks to execute a pre-compiled Fortran executable ("something.exe") from C++ using the system call. Additionally, the discussion mentions the use of the "f2c" wrapper to facilitate the integration of Fortran code directly into C++. The user aims to automate the process of varying input files, executing the Fortran program, and renaming output files based on execution intervals.

PREREQUISITES
  • Intermediate knowledge of C++ programming
  • Understanding of Fortran 77 programming
  • Familiarity with system calls in C++
  • Basic knowledge of file handling in programming
NEXT STEPS
  • Research the usage of the system() function in C++ for executing external programs
  • Explore the "f2c" wrapper for converting Fortran code to C
  • Learn about file I/O operations in C++ for managing input and output files
  • Investigate parallel programming techniques in C++ for optimizing execution
USEFUL FOR

C++ developers, Fortran programmers, and anyone involved in integrating legacy code into modern applications.

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?
 
Technology news 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
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 14 ·
Replies
14
Views
3K
  • · Replies 22 ·
Replies
22
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 8 ·
Replies
8
Views
4K
  • · Replies 37 ·
2
Replies
37
Views
5K
  • · Replies 11 ·
Replies
11
Views
2K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 3 ·
Replies
3
Views
2K