added project
This commit is contained in:
38
dvm/fdvm/trunk/examples/sor.fdv
Normal file
38
dvm/fdvm/trunk/examples/sor.fdv
Normal file
@@ -0,0 +1,38 @@
|
||||
PROGRAM SOR
|
||||
PARAMETER ( N = 10 )
|
||||
REAL A( N, N ), EPS, MAXEPS, W
|
||||
INTEGER ITMAX
|
||||
*DVM$ DISTRIBUTE A ( BLOCK, BLOCK )
|
||||
PRINT *, '********** TEST_SOR **********'
|
||||
ITMAX=20
|
||||
MAXEPS = 0.5E - 5
|
||||
W = 0.5
|
||||
*DVM$ PARALLEL ( J, I ) ON A( I, J )
|
||||
DO 1 J = 1, N
|
||||
DO 1 I = 1, N
|
||||
IF ( I .EQ.J) THEN
|
||||
A( I, J ) = N + 2
|
||||
ELSE
|
||||
A( I, J ) = -1.0
|
||||
ENDIF
|
||||
1 CONTINUE
|
||||
DO 2 IT = 1, ITMAX
|
||||
EPS = 0.
|
||||
*DVM$ PARALLEL ( J, I) ON A( I, J), NEW (S),
|
||||
*DVM$* REDUCTION ( MAX( EPS )), ACROSS (A(1:1,1:1))
|
||||
|
||||
DO 21 J = 2, N-1
|
||||
DO 21 I = 2, N-1
|
||||
S = A( I, J )
|
||||
A( I, J ) = (W / 4) * (A( I-1, J ) + A( I+1, J ) + A( I, J-1 ) +
|
||||
* A( I, J+1 )) + ( 1-W ) * A( I, J)
|
||||
EPS = MAX ( EPS, ABS( S - A( I, J )))
|
||||
21 CONTINUE
|
||||
PRINT 200, IT, EPS
|
||||
200 FORMAT(' IT = ',I4, ' EPS = ', E14.7)
|
||||
IF (EPS .LT. MAXEPS ) GO TO 4
|
||||
2 CONTINUE
|
||||
4 OPEN (3, FILE='SOR.DAT', FORM='FORMATTED',STATUS='UNKNOWN')
|
||||
WRITE (3,*) A
|
||||
CLOSE (3)
|
||||
END
|
||||
Reference in New Issue
Block a user