毕业需求 跪求大师 给指点下程序,要不然不毕业我就自杀
元胞自动机模拟单晶长大USE MSFLIB
PARAMETER IR=400,JR=400
INTEGERIS(0:IR+1,0:JR+1),TMAX,ISN(1:8),NSTATE,T,NR,IX0,IY0,IX,JY
!! 根据过去状态IS,定义现在状态为IS1;为了突出边界,特别定义ISN1
INTEGER IS1(0:IR+1,0:JR+1),ISN1(1:8)
WRITE(*,*)"PLEASE INPUT THE TIMESTEP "
READ(*,*)TMAX
ISEED=RTC()
IRC=IR/2 !=IR*ran(iseed)+1
JRC=JR/2
! 定义基体体积能为10,晶粒体积能为1
IS=8
IS(IRC,JRC)=1
!! 在循环前定义现在状态数组IS1的初始值
IS1=IS
OPEN(1,FILE="E:\LUKE.DAT")
DO T=1,TMAX
!! 每次循环前重新定义过去状态数组IS
IS=IS1
! 边界条件
IS(0,0:JR+1)=IS(IR,0:JR+1)
IS(IR+1,0:JR+1)=IS(1,0:JR+1)
IS(0:IR+1,0)=IS(0:IR+1,JR)
IS(0:IR+1,JR+1)=IS(0:IR+1,1)
!! 整个基体上,各个点上的状态都要根据规则改变,而非随机取点改变
DO IX=1,IR
DO JY=1,JR
ISN=(/IS(IX-1,JY-1),IS(IX-1,JY),IS(IX-1,JY+1),IS(IX,JY-1)
& ,IS(IX,JY+1),IS(IX+1,JY-1),IS(IX+1,JY),IS(IX+1,JY+1)/)
E0=COUNT(ISN.NE.IS(IX,JY))
! 如果不是晶粒边界,则跳出,重新循环
IF(E0.EQ.0)CYCLE
! 随机寻找一个相邻点
NR=8*RAN(ISEED)+1
NSTATE=ISN(NR)
! 判断与相邻点的能量差,并决定是否改变状态
E=COUNT(ISN.NE.NSTATE)
RD=RAN(ISEED)
IG=NSTATE-IS(IX,JY)
DE=E-E0+IG+2.5*RD-1.25
!! 用现在状态数组IS1记录边界状态的改变
IF(DE.LT.0.0)IS1(IX,JY)=NSTATE
ENDDO
END DO
!! 每循环20次在显示屏幕上刷新状态(颜色)
DO IX=1,IR
DO JY=1,JR
! IF(MOD(T,20).EQ.0)THEN
ISN1=(/IS1(IX-1,JY-1),IS1(IX-1,JY),IS1(IX-1,JY+1),IS1(IX,JY-1)
& ,IS1(IX,JY+1),IS1(IX+1,JY-1),IS1(IX+1,JY),IS1(IX+1,JY+1)/)
ISRE=SETCOLOR(IS(IX,JY))
! 如果是边界,定义特别颜色15,加以区分
IF(COUNT(ISN1.NE.IS1(IX,JY)).GT.0) ISRE=SETCOLOR(15)
ISRE=SETPIXEL(IX,JY)
! END IF
ENDDO
ENDDO
!!
! 记录循环次数和对应的晶粒面积
WRITE(1,*)T, SQRT(1.0*COUNT(IS.EQ.1))
ENDDO
CLOSE(1)
END
楼主的代码有何问题呢?
在我这里可以运行,输入 TIMESTEP 为 300,得到一组变化的图形(我不知道是不是你希望的晶体)
我截了两个时间的图形如下:
另外得到 LUKE.dat 文件,部分如下:
1 1.000000
2 1.732051
3 2.449490
4 3.464102
5 4.472136
6 5.099020
7 5.744563
8 6.480741
9 6.855655
10 7.681146
11 8.366600
12 9.273619
13 10.53565
14 11.57584
15 12.40967
16 13.30413
17 13.92839
18 14.93318
19 15.81139
20 16.91154
21 18.05547
22 19.13113
23 20.04994
24 21.11871
25 22.00000
26 23.04344
27 23.93742
28 24.95997
29 26.13427
30 27.11088
31 28.12472
如果楼主对计算结果不满意,可以进行 Debug 调试,查看是哪里的问题。
如果楼主是希望在这里找到对应专业的人来修改计算结果不正确,那难度就很高了。真的。 你的问题具体是什么,这个程序貌似没什么问题,不要激动,先冷静一点 啥意思啊??? 不知道,楼主估计已经自杀了。此贴也有成了人类的未解之谜。 fcode 发表于 2014-4-1 16:11
不知道,楼主估计已经自杀了。此贴也有成了人类的未解之谜。
其实我可以帮他的,但是他一直没回复呢 有赖幽趣 发表于 2014-4-3 17:43
其实我可以帮他的,但是他一直没回复呢
那今晚你睡觉以后,他应该会托梦给你。 至今无解吗?托梦了吗?
页:
[1]