| Previous | Contents | Index | 
Table 12-2 describes the 3f routines that provide special functions allowing DIGITAL Fortran 90 and C language programs to work together.
| Routine Name | Function and Comments | 
|---|---|
| for_rtl_init_ | Allows a C main language program to use the DIGITAL Fortran 90 Run-Time Library environment by initializing the environment, including associated signal handlers; see for_rtl_init_ in Table 12-3 | 
| for_rtl_finish_ | Allows a C main language program to terminate use of the DIGITAL Fortran 90 Run-Time Library environment; see for_rtl_finish_ in Table 12-3. | 
| for_get_fpe | Returns information on the floating-point exception handling established for the current program unit; see for_get_fpe in Table 12-3. To use for_get_fpe from a C program, you must first call for_rtl_init_ . | 
| for_set_fpe | Sets the floating-point exception handling established for the current program unit; see for_set_fpe in Table 12-3. To use for_set_fpe from a C program, you must first call for_rtl_init_ . | 
| getfd | Returns the file descriptor associated with a unit number, after the DIGITAL Fortran 90 Run-Time Library environment has opened the file; see getfd in Table 12-3. | 
| omp_* | Various OpenMP Fortran API run-time routines related to parallel processing; see omp_* in Table 12-3, also Section E.1. | 
| ots* | Various DIGITAL Fortran run-time routines related to parallel processing; see Section E.2. | 
| shcom_connect | Allows multiple processes to access common block data in a shared library (uses memory mapping); see shcom_connect(3f) . | 
For More Information:
Table 12-3 describes each DIGITAL Fortran 90 3f library routine and lists the appropriate reference page. For those 3f library routines that serve as interface routines to a system call or a different library routine, the required related routine is listed. Most routines are invoked as functions, with the exception of those listed as subroutines in Table 12-3.
| Name | Reference Page | Description | 
|---|---|---|
| abort | abort(3f) | Terminates the program abnormally and may cause a core dump. Use as a subroutine. | 
| access | access(3f) | Determines the accessibility of a file. | 
| alarm | alarm(3f) | Executes a subroutine after a specified time. | 
| and | bit(3f) | Returns the bitwise AND of two operands. Use as an intrinsic function. | 
| besj0 | bessel(3f) | Returns single-precision (REAL*4) bessel function value (first kind, zero order). | 
| besj1 | bessel(3f) | Returns single-precision (REAL*4) bessel function value (first kind, first order). | 
| besjn | bessel(3f) | Returns single-precision (REAL*4) bessel function value (first kind, nth order). | 
| besy0 | bessel(3f) | Returns single-precision (REAL*4) bessel function value (second kind, zero order). | 
| besy1 | bessel(3f) | Returns single-precision (REAL*4) bessel function value (second kind, first order). | 
| besyn | bessel(3f) | Returns single-precision (REAL*4) bessel function value (second kind, nth order). | 
| chdir | chdir(3f) | Changes the default directory. | 
| chmod | chmod(3f) | Changes the mode of a file. | 
| ctime | time(3f) | Returns the system time as a 24-character ASCII string. | 
| dbesj0 | bessel(3f) | Returns a double-precision (REAL*8) bessel function value (first kind, zero order). | 
| dbesj1 | bessel(3f) | Returns a double-precision (REAL*8) bessel function value (first kind, first order). | 
| dbesjn | bessel(3f) | Returns a double-precision (REAL*8) bessel function value (first kind, nth order). | 
| dbesy0 | bessel(3f) | Returns a double-precision (REAL*8) bessel function value (second kind, zero order). | 
| dbesy1 | bessel(3f) | Returns a double-precision (REAL*8) bessel function value (second kind, first order). | 
| dbesyn | bessel(3f) | Returns a double-precision (REAL*8) bessel function value (second kind, nth order). | 
| derf | erf(3f) | Returns a double-precision error function. | 
| derfc | erf(3f) | Returns a double-precision error function (complementary form). | 
| drand | rand(3f) | Generates a random number. Use drandm instead. | 
| drandm | random(3f) | Generates a double-precision (REAL*8) random number. | 
| dtime | etime(3f) | Returns the elapsed (delta) execution time. | 
| erf | erf(3f) | Returns a single-precision error function. | 
| erfc | erf(3f) | Returns a single-precision error function (complementary form). | 
| etime | etime(3f) | Returns the actual execution time of a process. | 
| falloc | malloc(3f) | Allocates space for an array in virtual memory. Use with malloc and free . Consider using the ALLOCATABLE attribute or the ALLOCATE and DEALLOCATE statements. | 
| fdate | fdate(3f) | Returns the date and time in ASCII string. Use as a subroutine. | 
| fgetc | fgetc(3f) | Returns a character from a specified logical unit. | 
| flush | flush(3f) | Writes (flushes) the output in a user buffer to system buffer. Discards read-ahead data in user buffer. | 
| for_get_fpe | for_set_fpe(3f) | Returns the status of the floating-point exception (fpe) handling currently set for the program. Usually used with for_set_fpe . To use for_set_fpe and for_get_fpe from a C program, see the for_rtl_init_ routine in this table. For more information, see Section 3.35. | 
| for_rtl_init_ | for_rtl_init_(3f) | Initializes the DIGITAL Fortran 90 run-time library (RTL)
 
 
 environment for a C program. Use this subroutine from a main program 
 written in C that calls DIGITAL Fortran 90 subprograms. Calling this subroutine from the main C program initializes DIGITAL Fortran 90 RTL data. It also establishes DIGITAL Fortran 90 RTL signal handlers and floating-point exception handling so that the DIGITAL Fortran 90 subprograms behave as if they were the main program. The trailing underscore (_) is required, and this routine must be called from a C program. For an example of for_rtl_init_, see Section 11.4. | 
