/ / Друк результату після конкретних ітерацій у Fortran - fortran

Друк результатів після певних ітерацій у Фортрані - Фортран

Я використовую Fortran для ітеративного вирішення системирівнянь, але не хочуть знати результат після кожної ітерації. Моя фактична система набагато більша і вимагає приблизно 100 000 ітерацій для рішення, але, будь ласка, врахуйте цей простий приклад, який виконує 100 ітерацій.

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

Програма повідомляє про результат після кожної ітерації, але я хотів би, щоб значення X1, X2 і X3 були повідомлені після кожні 10 ітерацій.

Я спробував додати вкладений оператор IF уцикл DO, але я отримую помилку від компілятора. Мені цікаво, чи можна надрукувати значення X1, X2 і X3, коли K (крок ітерації) кратний 10. Тому можна розділити K на 10, а потім, коли результат є цілим числом, значення X1, X2 і X3 виходять?

Я сподіваюся, що це зрозуміло. Спасибі за вашу допомогу.

Відповіді:

4 для відповіді № 1
if (mod(k,10)==0) WRITE...

Просто скористайтеся мод функція(залишок або модуль) у if умова виконати запис лише тоді, коли k ділиться на 10.