📄 code126.f90
字号:
!!!!!!!!!!!!!!!!!!!!!!!!!!! Program 12.6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Please Note: !! !! (1) This computer program is written by Tao Pang in conjunction with !! his book, "An Introduction to Computational Physics," published !! by Cambridge University Press in 1997. !! !! (2) No warranties, express or implied, are made for this program. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!PROGRAM EULER_CONST INCLUDE 'mpif.h' INTEGER :: N,K,IERR,IRANK,IPROC,IFINISH REAL*8, PARAMETER :: SUM25=0.577215664901532860606512D0 REAL*8 :: SUMI,SUM! CALL MPI_INIT (IERR) CALL MPI_COMM_RANK (MPI_COMM_WORLD,IRANK,IERR) CALL MPI_COMM_SIZE (MPI_COMM_WORLD,IPROC,IERR)! IF (IRANK.EQ.0) THEN PRINT*, 'Enter total number of terms in the series: ' READ (5,*) N END IF!! Broadcast the total number of terms to every process! CALL MPI_BCAST (N,1,MPI_INTEGER,0,MPI_COMM_WORLD,IERR) K = (N/IPROC) SUMI = 0.D0! IF (IRANK.NE.(IPROC-1)) then DO I = IRANK*K+1, (IRANK+1)*K SUMI = SUMI+1.D0/DFLOAT(I) END DO ELSE DO I = IRANK*K+1, N SUMI = SUMI + 1.D0/DFLOAT(I) END DO END IF!! Collect the sums from every process! CALL MPI_REDUCE (SUMI,SUM,1,MPI_DOUBLE_PRECISION, & MPI_SUM,0,MPI_COMM_WORLD,IERR) IF (IRANK.EQ.0) THEN SUM = SUM-DLOG(DFLOAT(N)) PRINT*, 'The evaluated Euler constant is ', SUM, & 'with the estimated error of ', DABS(SUM-SUM25) END IF! CALL MPI_FINALIZE (IFINISH)END PROGRAM EULER_CONST
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -