Files
SAPFOR/Sapfor/projects/dvm/fdvm/trunk/examples/gaush.hpf
2025-03-12 14:22:11 +03:00

46 lines
1.1 KiB
Plaintext

PROGRAM GAUSH
PARAMETER ( N = 10 )
REAL A( N, N+1 ),X( N )
C section A(1:N,1:N) - matrix of coefficients "A"
C section A(1:N,N+1) - vector of free members "b"
CHPF$ DISTRIBUTE A ( BLOCK, *)
CHPF$ ALIGN X(I) WITH A(I,N+1)
PRINT *, '********** TEST_GAUSSHPF *********'
CHPF$ INDEPENDENT
DO 100 I=1,N
DO 100 J=1,N+1
IF (I .EQ. J) THEN
A(I,J)=2.0
ELSE
IF (J .EQ. N+1) THEN
A(I,J)=1.0
ELSE
A(I,J)=0.0
ENDIF
ENDIF
100 CONTINUE
C
C ELIMINATION
C
DO 1 I = 1, N-1
CHPF$ INDEPENDENT
DO 5 J = I+1, N
DO 5 K = I+1, N+1
A( J, K ) = A( J, K ) - A( J, I ) * A( I, K ) / A( I, I )
5 CONTINUE
1 CONTINUE
X( N ) = A( N, N+1 ) / A( N, N )
C BACK SUBSTITUTION
C
DO 6 J = N-1, 1, -1
CHPF$ INDEPENDENT
DO 7 I = 1, J
A( I, N+1 ) = A( I, N+1 ) - A( I,J+1)*X(J+1)
7 CONTINUE
X( J ) = A( J, N+1 ) / A( J, J)
6 CONTINUE
PRINT *, X
END