Fortran模块版本致命错误

Eur*_*ust 3 fortran module fortran95

我在Fortran 95上有一个非常可怕的错误:

Fatal Error: While reading module 'list5.mod' found module version 0, expected 6
Run Code Online (Sandbox Code Playgroud)

我已经包含了我的模块的主要结构.我非常怀疑它与我的模块中的内容有什么关系,因为它给了我关于那些的错误信息,我已经能够修复它们,这意味着它能够通过我的模块很好,它只是与我使用模块的方式.也许?

    MODULE list5
    IMPLICIT NONE

    CONTAINS

----

END MODULE
Run Code Online (Sandbox Code Playgroud)

主程序的结构如下:

    PROGRAM mainlist
    USE list5
IMPLICIT NONE

    !Variable Declaration
    INTEGER:: opt
    INTEGER, PARAMETER:: maxitems=50
    INTEGER:: size=0
    CHARACTER(20):: itemarray(50)
    INTEGER:: quantityarray(50)
    INTEGER:: totalquantity, i=0
    REAL:: totalprice=0, pricearray(50)=0

    CHARACTER(20), DIMENSION(:)::Item
    CHARACTER(20):: ItemSought
    LOGICAL:: Found
    INTEGER:: Location

    INTEGER:: NumItems=0, SmallestItem=0

!Select statement for the menu

DO
opt=choices()
SELECT CASE (opt)
    CASE(1)
        size=size+1
        CALL getItemData(itemarray,pricearray,quantityarray)
    CASE(2)
        CALL getFileItems(size,itemarray,pricearray,quantityarray)
    CASE(3)
        CALL pickItemRandomly (size)
    CASE(4)
        CALL calcListTotals
(pricearray,quantityarray,totalprice,totalquantity)
        CALL printList(size,itemarray,pricearray,quantityarray,totalprice, totalquantity)
    CASE(5)
        CALL sortByItem(itemarray, pricearray, quantityarray)
    CASE(6)
        CALL sortByPrice(itemarray, pricearray, quantityarray)
    CASE(7)
        CALL writeListtoFile(size,itemarray, pricearray, quantityarray)

    CASE(8)
        CALL search(itemarray, ItemSought, Found, Location)
    CASE(9)
        STOP
END SELECT
END DO



END PROGRAM
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?我真的需要解决这个问题,所以任何帮助都会受到赞赏.非常感谢!!

Jon*_*rsi 6

正如Rook所说,问题在于编译器版本; 不知何故,第一次编译list5的.mod文件是由较旧的编译器生成的.清除所有.o和.mod文件,然后重试,首先编译list5.f90(或者包含模块list5的文件),然后编译主程序.

  • 是的,模块和程序不必同时编译.它们必须以合适的顺序编译并使用相同的编译器.因此,如果程序或过程使用模块,则需要首先编译模块.不允许循环依赖!您可以在单独的步骤中编译,也可以使用一个编译命令编译,但在任何一种情况下,文件的顺序都很重要.如果您向我们展示您的新错误,也许我们可以提供帮助...... (4认同)