首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为fortran中的粒子指定名称

为fortran中的粒子指定名称
EN

Stack Overflow用户
提问于 2014-04-28 10:16:21
回答 1查看 167关注 0票数 0

我只想给配置中的粒子指定一个名字。例如,我有一个三维立方体结构的N=125粒子,还有AB两种粒子。我想使用一个随机生成器r=ran(0,1),如果r<0.5,那么粒子是A,否则粒子就是B。然后我想用AB来计算其他属性,比如能量等等。

我怎么能这么做?

这是我做混合配置的代码

代码语言:javascript
运行
复制
    subroutine init_order(rx,ry,rz,n)
use LJ_POT
    implicit none

!将初始位置分配给粒子双精度rx(num)、ry(num)、rz(num)整数i、j、k、n实*8u、ir1。

代码语言:javascript
运行
复制
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红

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-28 19:03:46

所描述的对派生类型的调用:

代码语言:javascript
运行
复制
 type particle
 real x(3)
 character*4 color
 end type

声明一个粒子类型数组:

代码语言:javascript
运行
复制
 type particle p(1000)

然后将坐标引用为

代码语言:javascript
运行
复制
 p(i)%x(j) = 0.

以及颜色/名称为:

代码语言:javascript
运行
复制
 p(i)%color = 'red'

当然,您可以使用一个单独的数组:

代码语言:javascript
运行
复制
 real p(3,1000)
 integer color(1000)

 p(j,i)=0
 color(i)='red'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23338406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档