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

📄 outfold.f90

📁 巨正则系综蒙特卡罗算法的源程序;可以用来进行吸附等分子模拟;最大的好处在于可以插入或删除原子
💻 F90
字号:

subroutine Outfold( Lengthlj, Lengthion, BoxSize,  &
					Xlj, Ylj, Zlj, Xion, Yion, Zion )

implicit none

! This subroutine reconstructs a molecule which might be divided into several
! parts because of the periodic boundary conditions.

! Lengthlj is the number of LJ beads in the chain being outfolded.
! Lengthion is the number of ionic beads in the chain being outfolded.

integer, intent(in)									:: Lengthlj
integer, intent(in)									:: Lengthion

! BoxSize is the length of the simulation box.

real, intent(in)									:: BoxSize

! Xlj, Ylj, and Zlj are the coordinates of the LJ beads.
! Xion, Yion, and Zion are the coordinates of the ionic beads.

real, dimension(Lengthlj)							:: Xlj, Ylj, Zlj
real, dimension(Lengthion)							:: Xion, Yion, Zion

! Local Variables

integer												:: i
real												:: xref, yref, zref
real												:: dx, dy, dz

xref = Xlj(1)
yref = Ylj(1)
zref = Zlj(1)

do i = 2, Lengthlj

	dx = Xlj(i) - xref
	dy = Ylj(i) - yref
	dz = Zlj(i) - zref
	
	Xlj(i) = Xlj(i) - nint(dx/BoxSize) * BoxSize
	Ylj(i) = Ylj(i) - nint(dy/BoxSize) * BoxSize
	Zlj(i) = Zlj(i) - nint(dz/BoxSize) * BoxSize
	
	xref = Xlj(i)
	yref = Ylj(i)
	zref = Zlj(i)

end do

xref = Xlj(1)
yref = Ylj(1)
zref = Zlj(1)

do i = 1, Lengthion

	dx = Xion(i) - xref
	dy = Yion(i) - yref
	dz = Zion(i) - zref
	
	Xion(i) = Xion(i) - nint(dx/BoxSize) * BoxSize
	Yion(i) = Yion(i) - nint(dy/BoxSize) * BoxSize
	Zion(i) = Zion(i) - nint(dz/BoxSize) * BoxSize

	xref = Xion(i)
	yref = Yion(i)
	zref = Zion(i)

end do

return

end subroutine Outfold




⌨️ 快捷键说明

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