pxfestrget

Date:

10-20-2011

NAME

PXFESTRGET - Accesses a single string element of a structure component that is an array

SYNOPSIS

SUBROUTINE PXFESTRGET(jhandle, compnam, index, value, ilen, ierror)
INTEGER jhandle, index, ilen, ierror
CHARACTER*n compnam, value

IMPLEMENTATION

Cray Linux Environment (CLE)

STANDARDS

IEEE standard interface for FORTRAN 77

DESCRIPTION

The PXFESTRGET routine returns a string contained in a single element of a structure component that is an array.

When using the Cray Fortran compiler, all arguments must be of default kind unless documented otherwise. The default kind is KIND=4 for integer, real, complex, and logical arguments.

The following is a list of valid arguments for this subroutine:

jhandle

An input handle variable created with PXFSTRUCTCREATE().

compnam

An input character variable or array element containing the desired structure component name.

index

An input integer variable for the desired index in the array.

value

An output character variable or array element that will contain the string referenced by companm, index, and jhandle.

ilen

An output integer variable for the length of the returned character string.

ierror

An output integer variable that contains zero if PXFESTRGET was successful or nonzero if PXFESTRGET was not successful.

The PXFESTRGET subroutine may return any of the following error values:

ENONAME

If the component name is not defined for this structure.

ETRUNC

If the declared length of the character argument is insufficient to contain the string to be returned.

ENOMEM

If there is insufficent memory to create data structures needed by the routine.

EBADHANDLE

If jhandle is an invalid handle or has an incorrect handle type (UNICOS/mp only).

EXAMPLES

In this example, PXFGETGRGID and PXFGETGID are used to obtain the first user name in the current process’ group.

program pxftest
integer igid, ierror, jgroup, len, imax, i
character*30 loginname
CALL PXFSTRUCTCREATE('group',jgroup,ierror)
   if (ierror .ne. 0) then
      print *,'FAILED: PXFSTRUCTCREATE with error = ',ierror
   else
      CALL PXFGETGID(igid,ierror)
      CALL PXFGETGRGID(igid,jgroup,ierror)
      if (ierror .ne. 0) then
          print *,'FAILED: PXFGETGRGID with error = ',ierror
      else
          CALL PXFINTGET(jgroup,'gr_nmem',imax,ierror)
          if (ierror .ne. 0) then
             print *,'FAILED: PXFINTGET with error = ',ierror
          else
             if (imax .gt. 0) then
                do i = 1,imax
                   CALL PXFESTRGET(jgroup,'gr_mem',i,loginname,len,ierror)
                   print *,loginname
                end do
             else
                print *,'FAILED: Could not test PXFESTRGET'
             endif
          endif
      endif
   endif
end