Currently I am using Intel Fortran Compiler XE 12.1 (Parallel Studio XE 2010 with VS 2010) to edit the source code of RT3D (A ground water modelling software). But the manual of the software says to use Digital Visual Fortran.
Could I please know the difference between the compiler I am using and Digital Visual Fortran?
Rather than read about an obsolete (but high quality) compiler, just use the compiler you have or the current Intel Fortran compiler and, if you run into problems, you can post details here.
Digital/Compaq Fortran supported Fortran 95 (and some features of F2003). If the RT3D package is in Fortran 95 or Fortran 77, any current compiler should work fine.
I'll comment that Digital Visual Fortran is now 19 years old, and Intel Fortran 12.1 is 7 or 8 years old by now. I agree with mecej4 that you should just try the compiler you have.
Thank you very much for the reply.
RT3D package is Fortaran 90. Does this matter?
What I have to do is create a .dll file ( file name: rxns.dll) using this compiler , to combine the edited source code with the RT3D package.
Using IVF 12.1 I created a dll file, but when I am trying to run the batchfile, it gives an error telling “ The procedure entry point- RXNS@60 could not be located in the dynamic link library C:\ ..................\ batchrxn.exe”. (batchrxn. exe is the file that need to be run). I copied the dll file into the corect location.
Could you please check, what I have done wrong?
Many Thanks Tim.
The dll file given in tutorials is prebuilt and according to their description, its built using DVF. This demo file works fine without any errors when running the batchfile.
The problem is with the dll I am building using IVF (Anyway I do not have DVF compiler since it is very old) .Then only I get the above error message.
I recommend that you build the DLL first and then the EXE, both using the same compiler. This you can do if you have all the sources needed.
If however, you have a DVF-compiled DLL and no source, you will need to tell the Intel compiler to use the CVF/DVF calling convention, by specifying the /iface:cvf flag. The @60 suffix in the missing routine name is a sign that the CVF default convention ("STDCALL") was used in the EXE but not in the DLL. You need to provide more details of what you are trying to do, because it is not productive for us to guess what you have in the source files, batch scripts, etc.
Thank you very much mecej4. It worked..!!
After specifying the /iface:cvf flag, no any errors were given.
Many Thanks again and I will post here if any errors popped up again during my work. Hope you all will help me.