24小时热门版块排行榜    

查看: 157  |  回复: 0
当前主题已经存档。

benbei626825

金虫 (小有名气)

[交流] 【讨论】新手上路,这是编写的fcc晶体结构,看看对不对

因为刚开始学习编写程序,所以想让大家帮忙看看,写对了没有?自己觉得编的有些繁琐,看能不能编写简单点?谢谢了啊
  CUA表示的是晶格常数,R1数组就表示坐标
这是100 方向的
DO 10 K=-8,10,1
        DO 20 J=-10,10,1
        DO 30 I=-10,10,1
         N(1)=N(1)+1
          IF (MOD(K,2)==1) THEN
            R1(1,N(1),1)=(I-1)*CUA
            IF (MOD(J,2)==0) THEN
              R1(1,N(1),1)=(I-0.5)*CUA
            END IF
        ELSE
             R1(1,N(1),1)=(I-0.5)*CUA
            IF (MOD(J,2)==0) THEN
             R1(1,N(1),1)=(I-1)*CUA
                END IF
          END IF
                R1(1,N(1),2)=(J-1)*CUA/2.0
            R1(1,N(1),3)=(K-1)*CUA/2.0



30    CONTINUE
20    CONTINUE
10    CONTINUE

110方向的
DO 80 K=-10,10,1
        DO 90 J=-10,10,1
        DO 100 I=-10,10,1
        N(2)=N(2)+1
          IF (MOD(K,2)==1) THEN
            R1(2,N(2),1)=(I-1)*CUA/SQRT(2)
            ELSE
             R1(2,N(2),1)=I*CUA/SQRT(2.)
           END IF

                R1(2,N(2),2)=(J-1)*CUA
            R1(2,N(2),3)=(K-1)*CUA/SQRT(2.)

100         CONTINUE
90         CONTINUE
80         CONTINUE


111方向的
DO 150 K=-10,10,1
        DO 160 J=-10,10,1
        DO 170 I=-10,10,1
        N(3)=N(3)+1
          IF (MOD(K,3)==1) THEN
            IF (MOD(J,2)==1) THEN
            R1(3,N(3),1)=(I-1)*CUA/SQRT(2.0)
            R1(3,N(3),2)=(J-1)*SQRT(6.0)*CUA/4.0
            ELSE
             R1(3,N(3),1)=(2*I-1)*CUA*SQRT(2.0)/4.0
             R1(3,N(3),2)=(J-1)*CUA*SQRT(6.0)/4.0
            END IF

         ELSEIF (MOD(K,3)==2) THEN
           IF (MOD(J,2)==1) THEN
             R1(3,N(3),1)=(2*I-1)*CUA*SQRT(2.0)/4.0
            R1(3,N(3),2)=(J-1)*CUA*SQRT(6.0)/4+SQRT(6.0)*CUA/12.0
         ELSE
            R1(3,N(3),1)=(I-1)*CUA/SQRT(2.0)
            R1(3,N(3),2)=(J-1)*CUA*SQRT(6.0)/4.0+SQRT(6.0)*CUA/12.0
           END IF
       
        ELSE
          IF (MOD(J,2)==1)THEN
           R1(3,N(3),1)=(I-1)*CUA*SQRT(2.0)/2.0
           R1(3,N(3),2)=(J-1)*CUA*SQRT(6.0)/4+CUA/SQRT(6.0)
ELSE
           R1(3,N(3),1)=(2*I-1)*CUA*SQRT(2.0)/4.0
           R1(3,N(3),2)=(J-1)*CUA*SQRT(6.0)/4.0+CUA/SQRT(6.0           END IF
            R1(3,N(3),3)=(K-1)*CUA/SQRT(3.0)
        END IF

170         CONTINUE
160         CONTINUE
150        CONTINUE

[ Last edited by benbei626825 on 2009-3-9 at 22:07 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 benbei626825 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见