/ / Impresión del resultado después de una iteración específica en Fortran - fortran

Impresión del resultado después de una iteración específica en Fortran - fortran

Estoy usando Fortran para resolver iterativamente un sistemade ecuaciones pero no queremos saber el resultado después de cada iteración. Mi sistema real es mucho más grande y requiere alrededor de 100.000 iteraciones para la solución, pero tenga en cuenta este sencillo ejemplo que lleva a cabo 100 iteraciones.

PROGRAM ITER

DATA X1,X2,X3/.0,.0,.0/



DO 20 K = 1,100

X1 = 10+3*X2 - X3
X2 = (4 - 2*X1 - X3)/5.
X3 = (-13 + X1 - X2)/(-2.)


WRITE (*,10)K,X1,X2,X3


10 FORMAT (" ",I3,3(F8.1))
20 CONTINUE
END PROGRAM ITER

A medida que lo hace, el programa informa el resultado después de cada iteración, pero me gustaría que los valores de X1, X2 y X3 se informen cada 10 iteraciones.

He intentado agregar una declaración IF anidada enel bucle DO pero me sale un error del compilador. Me pregunto si es posible imprimir los valores de X1, X2 y X3 cuando K (el paso de iteración) es un múltiplo de 10. Por lo tanto, es posible dividir K por 10 y luego, cuando el resultado es un número entero, los valores de X1, X2 y X3 salen?

Espero que eso quede claro. Gracias por tu ayuda.

Respuestas

4 para la respuesta № 1
if (mod(k,10)==0) WRITE...

Solo usa el función mod(el resto o modulo) en el if condición para ejecutar la escritura sólo cuando k es divisible por 10.