descargar - fortran pdf
FunciĆ³n privada en Fortran (4)
Esto solo funcionará con un módulo 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 usar 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 el exterior 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
¿Cómo declaro una función privada en Fortran?
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 usa módulos, aquí está la sintaxis:
PUBLIC :: subname-1, funname-2, ...
PRIVATE :: subname-1, funname-2, ...
No se podrá acceder a todas las entidades enumeradas en PRIVADO desde fuera del módulo y se podrá acceder a todas las entidades enumeradas en PUBLIC desde fuera del 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
Nunca he escrito una línea de FORTRAN, pero este hilo sobre "Procedimientos de módulos privados" parece ser tópico, al menos eso espero. Parece contener respuestas, al menos.
resumen de jaredor :
El atributo público / privado existe dentro de los módulos en Fortran 90 y posteriores. Fortran 77 y anteriores: no tienes suerte.