📄 ressetup.f90
字号:
subroutine ResSetup( reslen, Xb, Yb, Zb, &
Nresmol, MaxBeads, &
Nmoves, Nham, &
Xresmols, Yresmols, &
Zresmols, Uint_resm, &
Ulj_resm, Uion_resm, &
nresmv, maxresmv, maxresp, &
PROB_MV, RESMOVE, RESPARAM, &
nvib, nbend, ntor, &
maxvib, maxbend, maxtor, &
IVIB, IBEND, ITOR, &
RVIB, RBEND, RTOR, &
RES_ATT, RES_SUC, &
BEADTYPE, GROUPTYPE, &
BONDSAPART, Nljgrs, &
EPS, SIG, CP, ALP, RMAX, &
Niongrs, CHARGE, &
f14_lj, f14_ion, &
BETA, LNW, BoxSize, &
Uintra, Ulj, Uion, &
Seed, th_h, phi_h )
implicit none
integer, intent(in) :: reslen
real, dimension(reslen) :: Xb, Yb, Zb
integer, intent(in) :: Nresmol, Nmoves
integer, intent(in) :: MaxBeads, Nham
real, dimension(Nresmol,MaxBeads) :: Xresmols, Yresmols, Zresmols
real, dimension(Nresmol) :: Uint_resm
real, dimension(Nresmol,Nham) :: Ulj_resm, Uion_resm
integer, intent(in) :: nresmv, maxresmv, maxresp
real, dimension(maxresmv), intent(in) :: PROB_MV
character*10, dimension(maxresmv) :: RESMOVE
integer, dimension(maxresp, maxresmv) :: RESPARAM
integer, intent(in) :: nvib, nbend, ntor
integer, intent(in) :: maxvib, maxbend, maxtor
integer, dimension(2, maxvib) :: IVIB
integer, dimension(3, maxbend) :: IBEND
integer, dimension(4, maxtor) :: ITOR
real, dimension(2, maxvib) :: RVIB
real, dimension(2, maxbend) :: RBEND
real, dimension(4, maxtor) :: RTOR
integer, dimension(5) :: RES_ATT, RES_SUC
character*5, dimension(MaxBeads) :: BEADTYPE
integer, dimension(MaxBeads) :: GROUPTYPE
integer, dimension(MaxBeads,MaxBeads) :: BONDSAPART
integer, intent(in) :: Nljgrs
real, dimension(Nljgrs,Nljgrs,Nham) :: EPS
real, dimension(Nljgrs,Nljgrs,Nham) :: SIG
real, dimension(Nljgrs,Nljgrs,Nham) :: CP
real, dimension(Nljgrs,Nljgrs,Nham) :: ALP
real, dimension(Nljgrs,Nljgrs,Nham) :: RMAX
integer, intent(in) :: Niongrs
real, dimension(Niongrs,Nham) :: CHARGE
real, intent(in) :: f14_lj
real, intent(in) :: f14_ion
real, dimension(Nham) :: BETA
real, dimension(Nham) :: LNW
! BoxSize is the length of the simulation box.
real, intent(in) :: BoxSize
real :: Uintra
real, dimension(Nham) :: Ulj, Uion
integer :: Seed
integer, dimension(0:180) :: th_h
integer, dimension(-180:180) :: phi_h
real, external :: ran2
! Local stuff
integer :: i, j
do i = 1, Nresmol
do j = 1, 20 * Nmoves
call ResUpdate( reslen, Xb, Yb, Zb, &
nresmv, maxresmv, maxresp, &
PROB_MV, RESMOVE, RESPARAM, &
nvib, nbend, ntor, &
maxvib, maxbend, maxtor, &
IVIB, IBEND, ITOR, &
RVIB, RBEND, RTOR, &
RES_ATT, RES_SUC, &
MaxBeads, &
BEADTYPE, GROUPTYPE, &
BONDSAPART, Nham, Nljgrs, &
EPS, SIG, CP, ALP, RMAX, &
Niongrs, CHARGE, &
f14_lj, f14_ion, &
BETA, LNW, BoxSize, &
Uintra, Ulj, Uion, &
Seed, th_h, phi_h )
end do
Xresmols(i,1:reslen) = Xb(1:reslen)
Yresmols(i,1:reslen) = Yb(1:reslen)
Zresmols(i,1:reslen) = Zb(1:reslen)
Uint_resm(i) = Uintra
Ulj_resm(i,:) = Ulj(:)
Uion_resm(i,:) = Uion(:)
end do
return
end subroutine ResSetup
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -