Tipos derivados de Fortran que contienen punteros para ser accesibles desde C

Tengo un código Fortran con muchos tipos derivados que contienen punteros. Estoy escribiendo un código C ++ que necesita acceder a estas variables. No puedo reescribir estos tipos derivados sin los punteros, ya que se usan en cientos de lugares diferentes en todo el código Fortran.

A continuación se muestra un código de muestra:

module simple
use  iso_c_binding

TYPE,bind(C) :: SIMPLEF
INTEGER :: A
INTEGER, POINTER :: B, C(:)
END TYPE SIMPLEF

end module simple

Necesito acceder al tipo derivado SIMPLEF desde C. Sé que no puedo usarlo tal como está, ya que los punteros Fortran no pueden estar en un tipo derivado si se supone que es accesible desde C. ¿Hay algún tipo de solución?

EXTENSIÓN: Como una extensión al problema anterior (resuelto gracias a IanH), tengo tipos derivados que tienen como miembros tipos derivados. Ejemplo a continuación:

TYPE COMPLEXF
  INTEGER :: X
  TYPE (SIMPLEF) :: Y
END TYPE COMPLEXF

¿Necesitaría crear para COMPLEXF, subrutinas para cada miembro de Y, es decir, SETY_A, QUERYY_A, SETY_B, QUERYY_BSIZE, QUERYY_B, etc.? ¿O hay una mejor manera de abordar esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta