1
votes

I have been tasked with tweaking some 20 year old code originally compiled with Compaq Visual Fortran. I was hoping to use GNU's gfortran and not the pricey Intel Visual Fortran. But, the code relies on several modules that seem to only be available with IVF:

  • mfslib
  • dflogm (I believe this is a part of QuickWin?)
  • msimsl

If I were able to get copies of these modules, would I be able to use them with gfortran instead of Intel? (I am a complete Fortran beginner, btw.)

The closest question I could find was: Intel Fortran to GNU Fortran Conversion

...but that question seems more about makefiles and rewriting the OP's own code, not specifically about using modules from one compiler in another.

Thanks in advance for any help.

2
The mod files from one compiler are generally useless to someone with a different compiler. If you could acquire (leave aside any IP issues) the source code for those modules you might, just might, be able to recompile them. But you'll probably find that you can't build msimsl without the IMSL numerical libraries .... After 3 months of banging your head against the succession of brick walls you encounter you'll probably think that Intel Fortran ain't that pricey after all. - High Performance Mark
Unfortunately, if your software uses proprietary libraries, you will have to use tools that the proprietary vendors support. That includes the compiler. - Vladimir F

2 Answers

0
votes

As said in comments, the answer is no.

If you want to port a program using extensions from Compaq Visual Fortran to gfortran, you will need to replace them by standard Fortran instructions or use other libraries (independent from any compiler).

Fortran is a normalized language (latest standards are Fortran 2003, 2008, 2018): if you stick to the standard, you will have no problem (or very very few problems) to build your project with another compiler. If you don't, you lose that advantage...

0
votes

This is not an answer - just too long for a comment. With quickwin, the easiest way to see what the damage is going to be is to remove one of the following

USE DFLIB
USE IFQWIN

and see what falls out of the woodwork. You may have

  1. absolutely nothing - this means it was a console application. All they used quickwin for was a scrollable output
  2. SETWINDOWCONFIG, GETWINDOWCONFIG, SETWSIZEQQ, GETWSIZEQQ. This is also a console application. All they are doing is changing the scrollable area relative to the window size.
  3. GETCHARQQ, FOCUSQQ - these are normally interactive dialogs
  4. APPENDMENUQQ - they've modified the drop down menu to add extra features.
  5. ARC, LINETO, OUTGTEXT - this is a graphical program. You'll need to convert them to something like dislin or pgplot or some library that does graphics.

Most of the quickwin programs I've had to convert are either 1. or 2. I've only come across 5 once. I've written ones with 3 and 4 and 5 when IVF was called PowerFortran.