The efficient floating-point control and inquiry procedures belong to the xlf_fp_util module. The general service and utility procedures belong to the xlfutility module. To ensure that the functions are given the correct type and that naming conflicts are avoided, use these procedures in one of the following two ways:
File names | File type | Locations |
---|---|---|
| source file |
|
| module symbol file |
|
You can use the precompiled module by adding a USE statement to your source file (see USE for details). As well, you can modify the module source file and recompile it to suit your needs. Use the xlfutility_extname files for procedures compiled with the -qextname option. The source file xlfutility_extname.f has no underscores following procedure names, while xlfutility.f includes underscores for some procedures names (as listed in this section).
If there are name conflicts (for example if the accessing subprogram has an entity with the same name as a module entity), use the ONLY clause or the renaming features of the USE statement. For example,
USE XLFUTILITY, NULL1 => DTIME_, NULL2 => ETIME_
To avoid conflicts with names in the libc library, some procedure names end with an underscore. When coding calls to these procedures, you can:
xlf -qextname calls_flush.f
This method is recommended for programs already written without the underscore following the routine name. The XL Fortran library contains additional entry points, such as fpgets_, so that calls to procedures that do not use trailing underscores still resolve with -qextname.
PRINT *, IRTC() ! No underscore in this name CALL FLUSH_(10) ! But there is one in this name
If your program calls the following procedures, there are restrictions on
the common block and external procedure names that you can use:
XLF-Provided Function Name | Common Block or External Procedure Name You Cannot Use |
mclock | times |
rand | irand |