I have been involved in several mainframe to PC ports over the past 15 years, and this is what we discovered:
1. precision of REALs differs between mainframe & PC. Depending on the calculations, this can result in large differences in results.
2. the mainframe compilers are not as robust in checking for errors as the PC compilers (we have been using LAHEY for years). When we ported, we found lots of errors in the mainframe code such as mismatched or wrong numbers of arguments in subroutine and function calls. Make sure when you compile on the PC you turn on all the checking the compiler provides. (arguments, bounds, etc.)
3. On the mainframe, it was not necessary to initialize everything - the operating system hands you space and sets it all to zero before you start your programs. On the PC, everything must be explicity intialized or you end up with garbage.
4. Required code changes are usually limited to corrections described above, and system calls (printing to screen, getting the current time, etc.)
5. For windows-based front ends, we usually use VB. In some cases, where the FORTRAN portion of the project was small enough or uncomplicated enough, we did an additional conversion from PC FORTRAN to VB. The code for the most part could be cut and pasted into VB modules, replacing the IO with VB forms
6. When fixing the FORTRAN code on the PC, fix it also on the mainframe so that when you do comparison testing you are comparing the same thing.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|