SLATEC and NMS encapsulate machine dependencies in the same set of two routines. PDA_I1MACH contains machine-specific integer constants, and PDA_D1MACH contains machine-specific double precision constants. Use of these is rare, PDA_I1MACH is mostly asked for the Fortran unit number for printing messages. For single precision constants there would be a third routine PDA_R1MACH, which is so far not in the library.
The versions of PDA_D/I1MACH from SLATEC are superior to those from NMS. They have later revision dates, and they include cases for both DEC Alpha IEEE and Sun. In the library two source files exist, pda_d/i1mach.f_sun4_Solaris and pda_d/i1mach.f_alpha_OSF1. In usual Starlink manner the ‘makefile’ uses the SYSTEM environment variable to pick the right source when building the library.
MINPACK uses the routine PDA_DPMPAR, which provides a subset of the information available from PDA_D1MACH. PDA_D1MACH is the preferred routine, but both exist in the library. PDA_DPMPAR was changed to call PDA_D1MACH.
It is not known how OPT and DIERCKX depend on machine specifics.