約60年の歳月をワープして現代に出現したFORTRAN IV版素数計算プログラムです。 FORTRAN77すら知らない人が書くとこうなります(笑)。
C CALCULATES PRIME NUMBER
C 24.MAR.,2019
INCLUDE 'mpif.h'
INTEGER IERR,RANK,SIZE,LEN
INTEGER ISTATUS(MPI_STATUS_SIZE)
DOUBLE PRECISION DTIME
DIMENSION MAT(999999)
DIMENSION IMAT(999999)
CALL MPI_INIT(IERR)
CALL MPI_COMM_SIZE(MPI_COMM_WORLD,SIZE,IERR)
CALL MPI_COMM_RANK(MPI_COMM_WORLD,RANK,IERR)
DTIME=MPI_WTIME()
X=FLOAT(999999)
NMAX=IFIX(SQRT(X))
DO 10 I=1,999999
MAT(I)=2*I+1
10 CONTINUE
IF(RANK.NE.0) GOTO 15
WRITE(6,100) SIZE
100 FORMAT(1H ,13HPRIME NUMBERS/1H ,8HPROCS : ,I2)
15 CONTINUE
DO 20 N=RANK*2+3,NMAX*2+1,SIZE*2
I=(N-1)/2
IF(MAT(I).EQ.0) GO TO 20
DO 25 J=I+N,999999,N
MAT(J)=0
25 CONTINUE
20 CONTINUE
CALL MPI_REDUCE(MAT,IMAT,999999,MPI_INTEGER,MPI_BAND,0,
1MPI_COMM_WORLD,IERR)
IF(RANK.NE.0) GOTO 35
T=SNGL(MPI_WTIME()-DTIME)
WRITE(6,120) T
120 FORMAT(1H ,15HELAPSED TIME : ,F7.3,4H SEC)
DO 30 I=1,999999
IF(IMAT(I).EQ.0) GO TO 30
WRITE(6,110) IMAT(I)
110 FORMAT(1H ,I10)
30 CONTINUE
35 CALL MPI_FINALIZE(IERR)
STOP
END
使い方ヒント: 「これは臭う」という行を見付けたら、各行の
をクリックしてマーキングしておきましょう(要Twitter OAuth認証)
まだコメントがありません。最初にコメントを残しませんか?
コメント投稿には、twitter認証が必要です。
Twitter認証