約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認証