¿Cómo declaro una función privada en Fortran?Función privada en Fortran
Respuesta
Esto sólo funcionará con un módulo de Fortran 90. En su declaración de módulo, puede especificar los límites de acceso para una lista de variables y rutinas usando las palabras clave "pública" y "privada". Por lo general, me resulta útil utilizar la palabra clave privada por sí sola inicialmente, que especifica que todo dentro del módulo es privado a menos que se indique explícitamente como público.
En el siguiente ejemplo de código, se puede acceder a subrutina_1() y a la función_1() desde fuera del módulo a través de la declaración de "uso" requerida, pero cualquier otra variable/subrutina/función será privada.
module so_example
implicit none
private
public :: subroutine_1
public :: function_1
contains
! Implementation of subroutines and functions goes here
end module so_example
Nunca he escrito una línea de FORTRAN, pero this thread about "Private module procedures" parece ser de actualidad, al menos eso espero. Parece contener respuestas, al menos.
jaredor resumen: existe
El atributo pública/privada dentro de los módulos en Fortran 90 y posteriores. Fortran 77 y anteriores: no tienes suerte.
Private xxx, yyy, zzz
real function xxx (v)
...
end function xxx
integer function yyy()
...
end function yyy
subroutine zzz (a,b,c)
...
end subroutine zzz
...
other stuff that calls them
...
Si utiliza módulos, aquí se muestra la sintaxis:
PUBLIC :: subname-1, funname-2, ...
PRIVATE :: subname-1, funname-2, ...
Todas las entidades que figuran en privado no serán accesibles desde el exterior del módulo y todas las entidades que figuran en público se puede acceder desde fuera de el módulo. Todas las demás entidades, de forma predeterminada, se puede acceder desde fuera del módulo.
MODULE Field
IMPLICIT NONE
Integer :: Dimen
PUBLIC :: Gravity
PRIVATE :: Electric, Magnetic
CONTAINS
INTEGER FUNCTION Gravity()
..........
END FUNCTION Gravity
REAL FUNCTION Electric()
..........
END FUNCTION
REAL FUNCTION Magnetic()
..........
END FUNCTION
..........
END MODULE Field
- 1. Función Devolver una matriz en Fortran
- 2. Función privada Doxygen
- 3. función virtual en herencia privada o protegida
- 4. Cómo alias un nombre de función en Fortran
- 5. Javascript acceso función privada variable pública
- 6. Dormir en Fortran
- 7. ¿Qué significa "%" en Fortran?
- 8. PHP | ¿Por qué debería usar la función estática pública/privada estática en lugar de la función pública/privada?
- 9. ¿Cómo implementar una función "privada/restringida" en C?
- 10. Cómo agregar una función privada en un modelo backbone.js?
- 11. Acceso variable privada de la función estática en php
- 12. ¿Puede Response.Redirect funcionar en una función MVC 2 void privada?
- 13. Definir la función privada en un paquete matemático
- 14. función de amigo en clase derivada con herencia privada
- 15. Variables no inicializadas en Fortran 2003
- 16. software de conversión para fortran 77 a fortran 90
- 17. Array of Strings en Fortran 77
- 18. fortran GUARDAR declaración
- 19. Fortran asignar/desasignar
- 20. Fortran forall restrictions
- 21. Best Fortran IDE
- 22. convirtiendo el código de MATLAB en Fortran
- 23. Fortran 90 parámetro tipo
- 24. Fortran 90 Recursos?
- 25. ¿Dónde puedo definir el cuerpo para una función privada?
- 26. ¿Cuál es el sentido de una función virtual pura privada?
- 27. Cómo tener la función recuperar variable privada entre invocaciones
- 28. ¿Es posible imprimir en Fortran en python?
- 29. Mensajería privada en Django
- 30. ¿Herencia privada en C#?
Su modestia comprensible le da crédito, pero puede ser más definitivo: la respuesta está en ese hilo. El atributo público/privado existe dentro de los módulos en Fortran 90 y posteriores. Fortran 77 y anteriores: no tienes suerte. – jaredor