回 帖 发 新 帖 刷新版面

主题:[讨论]高手帮忙瞧瞧。纠结(周期性边界)

环境Fortran6.6,编周期性边界时发生的问题
求助高手解答
        integer i ,m
        do i=-10,110
        m=place(i)
                open(1,file='a.dat')
        write(1,*)m
        enddo
        end

        function place(k)    
        integer k,L,place
        L=100
        if (k.gt.L)then
            place=k-L
        else if (k.lt.1)then
            place=k+L
        else if (k.ge.1.and.k.le.L)then
            place=k
        end if 
        end
结果是(大吃一惊!!)
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648
 -2147483648

回复列表 (共4个回复)

沙发

是我看错了. 我刚才说楼主大小写L. 其实那个是'1'不是L.

在程序最上面加上implicit none 就会发现是什么问题了.

板凳

在主程序定义那里加上
integer, external :: place
就可以了. 还有楼主open了文件最好顺手close掉, 而且应该放到循环外面.

3 楼

先谢过大侠,马上去试试。

4 楼

再次谢谢大侠你,成功了

我来回复

您尚未登录,请登录后再回复。点此登录或注册