24小时热门版块排行榜    

查看: 924  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 深圳大学硕士招生(2026秋,传感器方向,仅录取第一志愿) +4 xujiaoszu 2026-03-11 8/400 2026-03-16 09:45 by xujiaoszu
[考研] 304求调剂 +4 素年祭语 2026-03-15 4/200 2026-03-16 09:42 by 闲人终南山
[考研] 290求调剂 +5 孔志浩 2026-03-12 10/500 2026-03-16 09:01 by 余晖&
[考研] 调剂 +8 调剂的考研学生 2026-03-09 8/400 2026-03-15 22:14 by Winj1e
[考研] 梁成伟老师课题组欢迎你的加入 +6 一鸭鸭哟 2026-03-14 7/350 2026-03-15 22:12 by Winj1e
[考研] 材料工程专硕274一志愿211求调剂 +5 薛云鹏 2026-03-15 5/250 2026-03-15 20:38 by Logic2024
[考博] 欢迎申博同学联系 +3 天道酬勤2026686 2026-03-10 7/350 2026-03-15 19:03 by 天道酬勤2026686
[考研] 288求调剂 +4 奇点0314 2026-03-14 4/200 2026-03-14 23:04 by JourneyLucky
[考研] 309求调剂 +4 花与叶@ 2026-03-10 4/200 2026-03-14 21:26 by a不易
[基金申请] 现在如何回避去年的某一个专家,不知道名字 +3 zk200107 2026-03-12 6/300 2026-03-14 17:13 by zk200107
[考研] 材料与化工 一志愿山大 321分 求调剂 +7 每天散步 2026-03-09 8/400 2026-03-14 02:18 by JourneyLucky
[考研] 一志愿天津大学,英一数二305分求调剂,四六级已过 +8 小小番的茄 2026-03-09 8/400 2026-03-14 01:53 by JourneyLucky
[考研] 307求调剂 +7 超级伊昂大王 2026-03-10 7/350 2026-03-14 00:49 by JourneyLucky
[考研] 308求调剂 +3 是Lupa啊 2026-03-10 3/150 2026-03-14 00:30 by JourneyLucky
[考研] 327求调剂 +4 Ffff03 2026-03-10 4/200 2026-03-14 00:17 by JourneyLucky
[考研] 332求调剂 +3 zjy101327 2026-03-11 6/300 2026-03-13 22:48 by JourneyLucky
[考研] 0856材料与化工301求调剂 +5 奕束光 2026-03-13 5/250 2026-03-13 22:00 by 星空星月
[考研] 工科调剂 +4 Jiang191123! 2026-03-11 4/200 2026-03-13 15:15 by Miko19
[考研] 277求调剂 +4 anchor17 2026-03-12 4/200 2026-03-13 11:15 by 白夜悠长
[考研] 298求调剂 +3 Vv呀! 2026-03-10 3/150 2026-03-10 22:40 by 剑诗杜康
信息提示
请填处理意见