我只想给配置中的粒子指定一个名字。例如,我有一个三维立方体结构的N=125粒子,还有A和B两种粒子。我想使用一个随机生成器r=ran(0,1),如果r<0.5,那么粒子是A,否则粒子就是B。然后我想用A,B来计算其他属性,比如能量等等。
我怎么能这么做?
这是我做混合配置的代码
subroutine init_order(rx,ry,rz,n)
use LJ_POT
implicit none!将初始位置分配给粒子双精度rx(num)、ry(num)、rz(num)整数i、j、k、n实*8u、ir1。
open(10,file='conf.in',status='unknown')
ir1=19375.d0
n=0
do i=1,nx
do j=1,ny
do k=1,nz
n=n+1
rx(n)=(dble(i)-0.5d0)*gsize
ry(n)=(dble(j)-0.5d0)*gsize
rz(n)=(dble(k)-0.5d0)*gsize
call usran(ir1,u)
if (u.le.0.5d0) then
write(10,*) rx(n),ry(n),rz(n),'red'
else if (u.gt.0.5d0) then
write(10,*) rx(n),ry(n),rz(n),'blue'
end if
end do
end do
end do
close(10)175格式(4(f12.5))返回结束子例程
为N=8进行此配置的
0.75000000000000000 0.75000000000000000 0.75000000000000000红
0.75000000000000000 0.75000000000000000 2.2500000000000000蓝色
0.75000000000000000 2.2500000000000000 0.75000000000000000蓝色
0.75000000000000000 2.2500000000000000 2.2500000000000000蓝色
2.2500000000000000 0.75000000000000000 0.75000000000000000蓝色
2.2500000000000000 0.75000000000000000 2.2500000000000000红
2.2500000000000000 2.2500000000000000 0.75000000000000000红
2.2500000000000000 2.2500000000000000 2.2500000000000000红
发布于 2014-04-28 19:03:46
所描述的对派生类型的调用:
type particle
real x(3)
character*4 color
end type声明一个粒子类型数组:
type particle p(1000)然后将坐标引用为
p(i)%x(j) = 0.以及颜色/名称为:
p(i)%color = 'red'当然,您可以使用一个单独的数组:
real p(3,1000)
integer color(1000)
p(j,i)=0
color(i)='red'https://stackoverflow.com/questions/23338406
复制相似问题