home bbs files messages ]

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