|
RE: 如何用Fortran求解5对角矩阵?
[Fortran] 纯文本查看 复制代码 SUBROUTINE Axb_Tri_Scalar ( A , B , C , D , Ier ) |
REAL , DIMENSION ( : ) , INTENT ( IN ) :: A |
REAL , DIMENSION ( : ) , INTENT ( INOUT ) :: B , C , D |
INTEGER , INTENT ( OUT ) :: Ier |
IF ( ( N /= SIZE ( B ) ) .OR. & |
B ( I ) = B ( I ) - A ( I ) * C ( I -1 ) |
D ( I ) = ( D ( I ) - A ( I ) * D ( I -1 ) ) / B ( I ) |
D ( I ) = D ( I ) - C ( I ) * D ( I +1 ) |
END SUBROUTINE Axb_Tri_Scalar |
SUBROUTINE Axb_Penta_Scalar ( A , B , C , D , E , F , Ier ) |
REAL , DIMENSION ( : ) , INTENT ( IN ) :: A |
REAL , DIMENSION ( : ) , INTENT ( INOUT ) :: B , C , D , E , F |
INTEGER , INTENT ( OUT ) :: Ier |
INTEGER :: N , N 1 , N 2 , N 3 , I , I 1 , I 2 |
IF ( ( N /= SIZE ( B ) ) .OR. & |
D ( 2 ) = ( D ( 2 ) - B ( 2 ) * E ( 1 ) ) / C ( 2 ) |
F ( 2 ) = ( F ( 2 ) - B ( 2 ) * F ( 1 ) ) / C ( 2 ) |
C ( I ) = C ( I ) - B ( I ) * D ( I 1 ) - A ( I ) * E ( I 2 ) |
D ( I ) = ( D ( I ) - B ( I ) * E ( I 1 ) ) / C ( I ) |
F ( I ) = ( F ( I ) - B ( I ) * F ( I 1 ) - A ( I ) * F ( I 2 ) ) / C ( I ) |
B ( N 1 ) = B ( N 1 ) - A ( N 1 ) * D ( N 3 ) |
C ( N 1 ) = C ( N 1 ) - B ( N 1 ) * D ( N 2 ) - A ( N 1 ) * E ( N 3 ) |
D ( N 1 ) = ( D ( N 1 ) - B ( N 1 ) * E ( N 2 ) ) / C ( N 1 ) |
F ( N 1 ) = ( F ( N 1 ) - B ( N 1 ) * F ( N 2 ) - A ( N 1 ) * F ( N 3 ) ) / C ( N 1 ) |
C ( N ) = C ( N ) - B ( N ) * D ( N 1 ) - A ( N ) * E ( N 2 ) |
F ( N ) = ( F ( N ) - B ( N ) * F ( N 1 ) - A ( N ) * F ( N 2 ) ) / C ( N ) |
F ( I ) = F ( I ) - D ( I ) * F ( I +1 ) |
F ( I ) = F ( I ) - D ( I ) * F ( I +1 ) - E ( I ) * F ( I +2 ) |
END SUBROUTINE Axb_Penta_Scalar |
請參考:
|
|