Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.lang.fortran    |    Putting John Backus on a giant pedestal    |    5,127 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 4,915 of 5,127    |
|    Lynn McGuire to Tran Quoc Viet    |
|    converting a 700,000+ line Fortran 77 pl    |
|    08 Apr 25 15:06:06    |
      XPost: comp.lang.c++       From: lynnmcguire5@gmail.com              On 11/23/2022 5:36 PM, Tran Quoc Viet wrote:        > On Saturday, November 19, 2022 at 1:01:25 PM UTC+7, Lynn McGuire wrote:        >> We are converting a 700,000+ Fortran 77 lines of code plus 50,000+ C++        >> lines of code engineering software product to C++. With all that code,        >> we produce four Win32 EXEs and three Win32 DLLs. My goal is to add four        >> Win64 EXEs and three Win64 DLLs to the product with the same        >> capabilities as the Win32 versions (console, windowed, Excel callable,        >> Excel embeddable). Plus support for Unicode named files and Unicode        >> file paths.        >>        >> I am using a customized version of f2c at the moment to automate 80% of        >> the conversion from F77 to C++. I have added support for logical*8,        >> changed the output file from *.c to *.cpp, added an include for the        >> Fable fem.hpp template library, removed the trailing underscores from        >> the subroutine and common block names, removed the ftnlen arguments from        >> the character arguments, converted all F77 comments to the // instead of        >> the /* */, and a few other items. If desired, I am willing to post a        >> copy of my modified f2c on my website with the source code.        >> https://netlib.org/f2c/        >> https://en.wikipedia.org/wiki/F2c        >>        >> f2c does not get me totally there. The Fortran character strings were        >> poorly handled so they will probably needed fixing for proper sizing and        >> alignment. The f2c i/o code is crap so I take the original F77 i/o code        >> and translate it by hand. The arrays in the argument list are still        >> based at an index of one so I convert those to base index of zero by        >> hand. All of the local and common block arrays were converted to a base        >> index of zero by f2c. I add the new *.cpp file to my Visual Studio        >> project. I then add the new function prototypes to my prototypes.h file        >> and I add any new common block structures to my commons.h file. I then        >> compile and fix until I get a clean compile.        >>        >> I have converted over 29,000 lines of F77 code to C++ now. Almost a        >> hundred subroutines and several dozen common blocks. Most are compiling        >> cleanly in Visual C++ 2015. My testing is working well with the        >> problems being in the character string area. I am still aiming for        >> Christmas for completing the small data analysis program in my        >> calculation engine. It is somewhere around 150,000 lines of F77 code.        >> Tough to tell since it shares so much code with my big calculation        >> engine which is around 600,000 lines of F77 code and 50,000 lines of        >> C++. They share about 75,000 lines of F77 and C++ code.        >>        >> Thanks,        >> Lynn               > Thank you for sharing your experience on that tough work. For years I        > had also paid lots of effort to convert all F77 codes to modern       Fortran and I stopped that job because I found its nonsense. Is that how       we are removing Fortran from its world?               > I am having problems mixing C++ and Fortran code in Visual Studio so I        > am trying to move to all C++. I suspect if I was all Fortran then my        > life would be easier.               > Lynn              I am back on this project again. I have converted over 100,000 lines of       the F77 code to C++ now and am debugging character string issues.              I tried GFortran and GCC with Simply Fortran for a long while but the       debugging is simply horrible. And I was rewriting too much of the C++       code from F77 to F2003+.              Lynn              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca