回 帖 发 新 帖 刷新版面

主题:求助!!!!!关于模块过程的问题

由于毕业设计的需要,我刚学FORTRAN,,请各位高手帮忙解决下这个问题
下面是模块过程一个很基本的例子,但是调试出错,,不知道什么原因,还有申明接口快调试时也是这个问题,,我基本就是照书上例子写的啊,,,整哭了!!!
--------------------Configuration: EXAMPLE - Win32 Debug--------------------
Compiling Fortran...
C:\MSDEV\Projects\EXAMPLE\Text3.f90
Command line error D2013: internal compiler error.
Error executing fl32.exe.
EXAMPLE.exe - 1 error(s), 0 warning(s)
————————————————————————————————————
!!!!!!下面是源码
module faction
    implicit none  
    integer::a,b
    common::a,b
end module

program main
    use faction
    implicit none
    a=1
    b=2
    call sub()

end program

subroutine sub()
    use faction
    implicit none
    write(*,*)a,b
    return
end sub

回复列表 (共9个回复)

沙发

首先 common后面是没有双冒号的。 
common a,b 

第二,end sub是不对的,要写成 
end subroutine 
或者是
end subroutine sub

板凳

一楼 已经问题解决,我感兴趣的是什么编译器竟然出来 internal compiler error.

3 楼


谢谢你!问题解决了。不过还要请教一下,我写接口块为啥也弹出这样的错误
--------------------Configuration: example - Win32 Debug--------------------
Compiling Fortran...
C:\MSDEV\Projects\example\Text1.f90
Command line error D2013: internal compiler error.
Error executing fl32.exe.
example.exe - 1 error(s), 0 warning(s)
——————————————————————————————————————

程序源码是
FUNCTION FAC(N) RESULT(FAC_RESULT)
    IMPLICIT NONE
    INTEGER::N
    INTEGER::FAC_RESULT
    INTEGER::I

    FAC_RESULT=1
    DO I=1,N
        FAC_RESULT=FAC_RESULT*I
    END DO
    
END FUNCTION 

PROGRAM MAIN
    INTERFACE
        FUNCTION FAC(N) RESULT(FAC_RESULT)
            INTEGER:N
            INTEGER::FAC_RESULT
        END FUNCTION
    END INTERFACE
    IMPLICIT NONE
    INTEGER::S,FAC
    S=FAC(5)
    PRINT*,S
END PROGRAM

——————————————————————————————————-——
去掉接口块部分就可以正常运行。请问这是为什么呢

4 楼

谢谢三楼!
麻烦你再帮我看看上楼的问题
写接口块的时候又弹出了如下错误
--------------------Configuration: example - Win32 Debug--------------------
Compiling Fortran...
C:\MSDEV\Projects\example\Text1.f90
Command line error D2013: internal compiler error.
Error executing fl32.exe.
example.exe - 1 error(s), 0 warning(s)

5 楼

[quote]
谢谢你!问题解决了。不过还要请教一下,我写接口块为啥也弹出这样的错误
--------------------Configuration: example - Win32 Debug--------------------
Compiling Fortran...
C:\MSDEV\Projects\example\Text1.f90
Command line error D2013: internal compiler error.
Error executing fl32.exe.
example.exe - 1 error(s), 0 warning(s)
——————————————————————————————————————

程序源码是
FUNCTION FAC(N) RESULT(FAC_RESULT)
    IMPLICIT NONE
    INTEGER::N
    INTEGER::FAC_RESULT
    INTEGER::I

    FAC_RESULT=1
    DO I=1,N
        FAC_RESULT=FAC_RESULT*I
    END DO
    
END FUNCTION 

PROGRAM MAIN
    INTERFACE
        FUNCTION FAC(N) RESULT(FAC_RESULT)
            INTEGER:N
            INTEGER::FAC_RESULT
        END FUNCTION
    END INTERFACE
    IMPLICIT NONE
    INTEGER::S,FAC
    S=FAC(5)
    PRINT*,S
END PROGRAM

——————————————————————————————————-——
去掉接口块部分就可以正常运行。请问这是为什么呢[/quote]

错的太多
FAC在function和interface里都没声明
INTEGER:N为INTEGER::N
INTEGER::S,FAC的FAC已经在interface中,重复声明

6 楼

[quote]一楼 已经问题解决,我感兴趣的是什么编译器竟然出来 internal compiler error.
[/quote]
你应该看到 他的编译器是fl32
那么没什么不可能的

7 楼


麻烦给我传一个高级版本的visual fortran,好么?
我在网上找了好大半天都无果,实在郁闷

QQ:84314116

8 楼

站内有不少人求过资源, 站内找找吧. cvf ivf都有.

9 楼


我找过的,站内这些贴子里提供的下载地址都打不开。。。

我来回复

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