¿Qué hace la etiqueta [REFERENCE] en una declaración de argumento?
Estoy escribiendo una función de devolución de llamada personalizada en Fortran para una pieza de software (ejemploaqu) que incluye la siguiente declaración de argumento
SUBROUTINE CONTACT_FORCE(TIME,UPAR,NPAR,PEN,RVEL,JFLAG,IFLAG,RESULT)
!DEC$ ATTRIBUTES DLLEXPORT,C::CONTACT_FORCE
...
DOUBLE PRECISION RESULT[REFERENCE](6) !Compiles ok
Que se compila bien con Compaq Visual Fortran 6. Entonces mi pregunta es qué hace el[REFERENCE]
etiqueta hacer? Pensé que Fortranpasa todo por referencia (y no por valor). Por supuesto, no hay nada en el compilador que lo ayude, y buscar en línea es difícil porque la palabra de referencia se usa tanto con respecto a Fortran que no sé cómo limitarla.
Edita lo anterior debe ser idéntico a
SUBROUTINE CONTACT_FORCE(TIME,UPAR,NPAR,PEN,RVEL,JFLAG,IFLAG,RESULT)
!DEC$ ATTRIBUTES DLLEXPORT,C::CONTACT_FORCE
!DEC$ ATTRIBUTES REFERENCE::RESULT
...
DOUBLE PRECISION RESULT(6) !Compiles ok