To: J3 11-254 Subject: Comment GB44 TS 29113 From: Bill Long Date: 2011 October 12 References: WG5/N1869, WG5/N1880 WG5/N1881 Discussion: The intent of example in A.1.3 in N1869 was to illustrate the use of TYPE(*) within a Fortran program. UK comment GB44 points out that the the text distracts from that goal and has potential technical problems as well. The recommendation is to delete the example. Since there is also a suggestion that more examples would be helpful, the proposal here is to delete the current example and replace it with a new one more specifically focused in TYPE(*) in Fortran. Edits to N1869: Replace A.1.3 with the following: " A.1.3 Using assumed-type variables in Fortran An assumed-type dummy argument in a Fortran procedure can be used as an actual argument corresponding to an assumed-type dummy in a call to another procedure. In the following example, the Fortran subroutine \cf{SIMPLE_Send} serves as a wrapper to hide complications associated with calls to a C function named \cf{ACTUAL_Send}. Module \cf{comm_info} contains node and address information for the current data transfer operations. subroutine SIMPLE_Send (buffer, nbytes) use comm_info, only: my_node, r_node, r_addr use,intrinsic :: iso_c_binding implicit none type(*),dimension(*),intent(in) :: buffer integer :: nbytes integer :: ierr interface subroutine ACTUAL_Send (buffer, nbytes, node, addr, ierr) & bind(C, name="ACTUAL_Send") import :: C_size_t, C_int, C_intptr_t type(*),dimension(*),intent(in) :: buffer integer(C_size_t),value :: nbytes integer(C_int),value :: node integer(C_intptr_t),value :: addr integer(C_int),intent(out) :: ierr end subroutine ACTUAL_Send end interface call ACTUAL_Send (buffer, int(nbytes, C_size_t), r_node, r_addr, ierr) if (ierr /= 0) then print *, "Error sending from node", my_node, "to node",r_node print *, "Program Aborting" ! Or call a recovery procedure error stop ! Omit in the recovery case end if end subroutine SIMPLE_Send "