Fortran Coder

查看: 178|回复: 2

[数值问题] NAN求助

[复制链接]

23

帖子

9

主题

0

精华

熟手

F 币
128 元
贡献
79 点
发表于 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
回复

使用道具 举报

537

帖子

0

主题

0

精华

大师

F 币
635 元
贡献
291 点

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

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

23

帖子

9

主题

0

精华

熟手

F 币
128 元
贡献
79 点
 楼主| 发表于 2018-1-4 09:43:57 | 显示全部楼层
vvt 发表于 2018-1-4 09:02
由于没有你的输入文件,我用一组随机数填充了 f 和 r ,结果得到的并没有 NaN
可能是你的输入具有一定的特 ...

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

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2018-7-17 13:54

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

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