Loops Fortran 95循环嵌套(初学者)
我是fortran 95新手,我正在努力掌握嵌套循环。下面是一个带有嵌套循环的小代码。内循环是割线法,它计算函数“Z+X1**2-612”的根,并通过迭代将其保存为X0。ISTEP是它所花费的迭代次数。这个循环本身是有效的。现在我想对各种“Z”重复这个循环。例如,从300到360,增量为10 如果我运行这段代码,Z将在300到360之间变化,但我会继续得到X0为300(即312的平方根) 有没有人有过嵌套循环的经验(不一定是割线方法,因为这个内部循环是有效的),可以告诉我为什么我打印出300到360,但是X0好像Z从不从300改变一样?我浏览了论坛,发现一些类似的问题,变量声明放错了位置,但在我的案例中,这似乎不是问题所在 下面是我的密码,希望有人能帮我。我开始学习编程有点老了,但我想永远不会太晚Loops Fortran 95循环嵌套(初学者),loops,fortran,nested-loops,fortran95,Loops,Fortran,Nested Loops,Fortran95,我是fortran 95新手,我正在努力掌握嵌套循环。下面是一个带有嵌套循环的小代码。内循环是割线法,它计算函数“Z+X1**2-612”的根,并通过迭代将其保存为X0。ISTEP是它所花费的迭代次数。这个循环本身是有效的。现在我想对各种“Z”重复这个循环。例如,从300到360,增量为10 如果我运行这段代码,Z将在300到360之间变化,但我会继续得到X0为300(即312的平方根) 有没有人有过嵌套循环的经验(不一定是割线方法,因为这个内部循环是有效的),可以告诉我为什么我打印出300到3
PROGRAM DOLOOP2
IMPLICIT NONE
INTEGER :: ISTEP,Z
REAL :: A,B,DL,DX,X0,X1,D,X2
DL = 1.0E-06
A = 10 !LOWER GUESS
B = 20 !UPPER GUESS
DX = (B-A)/10.0 !STEPSIZE
X0 = (A+B)/2.0
ISTEP = 0 !first iteration
X1 = X0+DX
do Z=300,360,10
DO WHILE (ABS(DX).GT.DL)
D = (Z+X1**2-612)-(Z+X0**2-612)
X2 = X1-(Z+X1**2-612)*(X1-X0)/D
X0 = X1
X1 = X2
DX = X1-X0
ISTEP = ISTEP+1
END DO
print *,'temperature=',Z,', Xzero= ',X0,'iterations=',ISTEP
END DO
END PROGRAM DOLOOP2
在重做循环之前,是否需要对内部循环重复一些初始化?i、 例如,重新定位到第一个环路内,在第二个环路之前。例如,第一次执行内部循环将更改
dx
的值,这将影响该循环的第二次执行。谢谢M.S.B。!它做了我现在想要它做的事!我得学着怎么玩它!