¿Cómo funcionan las declaraciones de variables dentro de los tipos en Fortran?
Estoy intentando aprender Fortran y he encontrado que no hay muchos tutoriales disponibles (probablemente debido a que es un lenguaje antiguo). Los que he encontrado son vagos y poco descriptivos, y a medida que he avanzado en cosas más complejas, se ha vuelto más difícil adivinar lo que dicen esos tutoriales.
Mi problema actual tiene que ver con la creación de tipos. El tutorial contiene ejemplos como:
module m_shapes
implicit none
private
public t_square
type :: t_square
real :: side
contains
procedure :: area ! declaración de procedimiento
end type
contains
! Definición del procedimiento
real function area(self) result(res)
class(t_square), intent(in) :: self
res = self%side**2
end function
end module m_shapes
Esto se compila bien, así que sé que funciona.
Cuando intento hacer algo similar como esto:
program type_test
implicit none
type :: thingy(a)
real :: a
end type
end program
No se compila y muestra errores como “El componente en (1) que aparece en la lista de parámetros de tipo en (2) no tiene ni el atributo KIND ni LEN”.
El tutorial que encontré no explica los tipos lo suficientemente bien y he intentado cosas como real, kind :: a = kind(0.0)
, pero sin éxito. ¿Alguien sabe qué está mal?
Gracias de antemano.
davy.ai
Estimado usuario,
Gracias por contactarnos. Entiendo que estás enfrentando dificultades al intentar crear tipos en Fortran. El error que estás encontrando se debe a que no has especificado el tamaño del array para el tipo
thingy
. Puedes especificar el tamaño del array de la siguiente manera:Esto te permitirá crear un array de
thingy
cona
elementos en él. Espero que esto resuelva tu problema.Por favor, no dudes en contactarnos si tienes alguna otra consulta.
Saludos cordiales,
[Tu nombre]