Fortran Coder

查看: 8753|回复: 2
打印 上一主题 下一主题

[数值问题] NAN求助

[复制链接]

23

帖子

9

主题

0

精华

熟手

F 币
134 元
贡献
82 点
跳转到指定楼层
楼主
发表于 2018-1-3 23:04:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么intensity1输出会是无穷大?谢谢
[Fortran] 纯文本查看 复制代码
      program pxrd
      implicit none
      real(4),parameter::natom=143,n=180,lambda=1.5406,frame=1000
      integer::i,j,k,l
      real(4),dimension(natom,n)::f
      real(4),dimension(natom,natom)::r
      character::u
      real(4),parameter::pi=4.d0*datan(1.d0)
      real(8)::intensity0,intensity1,intensity2,intensity,s
      open(11,file='facter.txt')
      open(12,file='pbc.txt')
      open(13,file='pxrd.txt')
      open(14,file='ceshi.txt')     
      do i=1,natom
        read(11,*)f(i,1:n)
      enddo
      
c      do l=1,frame
        do i=1,natom
          read(12,*)r(i,1:natom)
        enddo
        do i=1,n
          intensity1=0.d0
          intensity2=0.d0
          s=4*pi/lambda*(sin(n*pi/180))
          do j=1,natom
            do k=1,natom
              if(j.ne.k) then
                intensity1=intensity1+(f(j,i)*f(k,i)*
     x                   (sin(s*r(j,k))/s/r(j,k)))
              else
                intensity2=intensity2+(f(j,i)*f(k,i))
              endif
              write(14,*)intensity1,intensity2
            enddo
          enddo
            intensity=intensity1+intensity2
            write(13,*)intensity
        enddo
c      enddo
      close(11)
      close(12)
      close(13)
      close(14)
      end
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
沙发
发表于 2018-1-4 09:02:46 | 只看该作者
由于没有你的输入文件,我用一组随机数填充了 f 和 r ,结果得到的并没有 NaN
可能是你的输入具有一定的特殊性。
请把 facter.txt 和 pbc.txt 发上来(附件)

23

帖子

9

主题

0

精华

熟手

F 币
134 元
贡献
82 点
板凳
 楼主| 发表于 2018-1-4 09:43:57 | 只看该作者
vvt 发表于 2018-1-4 09:02
由于没有你的输入文件,我用一组随机数填充了 f 和 r ,结果得到的并没有 NaN
可能是你的输入具有一定的特 ...

谢谢,问题已经解决了。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-4-25 14:41

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表