Assumed-shape and allocatable arrays are passed using an array descriptor (dope vector). The internal structure of the array descriptor used by GNU Fortran is not yet documented and will change. There will also be a Technical Report (TR 29113) which standardizes an interoperable array descriptor. Until then, you can use the Chasm Language Interoperability Tools, http://chasm-interop.sourceforge.net/, which provide an interface to GNU Fortran's array descriptor.
The technical report 29113 will presumably also include support for
C-interoperable OPTIONAL
and for assumed-rank and assumed-type
dummy arguments. However, the TR has neither been approved nor implemented
in GNU Fortran; therefore, these features are not yet available.