Fortran Coder

查看: 20866|回复: 7
打印 上一主题 下一主题

[求助] 毕业需求 跪求大师 给指点下程序,要不然不毕业我就自杀

[复制链接]

1

帖子

1

主题

0

精华

新人

F 币
5 元
贡献
4 点
跳转到指定楼层
楼主
发表于 2014-3-31 05:41:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
4F 币
元胞自动机模拟单晶长大

[Fortran] 纯文本查看 复制代码
 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 文件,部分如下: 如果楼主对计算结果不满意,可以进行 Debug 调试,查看是哪里的问题。 如果楼主是希望在这里找到对应专业的人来修改计算结果不正确,那难度就很高了。真的。 ...
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

沙发
发表于 2014-3-31 05:41:46 | 只看该作者
楼主的代码有何问题呢?

在我这里可以运行,输入 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 调试,查看是哪里的问题。

如果楼主是希望在这里找到对应专业的人来修改计算结果不正确,那难度就很高了。真的。
回复

使用道具 举报

135

帖子

15

主题

0

精华

版主

F 币
1159 元
贡献
637 点

爱心勋章管理勋章

板凳
发表于 2014-3-31 14:11:23 | 只看该作者
你的问题具体是什么,这个程序貌似没什么问题,不要激动,先冷静一点
回复

使用道具 举报

8

帖子

2

主题

0

精华

入门

F 币
72 元
贡献
36 点
地板
发表于 2014-4-1 15:56:07 | 只看该作者
啥意思啊???
回复

使用道具 举报

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

5#
发表于 2014-4-1 16:11:35 | 只看该作者
不知道,楼主估计已经自杀了。此贴也有成了人类的未解之谜。
回复

使用道具 举报

8

帖子

2

主题

0

精华

入门

F 币
72 元
贡献
36 点
6#
发表于 2014-4-3 17:43:42 | 只看该作者
fcode 发表于 2014-4-1 16:11
不知道,楼主估计已经自杀了。此贴也有成了人类的未解之谜。

其实我可以帮他的,但是他一直没回复呢
回复

使用道具 举报

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

7#
发表于 2014-4-3 18:07:52 | 只看该作者
有赖幽趣 发表于 2014-4-3 17:43
其实我可以帮他的,但是他一直没回复呢

那今晚你睡觉以后,他应该会托梦给你。
回复

使用道具 举报

66

帖子

5

主题

2

精华

版主

院士级水师

F 币
481 元
贡献
273 点

管理勋章帅哥勋章爱心勋章规矩勋章

QQ
8#
发表于 2014-4-11 21:57:31 | 只看该作者
至今无解吗?托梦了吗?
科研穷三代,读博毁一生
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-24 07:26

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表