24小时热门版块排行榜    

查看: 926  |  回复: 2

_yixiao

铁虫 (小有名气)

[交流] 【求助】一个fortran程序转换为VC++ 程序 已有2人参与

这个一个关于建立体心立方结构的小程序,用fortran编的,现在想用VC++ 6.0编写,可是我编写后(我没用动态数组,这个应该问题不大吧?)能够编译,但是运行不出结果,不晓得哪有出错
麻烦各位大侠帮忙看看,能不能编写看看。。。或者看看我编的哪错了。。。十分感谢!

原fortran程序:

program structure

implicit none
integer ::  i,ix,iy,iz,ncellx,ncelly,ncellz,iatoms,natoms,ibas  !整数
real*8  ::  xunit(2),yunit(2),zunit(2),a      !三个一维的实数数组
real*8,allocatable,dimension(  :: xbas,ybas,zbas  !定义三个一维动态数组

a=2.8664d0  ! Fe的晶格常数

! 单胞原子坐标
xunit(1)=0.0d0
yunit(1)=0.0d0   
zunit(1)=0.0d0
xunit(2)=0.50d0
yunit(2)=0.50d0
zunit(2)=0.50d0

! 在xyz方向重复次数
write(*,*) 'Numbers of unit cells in x,y,z?'
read (*,*) ncellx, ncelly, ncellz


iatoms=0
natoms=2 * ncellx * ncelly * ncellz
allocate(xbas(natoms))   !给动态数组分配内存
allocate(ybas(natoms))
allocate(zbas(natoms))

        do ix=1,ncellx
      do iy=1,ncelly
        do iz=1,ncellz
          do ibas=1,2
        iatoms=iatoms+1
        xbas(iatoms)=(float(ix-1)+xunit(ibas))*a
        ybas(iatoms)=(float(iy-1)+yunit(ibas))*a
        zbas(iatoms)=(float(iz-1)+zunit(ibas))*a
         enddo
        enddo
      enddo
    enddo

!  输出一个xyz文件
open(11,file='Fe.xyz',status='new')

do i=1,iatoms
write(11,10)i,xbas(i),ybas(i),zbas(i)
enddo

10     format(i6,1x,7(f10.5,1x),4(i3,1x))

end program


我用VC++ 6.0改的程序:

void CBCC_CrystalDlg::OnCalculate()
{
        // TODO: Add your control notification handler code here

        FILE * fileFe_xyz = fopen("Fe_xyz.txt", "w+";
        fprintf(fileFe_xyz, "i  xbas  ybas  zbas\n";


        
        a=2.8664;
        xunit[0]=0.0;
        yunit[0]=0.0;
        zunit[0]=0.0;
        xunit[1]=0.50;
        yunit[1]=0.50;
        zunit[1]=0.50;

        ncellx=M;
        ncelly=M;
        ncellz=M;

        iatoms=0;
        natoms=2*ncellx*ncelly*ncellz;

        for(int i=0;i         {
           xbas=0;
               ybas=0;
           zbas=0;
        }


        for(ix=1;i<=ncellx;ix++)
        {
           for(iy=1;iy<=ncelly;iy++)
           {
              for(iz=1;iz<=ncellz;iz++)
              {
                 for(ibas=0;ibas<2;ibas++)
                 {
                   xbas[iatoms]=(float(ix-1)+xunit[ibas])*a;
                   ybas[iatoms]=(float(iy-1)+yunit[ibas])*a;
                   zbas[iatoms]=(float(iz-1)+zunit[ibas])*a;
                   iatoms=iatoms+1;
                 }
              }
           }
        }

        
        for(i=0;i         {
           fprintf(fileFe_xyz, "%6d    %10.5f    %10.5f    %10.5f\n", i,xbas,ybas,zbas);

        }

        fclose(fileFe_xyz);

        
}
回复此楼

» 猜你喜欢

信仰我所必须相信的
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)

★ ★
_yixiao(金币+10):谢谢啦,后来发现错误所在了,谢谢你的关注和意见,谢谢! 2010-06-05 15:19:38
余泽成(金币+2):辛苦! 2010-06-23 22:18:18
1.楼主说的运行不出结果是什么意思?那运行以后是什么现象?这个一定要说清楚的。否则就像去看病,只说医生我病了,不说有什么症状。
2.楼主VC6的代码只贴了一个函数,变量声明没看到在哪里。
3.貌似楼主用了对话框类,如果是MFC的话写文件建议用CArchieve类,或者CFile类。
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
2楼2010-06-04 10:30:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

stonesu

铁虫 (小有名气)


余泽成(金币+1):谢谢参与应助! 2010-06-23 22:18:31
_yixiao(金币+20):嘿嘿没想到还真有人发现这个错了,谢谢了,金币送你了 2010-06-26 03:29:54
for(ix=1;i<=ncellx;ix++)
把i改为ix应该就可以了……
3楼2010-06-23 18:29:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 _yixiao 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 321求调剂 +6 何润采123 2026-03-18 6/300 2026-03-19 10:55 by daliangogo
[考研] 0817调剂 +3 没有答案_ 2026-03-14 3/150 2026-03-19 09:51 by Xu de nuo
[考研] 材料与化工一志愿南昌大学327求调剂推荐 +8 Ncdx123456 2026-03-13 9/450 2026-03-18 14:40 by haxia
[考研] 材料专硕306英一数二 +10 z1z2z3879 2026-03-16 13/650 2026-03-18 14:20 by 007_lilei
[考研] 288求调剂,一志愿华南理工大学071005 +4 ioodiiij 2026-03-17 4/200 2026-03-18 12:36 by Linda Hu
[考研] 材料,纺织,生物(0856、0710),化学招生啦 +3 Eember. 2026-03-17 9/450 2026-03-18 10:28 by Eember.
[考研] 工科材料085601 279求调剂 +6 困于星晨 2026-03-17 6/300 2026-03-18 10:21 by kkcoco25
[考研] 一志愿南京大学,080500材料科学与工程,调剂 +4 Jy? 2026-03-16 4/200 2026-03-17 11:02 by gaoqiong
[考研] 283求调剂 +3 听风就是雨; 2026-03-16 3/150 2026-03-17 07:41 by 热情沙漠
[考研] 11408 一志愿西电,277分求调剂 +3 zhouzhen654 2026-03-16 3/150 2026-03-17 07:03 by laoshidan
[基金申请] 今年的国基金是打分制吗? 50+3 zhanghaozhu 2026-03-14 3/150 2026-03-16 17:07 by 北京莱茵润色
[考研] 285求调剂 +6 ytter 2026-03-12 6/300 2026-03-16 15:05 by njzyff
[考研] 22408总分284求调剂 +3 InAspic 2026-03-13 3/150 2026-03-15 11:10 by zhq0425
[考研] 本科南京大学一志愿川大药学327 +3 麦田耕者 2026-03-14 3/150 2026-03-14 20:04 by 外星文明
[考研] 中科大材料专硕319求调剂 +3 孟鑫材料 2026-03-13 3/150 2026-03-14 18:10 by houyaoxu
[考研] 学硕285求调剂 +13 Wisjxn 2026-03-12 46/2300 2026-03-14 10:33 by JourneyLucky
[考研] 材料与化工求调剂一志愿 985 总分 295 +8 dream…… 2026-03-12 8/400 2026-03-13 22:17 by 星空星月
[考研] 307求调剂 +5 超级伊昂大王 2026-03-12 5/250 2026-03-13 15:56 by 棒棒球手
[考研] 工科材料085601 279求调剂 +8 困于星晨 2026-03-12 10/500 2026-03-13 15:42 by ms629
[考研] 295求调剂 +3 小匕仔汁 2026-03-12 3/150 2026-03-13 15:17 by vgtyfty
信息提示
请填处理意见