tutorial resueltos programas programación problemas funciones ejemplos ciclos fortran fortran90

fortran - resueltos - Error de función de lectura simple



problemas resueltos de programación en fortran 95 pdf (3)

¡Estás tratando de leer en números complejos ( A es complejo)! Como tal, debe especificar números complejos para el código ... Dado que proporciona solo un número entero, el programa no sabe qué hacer.

Proporcionar (1,0) y (2,0) lugar de 1 y 2 hará el truco.

Me imagino que esto es algo tonto que me he perdido, pero le pregunté a toda la clase y nadie parece resolverlo. Hacer un programa simple llamando a una subrutina y estoy teniendo problemas con la lectura del ciclo do en las entradas de la matriz.

program Householder_Program use QR_Factorisation use numeric_kinds complex(dp), dimension(:,:), allocatable :: A, Q, R, V integer :: i, j, n, m print *, ''Enter how many rows in the matrix A'' read *, m print *, ''Enter how many columns in the matrix A'' read *, n allocate(A(m,n), Q(m,n), R(n,n), V(n,n)) do i = 1,m do j = 1,n Print *, ''Enter row'', i, ''and column'', j, ''of matrix A'' read *, A(i,j) end do end do call Householder_Triangularization(A,V,R,n,m) print *, R end program

Me pedirá A (1,1) pero cuando escriba un número no me pedirá A (1,2), dejará una línea en blanco. Cuando intento poner un 2do número, error y digo:

Enter row 1 and column 1 of matrix A 1 2 At line 22 of file HouseholderProgram.f90 (unit = 5, file = ''stdin'') Fortran runtime error: Bad repeat count in item 1 of list input


En caso de que la entrada del usuario sea siempre real, y quiera leerla en una matriz tipo compleja, puede hacer algo como esto:

Print *, ''Enter row'', i, ''and column'', j, ''of matrix A'' read *, dummy A(i,j)=dummy

donde el dummy se declara real . Esto salvará al usuario de la necesidad de ingresar el paréntesis requerido para números complejos. (La conversión a complejo es automática)


Su variable A es (una matriz) de tipo complejo. Esto significa que cuando intenta hacer la entrada dirigida por la lista de los valores del elemento, no puede simplemente especificar un solo número. Entonces, en su caso, el problema no está en el programa sino en la entrada.

De la norma Fortran 2008, 10.10.3

Cuando el siguiente elemento efectivo es de tipo complejo, el formulario de entrada consiste en un paréntesis izquierdo seguido de un par ordenado de campos de entrada numéricos separados por una coma (si el modo de edición decimal es POINT) o punto y coma (si el modo de edición decimal es COMMA ), y seguido por un paréntesis derecho.

La entrada, entonces, debe ser algo así como (1., 12.) .