⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sphere.f90

📁 蒙特卡罗的一个程序分析 与大家分享 共同研究
💻 F90
字号:

subroutine Sphere( xc, yc, zc, bondlength, xn, yn, zn, Seed )

implicit none

! This subroutine randomly places a bead on the surface of a sphere
! with a radius of bondlength and center xc, yc, zc.  The coordinates
! of the new bead are xn, yn, zn.

real, intent(in)								:: xc, yc, zc
real, intent(in)								:: bondlength
real, intent(out)								:: xn, yn, zn
integer, intent(inout)							:: Seed
real, external									:: ran2

! Local Variables

real											:: a
real, dimension(3)								:: V

V(1) = 2.0 * ran2(Seed)	- 1.0
V(2) = 2.0 * ran2(Seed)	- 1.0

a = V(1) * V(1) + V(2) * V(2)

do while ( a > 1.0 )
	V(1) = 2.0 * ran2(Seed)	- 1.0
	V(2) = 2.0 * ran2(Seed)	- 1.0
	a = V(1) * V(1) + V(2) * V(2)
end do

V(3) = 1 - 2.0 * a

a = sqrt( 1 - a )

V(1) = 2.0 * a * V(1)
V(2) = 2.0 * a * V(2)

xn = xc + bondlength * V(1)
yn = yc + bondlength * V(2)
zn = zc + bondlength * V(3)

return 

end	subroutine Sphere





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -