HP Fortran Programmer Guide (766160-001, March 2014)

Strings
Programs written in C expect strings to be terminated with the null character ('\0'). But HP Fortran
programs pass a hidden length parameter to indicate the end of a string argument. Thus, if you
want to pass a string from HP Fortran to a C language function, you must explicitly append the
null to the string and suppress the hidden length parameter. The $HP$ ALIAS directive enables
you to pass the string from Fortran to C. For example, consider the following routine:
Example 31 Example 9-1 pr_str.c
void c_rout(char *s)
{
printf(%s\n, s);
}
The ALIAS directive in the following program enables the string to be passed to c_rout:
Example 32 Example 9-2 pass_str.f90
PROGRAM main
!$HP$ ALIAS c_rout(%REF)
CHARACTER(LEN=10) name
name = 'Charlie'
! Append a null to the string so that C can handle it properly
CALL c_rout(name//char(0))
END PROGRAM main
Here are the command lines to compile and link both files, and to execute the program, along
with the output from a sample run:
$ cc -Aa -c pr_str.c
$ f90 pass_str.f90 pr_str.o
$ a.out
Charlie
For more information
For detailed information about the %REF and %VAL built-in functions, see the HP Fortran
Programmer’s Reference.
$HP$ CHECK_OVERFLOW
The $HP$ CHECK_OVERFLOWdirective generates code to trap when an overflow occurs in integer
arithmetic. By default, integer overflow is ignored.
Syntax
!$HP$ CHECK_OVERFLOW INTEGER [ON | OFF]
causes the compiler to generate code to trap integer overflow exceptions.ON
causes the compiler not to generate code to trap integer overflow exceptions.OFF
Description and restrictions
If you use $HP$ CHECK_OVERFLOWwith the ONstatement, you can cause your program to ignore
the overflow, abort on the overflow, or branch to a trap subroutine. If this directive is not used, the
ONstatement has no effect on integer overflow errors.
This directive can appear anywhere in your program. It stays in effect until a subsequent $HP$
CHECK_OVERFLOWdirective changes the status.
126 Using Fortran directives