24小时热门版块排行榜    

查看: 1337  |  回复: 2

mplanck

至尊木虫 (职业作家)

之上又是啥子虫虫?

[交流] 【求助】fortran 程序windows 下编译正确,而linux下出错 已有2人参与

如题,一个cpc上下的程序,windows 下编译得到结果正确,
放在linux下就出问题:
用f77, fort77 编译,在两个sub模块结尾提示
Error on line 1679: Declaration error for rvv: adjustable dimension on non-
argument
Error on line 1679: wr_ardecls:  nonconstant array size
但我的数组没问题呀

再用gfortran,f95编译,编译通过,但结果不对

再用ifort编译,编译也通过,又出来一个不对的新结果

真搞不懂为什么这样?

麻烦虫虫门指点下,谢谢!

附出错部分代码:
其中报错的一个sub模块代码如下,1679行对应于最后一行,即‘end’所在行;再就是 整个代码中没有找到wr_ardecls这个东西,不知道咋搞的。非常感谢!
c------------------------------------------------------------------------
      subroutine dcludcmp(a,n,np,indx,d,ierror)
c  this is the double complex version of the homonyme sbr. from Numerical
c  Recipes
      implicit double complex(a-h,o-q,s-z)
      implicit double precision (r)
      parameter (tiny=(1.0d-30,1.0d-30))
      dimension a(np,np),indx(n),rvv(n)
      d=dcmplx(1.d0,0.d0)
    ierror=0
      do 12 i=1,n
        raamax=0.d0
        do 11 j=1,n
          if (cdabs(a(i,j)).gt.raamax) raamax=cdabs(a(i,j))
11      continue
        if (raamax.eq.0.d0)then
    write (*,*) 'singular matrix in dcludcmp'
    ierror=1
    return
    endif
        rvv(i)=1.d0/raamax
12    continue
      do 19 j=1,n
        if (j.gt.1) then
          do 14 i=1,j-1
            sum=a(i,j)
            if (i.gt.1)then
              do 13 k=1,i-1
                sum=sum-a(i,k)*a(k,j)
13            continue
              a(i,j)=sum
            endif
14        continue
        endif
        raamax=0.d0
        do 16 i=j,n
          sum=a(i,j)
          if (j.gt.1)then
            do 15 k=1,j-1
              sum=sum-a(i,k)*a(k,j)
15          continue
            a(i,j)=sum
          endif
          rdum=rvv(i)*cdabs(sum)
          if (rdum.ge.raamax) then
            imax=i
            raamax=rdum
          endif
16      continue
        if (j.ne.imax)then
          do 17 k=1,n
            dum=a(imax,k)
            a(imax,k)=a(j,k)
            a(j,k)=dum
17        continue
          d=-d
          rvv(imax)=rvv(j)
        endif
        indx(j)=imax
        if(j.ne.n)then
          if(cdabs(a(j,j)).eq.0.d0) a(j,j)=tiny
          dum=1.d0/a(j,j)
          do 18 i=j+1,n
            a(i,j)=a(i,j)*dum
18        continue
        endif
19    continue
      if(cdabs(a(n,n)).eq.0.d0) a(n,n)=tiny
      return
      end
c---------------------------------------------------------------------------
回复此楼
不知不觉过2W了!那向3W挺进~~
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+2):辛苦了! 2010-07-17 10:46:06
不要用 f2c 编译你的程序,用 gfortran 或其它正宗的 Fortran 编译器,呵呵
用第二个错误提示 google 一下,你会发现,你不是遇到这个错误的第一人,呵呵……
f2c does not support automatic arrays; g77 does, as do most other f77
compilers (and all f90+).

至于结果不同,最大的可能是一些 local variable 没有赋值,这在 Fortran,尤其是一些老的程序中是非常常见的。用 gfortran  编译时加上 -fno-automatic -finit-local-zero 之类的参数试试……
2楼2010-07-17 08:56:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mplanck

至尊木虫 (职业作家)

之上又是啥子虫虫?

非常感谢你的中肯回复,我试下
不知不觉过2W了!那向3W挺进~~
3楼2010-07-17 11:27:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 mplanck 的主题更新
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[论文投稿] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 TgvkbZZl9tqB 2026-11-11 4/200 2026-11-12 13:02 by ECLTXnJnRSXf
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 cdqGD6ftHmbl 2026-11-11 4/200 2026-11-12 12:26 by ECLTXnJnRSXf
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 Z7qfCsdIiD1T 2026-11-11 5/250 2026-11-12 11:44 by HajghKOMynmz
[基金申请] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 Z7qfCsdIiD1T 2026-11-11 5/250 2026-11-12 11:44 by HajghKOMynmz
[基金申请] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +4 Z7qfCsdIiD1T 2026-11-10 7/350 2026-11-12 11:33 by HajghKOMynmz
[教师之家] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +4 Z7qfCsdIiD1T 2026-11-10 9/450 2026-11-12 11:22 by HajghKOMynmz
[基金申请] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +5 czAiolzR0IJC 2026-11-10 9/450 2026-11-12 11:11 by HajghKOMynmz
[考博] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +4 czAiolzR0IJC 2026-11-10 7/350 2026-11-12 11:11 by HajghKOMynmz
[考研] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 czAiolzR0IJC 2026-11-10 6/300 2026-11-12 11:03 by HajghKOMynmz
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +4 C6CRn66RYYXS 2026-11-10 6/300 2026-11-12 10:27 by HajghKOMynmz
[硕博家园] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 C6CRn66RYYXS 2026-11-10 6/300 2026-11-12 10:16 by HajghKOMynmz
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +7 FChKX8meu1ds 2026-11-09 9/450 2026-11-12 10:03 by HajghKOMynmz
[考研] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +6 FChKX8meu1ds 2026-11-09 8/400 2026-11-12 09:41 by HajghKOMynmz
[考研] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +8 cqv1zKnzd7hr 2026-11-09 12/600 2026-11-12 09:32 by HajghKOMynmz
[考博] 27博士 +4 锦鲤送福至 2026-11-10 4/200 2026-11-12 09:05 by Superwj
[教师之家] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 TgvkbZZl9tqB 2026-11-11 3/150 2026-11-12 08:26 by HajghKOMynmz
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 C6CRn66RYYXS 2026-11-10 5/250 2026-11-12 06:03 by 9fOTqj074tIg
[硕博家园] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +4 YHiw1gou1Eda 2026-11-10 7/350 2026-11-12 05:39 by 9fOTqj074tIg
[教师之家] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +6 0TEMgxdT1eIw 2026-11-09 8/400 2026-11-12 05:00 by 9fOTqj074tIg
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 5sJFDKp2kwuI 2026-11-06 10/500 2026-11-09 08:00 by IhnEQauGmT3K
信息提示
请填处理意见