求大神帮忙解读一下下面这一段fortran程序段的含义和执行过程!详细一点!谢谢!在线追加分!

DO 100 I=1,N
DO 100 J=1,N
YY(1)=X(J)-X(I)
YY(2)=Y(J)-Y(I)
R=DSQRT(YY(1)**2+YY(2)**2)
DO 50 L1=1,2
I1=2*(I-1)+L1
DO 50 L2=1,2
I2=2*(J-1)+L2
I3=NN*(I2-1)+I1
DELT=0.0
IF(L1==L2) DELT=1.0
XK(I3)=-RO*((C1*R-C2*CAPR)*DELT*R*R-C3*R*YY(L1)*YY(L2))/GE
50 CONTINUE
100 CONTINUE
RETURN
END

DO 100 I=1,N ! 开始第一个循环,其中变量i 从1增加到N,每次加1;循环的结束位置为前面标有100的语句。
DO 100 J=1,N ! 开始第二个循环,其中变量J 从1增加到N,每次加1;循环的结束位置为前面标有100的语句。

YY(1)=X(J)-X(I) ! 将表达式 X(J)-X(I) 的计算结果赋值给数组元素YY(1)
YY(2)=Y(J)-Y(I) ! 将表达式 Y(J)-Y(I) 的计算结果赋值给数组元素YY(2)

R=DSQRT(YY(1)**2+YY(2)**2) ! 将等号右边表达式的值赋给R,即YY(2)和YY(1)的平方和开方
DO 50 L1=1,2 ! 开始第三个循环,其中变量L1从1增加到2,每次加1;循环的结束位置为前面标有50的语句。

I1=2*(I-1)+L1 ! 将等号右边表达式的值赋给I1
DO 50 L2=1,2 ! 开始第四个循环,其中变量L2从1增加到2,每次加1;循环的结束位置为前面标有50的语句。

I2=2*(J-1)+L2 ! 将等号右边表达式的值赋给I2
I3=NN*(I2-1)+I1 ! 将等号右边表达式的值赋给I3
DELT=0.0 ! 令DELT等于0.0
IF(L1==L2) DELT=1.0 ! 若L1=L2,则有DELT等于1.0

XK(I3)=-RO*((C1*R-C2*CAPR)*DELT*R*R-C3*R*YY(L1)*YY(L2))/GE ! 将等号右边表达式的值赋给数组元素XK(I3)
50 CONTINUE ! 循环的结束位置
100 CONTINUE ! 循环的结束位置

RETURN
END
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-02
其实是四重循环最里面的, DO 50 L2=1,2开始到50 CONTINUE 循环 ,然后外层DO 50 L1=1,2也到50 CONTINUE 循环,再就是 DO 100 J=1,N到100 CONTINUE循环,最外层DO 100 I=1,N到100 CONTINUE循环结束。其中涉及到的计算表达式,有些参数你也没详细给出 ,所以我也说不出其中的意义,总之看起来类似矩阵赋值。
相似回答