Previous: VICAR Directory Structure Up: VICAR Porting Guide Next: Summary of Major Portability Rules

Application Examples

There has been a lot of information presented in this porting guide. Perhaps the best way to digest it all is to look at examples. Rather than printing an example here, it is easier to point you at good on-line examples and let you look at them there, or print them, at your leisure.

All ported applications are kept on the MIPL VAXcluster in the CMS libraries p2prog$cms (applications) and p2sub$cms (subroutines). P3prog$cms and p3sub$cms are the class 3 equivalents. You can use these libraries to determine which applications have been ported to study them.

On a Unix system with VICAR, obviously all applications in the source directories have been ported, or they wouldn't be there.

The question arises, what applications should you look at? There are now plenty of programs and subroutines that have been ported that can be used for reference. On a Unix system, look in $P2SUB for subroutines, and $P2SOURCE for programs. On a VMS system, look in p2$sub for subroutines. Programs are in p2$source, but so are all the unportable programs. You can either consult the p2prog$cms CMS library, or refer to a Unix system, to figure out which programs are portable.

It is recommended that everyone doing a port examine these applications and subroutines as examples of how to write portable code, and how to package everything together into a COM file.

In addition, the RTL source code itself can be used as examples of how to write Fortran bridges and machine-specific code. The routines that accept keyword-value pairs as arguments are a special case, but the other routines follow the same Fortran bridge rules as a SUBLIB routine must. And the RTL has a lot of machine-dependent code in it to use as examples.

rgd059@ipl.jpl.nasa.gov