24小时热门版块排行榜    

查看: 1053  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] filecode +11 documentary 2026-08-10 12/600 2026-08-12 12:42 by kudofaye
[基金申请] FileCode能看出啥? +7 要乐观耀哥 2026-08-10 19/950 2026-08-12 10:55 by 要乐观耀哥
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +5 Tide man 2026-08-11 5/250 2026-08-12 09:24 by kangban
[基金申请] 是这周出结果还是下周出结果? +3 yuleib84 2026-08-11 3/150 2026-08-11 21:53 by jnhyjjm
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +8 Tide man 2026-08-10 9/450 2026-08-11 20:39 by beefly
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +3 majunge000 2026-08-11 4/200 2026-08-11 20:13 by lch2012
[基金申请] 分享一下我之前已中青C的计划书的filecode +3 布布和一二 2026-08-11 4/200 2026-08-11 15:20 by aasahr
[基金申请] 听说今天filecode变了 +26 布布和一二 2026-08-06 49/2450 2026-08-11 13:18 by WH3796
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +8 家与远方 2026-08-10 13/650 2026-08-11 09:49 by 家与远方
[基金申请] 基金中了 +15 laoda193707 2026-08-06 15/750 2026-08-11 00:11 by jiafei2190
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 国自然结果 +4 Vierhys 2026-08-10 8/400 2026-08-10 15:06 by Vierhys
[基金申请] 好奇怪的filecode +4 布布和一二 2026-08-08 5/250 2026-08-10 14:20 by 冰心玉壶晴
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 2026国自然放榜时间 +9 布布和一二 2026-08-08 9/450 2026-08-10 11:22 by xxxx2020
[基金申请] 关于filecode,很负责任的告诉大家 +6 爱看书的可乐 2026-08-08 7/350 2026-08-08 22:13 by a_niu
[基金申请] 关于豆爷回答的JTJC与%2F数量 +5 yang182083 2026-08-06 7/350 2026-08-08 18:29 by zhanghaozhu
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +7 a089 2026-08-07 7/350 2026-08-08 18:05 by gltch
[基金申请] 固定端突然变了,今天 +6 archvillain 2026-08-06 10/500 2026-08-07 16:03 by 医学老男孩
[基金申请] 影响面上的因素 +8 布布和一二 2026-08-05 11/550 2026-08-06 10:41 by 宝贝虫子
信息提示
请填处理意见