On 11/24/2022 12:05 PM, FortranFan wrote:
> On Wednesday, November 23, 2022 at 6:36:28 PM UTC-5,
vie...@gmail.com wrote:
>
>> ..
>> 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?
>
>
> @
vie...@gmail.com,
>
> Can you please elaborate on "I stopped that job because I found its nonsense"?
>
> Our experience suggests what OP's pursuit - "converting a 700,000+ line Fortran 77 plus 50,000+ line C++ program to C++" - to be UTTER NONSENSE.
>
> Please note OP is the President and CEO of a commercial software company, WinSim Inc.
https://www.winsim.com/staff.html
>
> And the software in question is primarily the *calculation engine* in the area of chemical process simulation in steady-state conditions (d/dt - where t is time - terms in the physical relations starting with the laws of conservation of mass and then energy applied to simulate the chemical processes are not applicable at steady-state). The simulator may have dynamic modes where the PDEs and the ODEs in terms of time become relevant. Anyways, what is stake is heavy-duty number-crunching using arrays of floating-point variables for which Fortran is extremely strong. Moreover there is an extremely rich, powerful, performant, and validated legacy and set of Fortran libraries.
I note that you outed me all over the place. That is very uncool, even
for a guy living in his mother's basement. You have zero credibility in
my opinion when you start up personal attacks like this. What are you, 15 ?
And my software already has dynamic memory usage in it all over the
place for when we converted to sparse matrixes back in 1977 using the
dynosor (
https://dl.acm.org/doi/10.1145/954654.954661 ) technology.
It enabled us to live on the 2 megaword Univac 1108 until 1982. And
then on the 6 megaword IBM 370 until their replacements in the late
1980s. Here is a sample of our code:
IFLBLO = VDY(KPDSP+5) + 0.1
C EQUIPMENT IS ADD/FTN BLOCK IF NECALL BETWEEN 18 AND 35
if (necall .lt. 18 .or. necall .gt. 35 .or. iflblo .ne. 2) then
call amoco (jeqno, nin, nout, ncp, neqp, ndsp, vdy (ivpfr + 1),
* vdy (itemp + 1), vdy (ipres + 1), vdy (ienth + 1),
* vdy (ientr + 1),
* vdy (imole + 1), vdy (icomp + 1), vdy (isikv + 1),
* vdy (ovpfr + 1),
* vdy (otemp + 1), vdy (opres + 1), vdy (oenth + 1),
* vdy (oentr + 1),
* vdy (omole + 1), vdy (ocomp + 1), vdy (osokv + 1),
* vdy (kpeqp+1), vdy (kpdsp+1), vdy (kpscp+2),
* ivdy (kpin + 1).i, ivdy (kpout + 1).i)
else
NBLOCK = NECALL - 17
CALL LINECK(2)
WRITE (OUFILE,61) NBLOCK
61 FORMAT ('0IN-LINE FORTRAN - SIMULATE BLOCK ',I6)
CALL LCBK ('DRCT',NDRCTO,LDRCTO)
call adinlf (jeqno, nblock, ivdy(ndrcto+1).i ,
* nin ,nout ,neqp ,ndsp ,
* ivpfr ,itemp ,ipres ,ienth ,imole ,
* icomp ,isikv ,ovpfr ,otemp ,opres ,
* oenth ,omole ,ocomp ,osokv ,kpeqp ,
* kpdsp,
* ieqp, extnum, eqnam, max_streams_per_equipment,
* equipment_connections, immsav)
end if
No thanks to your advice,
Lynn