Módulos y use en Fortran
Un módulo y su programa en un archivo: constantes y funciones detrás de un nombre.
! A module is the unit of reuse: data and procedures behind a name.
module tide_tools
implicit none
real, parameter :: causeway_limit = 9.5
contains
pure logical function safe_to_cross(feet)
real, intent(in) :: feet
safe_to_cross = feet <= causeway_limit
end function safe_to_cross
end module tide_tools
! The program pulls the module in with use, then calls as if local.
program modules_use
use tide_tools, only: safe_to_cross, causeway_limit
implicit none
real :: today(3) = [8.2, 11.4, 9.1]
integer :: i
print *, "limit is ", causeway_limit, " ft"
do i = 1, size(today)
print *, today(i), " ft safe? ", safe_to_cross(today(i))
end do
end program modules_use
Cómo funciona
module tide_toolsguarda un parameter y, después decontains, una función pure.use tide_tools, only: ...importa exactamente los nombres que el programa quiere.- Después del
use,safe_to_crossse llama como local — el módulo es la unidad de reuso.
Palabras clave y builtins usados aquí
containsdoendfunctionimplicitintegerintentlogicalmodulenoneonlyparameterprintprogrampurerealuse
El intento, en números
- Líneas
- 25
- Caracteres a escribir
- 664
- Tokens
- 109
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 101 segundos.
Paso 3 de 3 en Kinds y módulos; paso 24 de 27 en Fundamentos del lenguaje.