主题:求助 哪位高人来帮我看看这个子程序是干什么的吧
子程序如下
不懂写的是什么::
SUBROUTINE DINV_MATRIX(A,B,C,ME,MF,N,EP)
COMPLEX*16 Y,W
DIMENSION ME(800),MF(800)
COMPLEX*16 A(800,800),B(800),C(800)
DO K=1,N
Y=(0.0,0.0)
DO I=K,N
DO J=K,N
IF (ABS(A(I,J)).GT.ABS(Y)) THEN
Y=A(I,J)
I2=I
J2=J
END IF
END DO
END DO
EEE=ABS(Y)
C WRITE(*,*) "EE=",EEE,"EP=",EP
IF (EEE.LT.EP) GOTO 32
IF (I2.EQ.K) GOTO 33
DO J=1,N
W=A(I2,J)
A(I2,J)=A(K,J)
A(K,J)=W
END DO
33 IF (J2.EQ.K) GOTO 44
DO I=1,N
W=A(I,J2)
A(I,J2)=A(I,K)
A(I,K)=W
END DO
44 ME(K)=I2
MF(K)=J2
DO J=1,N
IF (J-K) 2,3,2
3 B(J)=(1.0,0.0)/Y
C(J)=(1.0,0.0)
GOTO 4
2 B(J)=-A(K,J)/Y
C(J)=A(J,K)
4 A(K,J)=(0.0,0.0)
A(J,K)=(0.0,0.0)
END DO
DO I=1,N
DO J=1,N
A(I,J)=A(I,J)+C(I)*B(J)
END DO
END DO
END DO
DO L=1,N
K=N-L+1
K1=ME(K)
K2=MF(K)
IF (K1.EQ.K) GOTO 70
DO I=1,N
W=A(I,K1)
A(I,K1)=A(I,K)
A(I,K)=W
END DO
70 IF(K2.NE.K) THEN
DO J=1,N
W=A(K2,J)
A(K2,J)=A(K,J)
A(K,J)=W
END DO
END IF
END DO
32 EP=-EP
RETURN
END
不懂写的是什么::
SUBROUTINE DINV_MATRIX(A,B,C,ME,MF,N,EP)
COMPLEX*16 Y,W
DIMENSION ME(800),MF(800)
COMPLEX*16 A(800,800),B(800),C(800)
DO K=1,N
Y=(0.0,0.0)
DO I=K,N
DO J=K,N
IF (ABS(A(I,J)).GT.ABS(Y)) THEN
Y=A(I,J)
I2=I
J2=J
END IF
END DO
END DO
EEE=ABS(Y)
C WRITE(*,*) "EE=",EEE,"EP=",EP
IF (EEE.LT.EP) GOTO 32
IF (I2.EQ.K) GOTO 33
DO J=1,N
W=A(I2,J)
A(I2,J)=A(K,J)
A(K,J)=W
END DO
33 IF (J2.EQ.K) GOTO 44
DO I=1,N
W=A(I,J2)
A(I,J2)=A(I,K)
A(I,K)=W
END DO
44 ME(K)=I2
MF(K)=J2
DO J=1,N
IF (J-K) 2,3,2
3 B(J)=(1.0,0.0)/Y
C(J)=(1.0,0.0)
GOTO 4
2 B(J)=-A(K,J)/Y
C(J)=A(J,K)
4 A(K,J)=(0.0,0.0)
A(J,K)=(0.0,0.0)
END DO
DO I=1,N
DO J=1,N
A(I,J)=A(I,J)+C(I)*B(J)
END DO
END DO
END DO
DO L=1,N
K=N-L+1
K1=ME(K)
K2=MF(K)
IF (K1.EQ.K) GOTO 70
DO I=1,N
W=A(I,K1)
A(I,K1)=A(I,K)
A(I,K)=W
END DO
70 IF(K2.NE.K) THEN
DO J=1,N
W=A(K2,J)
A(K2,J)=A(K,J)
A(K,J)=W
END DO
END IF
END DO
32 EP=-EP
RETURN
END