Fortran - Significado sentencias

 
Vista:
sin imagen de perfil
Val: 1
Ha mantenido su posición en Fortran (en relación al último mes)
Gráfica de Fortran

Significado sentencias

Publicado por Milena (1 intervención) el 22/01/2020 21:38:25
Hola, no sé nada sobre Fortran, pero tengo el código de un algoritmo, y necesito entenderlo para programarlo en matlab, espero me pueda ayudar para saber que es lo que hacen en estas sentencias.

Primero declaran las variables así:

1
2
3
4
5
INTEGER, INTENT (IN) :: n
REAL, DIMENSION (1:n) :: deltta
REAL, DIMENSION (n:n) :: e
INTEGER :: i,j
REAL :: delt

lo que no entiendo es lo siguiente:

1
2
3
4
5
6
7
8
9
DO i=1 , n
deltta(i) = delt
END DO
DO i=1,n
DO j=1,n
e(i,j) =0.0
IF (i==j) e(i,j) = 1.0
END DO
END DO

no se que hace esa rutina, ni en que momento se especifican los valores de las variables: n, deltta,e,i,j,delt.
Agradezco si alguien me puede ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 9
Ha mantenido su posición en Fortran (en relación al último mes)
Gráfica de Fortran

Significado sentencias

Publicado por Javier (3 intervenciones) el 23/01/2020 11:41:39
En efecto, en las líneas que das no se especifican los valores de "n" ni "delt". Entiendo que el valor de n ha de ser definido al principio del código como PARAMETER para poder usarlo como dimensión de los arrays "deltta" y "e".


El código que compartes sirve para dar valores o "inicializar" los arrays. "deltta" es un array en el que sus n entradas son "delt", en notación vectorial: deltta=(delt,delt,...,delt,delt). De la misma forma, "e" es un array en el que todas sus entradas son cero menos los elementos de la diagonal (se puede representar por la matriz identidad nxn).

Los valores que toman "i" y "j" vienen definidos por las sentencias do (son como los bucles "for" en otros lenguages). "Do i=1,n" significa que en la primera iteración del bucle "i" vale 1, en cada iteración "i" se incrementa en 1 y que el bucle deja de iterarse cuando "i" vale n.

Nota que los bucles en "i" y en "j" que se usan para definir "e", líneas 4-9, están anidados. Esto es, en cada iteración del bucle sobre "i", "j" recorre todos sus valores: va desde 1 hasta n en n iteraciones,

Espero que te resulte útil, un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar