24小时热门版块排行榜    

查看: 1050  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +4 Tide man 2026-08-11 4/200 2026-08-12 00:39 by liuqidi
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +17 Lanmanbaby 2026-08-09 29/1450 2026-08-12 00:24 by zhanghaozhu
[基金申请] 是这周出结果还是下周出结果? +3 yuleib84 2026-08-11 3/150 2026-08-11 21:53 by jnhyjjm
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +3 majunge000 2026-08-11 4/200 2026-08-11 20:13 by lch2012
[硕博家园] 读博的好处 +3 lnee 2026-08-11 3/150 2026-08-11 18:10 by 希望我好好的
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[基金申请] 听说今天filecode变了 +26 布布和一二 2026-08-06 49/2450 2026-08-11 13:18 by WH3796
[基金申请] filecode +9 documentary 2026-08-10 9/450 2026-08-11 10:08 by wk7465
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +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
[基金申请] 静等基金结果 +5 gjjjzhong 2026-08-10 16/800 2026-08-10 17:19 by Tide man
[基金申请] 2026国自然放榜时间 +9 布布和一二 2026-08-08 9/450 2026-08-10 11:22 by xxxx2020
[基金申请] 这样的filecode谁见过 +11 布布和一二 2026-08-08 22/1100 2026-08-10 11:10 by wmfsnow
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +7 a089 2026-08-07 7/350 2026-08-08 18:05 by gltch
[基金申请] 关于filecode +4 布布和一二 2026-08-07 7/350 2026-08-07 22:55 by zhanghaozhu
[基金申请] 固定端突然变了,今天 +6 archvillain 2026-08-06 10/500 2026-08-07 16:03 by 医学老男孩
[基金申请] filecode +8 布布和一二 2026-08-06 11/550 2026-08-06 20:41 by tangpu318
[基金申请] 求各位大神看下 100+6 hpkpkpkp 2026-08-05 33/1650 2026-08-06 14:49 by zhiyanjiang
[基金申请] 影响面上的因素 +8 布布和一二 2026-08-05 11/550 2026-08-06 10:41 by 宝贝虫子
[基金申请] 好消息?这个有何含义??? +8 Tide man 2026-08-05 10/500 2026-08-05 16:14 by xmuxiaoyu
信息提示
请填处理意见