IARGPTR () Class: Inquiry function - Specific Returns a pointer to the actual argument list for the current routine. IARGPTR takes no arguments and returns an INTEGER*8 address of the calling-standard defined "argument block". The first element in the array contains the argument count; subsequent elements contain the INTEGER(KIND=8) address of the actual arguments. Formal (dummy) arguments which can be omitted must be declared VOLATILE. The following example shows the IARGPTR intrinsic: C Test IARGPTR intrinsic function. EXTERNAL TEST_ARGPTR INTEGER*4 X,Y,Z,FOO X = 10 Y = 20 Z = 100 FOO = 4 PRINT 80, %LOC(X), %LOC(Y), %LOC(Z), %LOC(FOO) 80 FORMAT (' Argument addresses: ',4(1X, Z16)) CALL TEST_ARGPTR (4, X, Y, Z, FOO) END OPTIONS /EXTEND_SOURCE SUBROUTINE TEST_ARGPTR (N_ARGS) POINTER (II, I_ARGN) INTEGER*8 I_ARGN POINTER (I_PTR, I_VAL) INTEGER I_VAL II = IARGPTR() ! Get address of arg block II = II + SIZEOF (II) ! Get address of address of first arg DO I = 1, N_ARGS+1 I_PTR = I_ARGN ! Get address of actual from homed ! arg list print 90, I, I_PTR, I_VAL 90 format ( ' Argument ',I2, ' address = ',Z16, ', contents = ',Z16) II = II + SIZEOF (II) ! Get address of address of next arg END DO RETURN END