| for_rtl_finish_ | for_rtl_init_(3f) | Cleans up the DIGITAL Fortran 90 run-time library (RTL) environment for a C main program that previously called for_rtl_init_ . A status value is returned by this function. The trailing underscore (_) is required, and this routine must be called from a C program. Also see for_rtl_init_ . | 
| for_set_fpe | for_set_fpe(3f) | Changes the floating-point exception (fpe) handling currently set for the program and also returns the status of the previous floating-point exception (fpe) handling setting. Can be used with for_get_fpe . For more information, see Section 3.35. | 
| fork | fork(3f) | Creates a copy of the calling process. | 
| fputc | putc(3f) | Writes a character to a specified logical unit. | 
| free | malloc(3f) | Frees the memory allocated by falloc or malloc . Consider using the ALLOCATABLE attribute or the ALLOCATE and DEALLOCATE statements. | 
| fseek | fseek(3f) | Repositions a file on a logical unit. | 
| fstat | stat(3f) | Returns information about file status. The file is specified as a Fortran 90 logical unit number. | 
| fsynch | fsynch(3f) | Writes the output in buffer to permanent storage. | 
| ftell | fseek(3f) | Repositions a file on a logical unit. | 
| gerror | perror(3f) | Writes system error messages. | 
| getarg | getarg(3f) | Returns the command line arguments. | 
| getc | getc(3f) | Returns a character from a logical unit. | 
| getcwd | getcwd(3f) | Returns the directory path of the current directory. | 
| getenv | getenv(3f) | Returns the value of environment variables. | 
| getfd | getfd(3f) | For a file already opened by the DIGITAL Fortran 90 Run-Time Library, returns the file descriptor associated with a particular unit number. | 
| getgid | getuid(3f) | Returns the group's id of the caller. | 
| getlog | getlog(3f) | Returns the user's login name. | 
| getpid | getuid(3f) | Returns the process id. | 
| getuid | getuid(3f) | Returns the user's or group's id of the caller. | 
| gmtime | time(3f) | Returns the system time in month, day, and so forth in G.M.T. | 
| iargc | getarg(3f) | Returns the command line arguments. | 
| idate | idate(3f) | Returns the date or time in numeric form. Also available as an intrinsic subroutine (DIGITAL extension) described in the DIGITAL Fortran Language Reference Manual. | 
| ierrno | perror(3f) | Returns a system error message number. | 
| index | index(3f) | Returns the index of a substring within the string. Consider using INDEX intrinsic function described in the DIGITAL Fortran Language Reference Manual. | 
| irand | rand(3f) | Generates random values. For an example program that uses irand , see Section 12.7. | 
| irandm | random(3f) | Generates a positive integer random number. | 
| isatty | ttynam(3f) | Returns whether the specified unit is a terminal port. Use as a subroutine. | 
| itime | idate(3f) | Returns the date or time in numeric form. | 
| kill | kill(3f) | Sends a signal to a process. | 
| len | index(3f) | Returns the length of a string. Use the LEN intrinsic function described in the DIGITAL Fortran Language Reference Manual. | 
| link | link(3f) | Makes a directory link to an existing file. | 
| lnblnk | index(3f) | Returns the index of the last nonblank character in a string. | 
| loc | loc(3f) | Returns the address of an object. Similar to the %LOC built-in function described in the DIGITAL Fortran Language Reference Manual. | 
| long | long(3f) | Converts INTEGER*2 to INTEGER*4. | 
| lshift | bit(3f) | Shifts a word left by n bits. Use as an intrinsic function. | 
| lstat | stat(3f) | Returns information about a file or a symbolic link. | 
| ltime | time(3f) | Returns the system time in month, day, hour, minute, and seconds for the time zone. | 
| malloc | malloc(3f) | Returns the address of a block of virtual memory. See also free . Consider using the ALLOCATABLE attribute or the ALLOCATE and DEALLOCATE statements. | 
| not | bit(3f) | Returns the bitwise NOT (complement) of the operand. Use as an intrinsic function. | 
| omp_set_num_threads | omp_set_num_threads(3f) | Sets the number of threads to use for the next parallel region. | 
| omp_get_num_threads | omp_get_num_threads(3f) | Gets the number of threads currently in the team executing the parallel region from which the routine is called. | 
| omp_get_max_threads | omp_get_max_threads(3f) | Gets the maximum value that can be returned by calls to the omp_get_num_threads() function. | 
| omp_get_thread_num | omp_get_thread_num(3f) | Gets the thread number, within the team, in the range from zero to omp_get_num_threads() minus one. | 
| omp_get_num_procs | omp_get_num_procs(3f) | Gets the number of processors that are available to the program. | 
| omp_in_parallel | omp_in_parallel(3f) | Informs whether or not a region is executing in parallel. | 
| omp_set_dynamic | omp_set_dynamic(3f) | Enables or disables dynamic adjustment of the number of threads available for execution of parallel regions. | 
| omp_get_dynamic | omp_get_dynamic(3f) | Informs if dynamic thread adjustment is enabled. | 
| omp_set_nested | omp_set_nested(3f) | Enables or disables nested parallelism. | 
| omp_get_nested | omp_get_nested(3f) | Informs if nested parallelism is enabled. | 
| omp_init_lock | omp_init_lock(3f) | Initializes a lock to be used in subsequent calls. | 
| omp_destroy_lock | omp_destroy_lock(3f) | Disassociates a lock variable from any locks. | 
| omp_set_lock | omp_destroy_lock(3f) | Makes the executing thread wait until the specified lock is available. | 
| omp_unset_lock | omp_set_lock(3f) | Releases the executing thread from ownership of the lock. | 
| omp_test_lock | omp_unset_lock(3f) | Try to set the lock associated with a lock variable. | 
| or | bit(3f) | Returns the bitwise OR of two operands. Use as an intrinsic function. | 
| perror | perror(3f) | Writes system error messages. | 
| putc | putc(3f) | Writes a character to a Fortran 90 logical unit. | 
| qsort | qsort(3f) | Performs a quick sort of array elements. For an example program that uses qsort , see Section 12.7. | 
| rand | rand(3f) | Generates random values. | 
| random | random(3f) | Generates a single-precision (REAL) random number. | 
| rename | rename(3f) | Renames a file. | 
| rindex | index(3f) | Returns index of a substring within the string. See also index and the INDEX intrinsic function described in the DIGITAL Fortran Language Reference Manual. | 
| rshift | bit(3f) | Shifts a word right by n bits. Use as an intrinsic function. | 
| short | long(3f) | Converts INTEGER*4 to INTEGER*2. | 
| shcom_connect | shcom_connect(3f) | Allows multiple processes to access common block data in a shared library (uses memory mapping). | 
| signal | signal(3f) | Changes the action of a signal. | 
| sleep | sleep(3f) | Suspends execution for an interval. | 
| srand | rand(3f) | Initializes the seed for subsequent use of rand and irand . | 
| stat | stat(3f) | Returns information about the status of specified file. | 
| symlnk | link(3f) | Makes a symbolic directory link to an existing file. | 
| system | system(3f) | Executes a shell command. | 
| tclose | topen(3f) | Disassociates (closes) a magnetic tape device name with a tape logical unit. | 
| time | time(3f) | Returns the system time in number of seconds from 00:00:00 G.M.T. January 1, 1970. Also available as an intrinsic subroutine (DIGITAL extension) described in the DIGITAL Fortran Language Reference Manual. | 
| topen | topen(3f) | Associates (opens) a magnetic tape device name with a tape logical unit. | 
| tread | topen(3f) | Reads the next physical record from tape to a buffer. | 
| trewin | topen(3f) | Rewinds the tape associated with the tape logical unit to the beginning of the first data file. | 
| tskipf | topen(3f) | Skips over files and/or records on magnetic tape devices. | 
| tstate | topen(3f) | Determines the logical state of the magnetic tape I/O channel (the tape drive control status register). | 
| ttynam | ttynam(3f) | Returns the name of a terminal port or returns blanks if specified unit is not a terminal port. | 
| twrite | topen(3f) | Writes the next physical record from the buffer to tape. | 
| umask | umask(3f) | Sets the file mode creation mask (protection). | 
| unlink | unlink(3f) | Removes a directory entry. See also link . | 
| wait | wait(3f) | Waits for the process to terminate. | 
| xor | bit(3f) | Returns the bitwise exclusive OR of two operands. Use as an intrinsic function. | 
| Previous | Next | Contents | Index |