小编Eur*_*ust的帖子

Fortran模块版本致命错误

我在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 …
Run Code Online (Sandbox Code Playgroud)

fortran module fortran95

3
推荐指数
1
解决办法
2768
查看次数

什么是“总线错误”以及我的 Fortran 代码中的什么触发了它?

我的 Fortran 程序可以编译,但是我收到一个奇怪的错误,叫做“总线错误”。

这是我的完整代码。我真的可以使用一些帮助。有谁知道我怎样才能摆脱这个错误并使我的程序正常工作?

我正在尝试生成一个通过随机数创建的数组,然后让该数组进行一些统计。

    PROGRAM numbersgen
IMPLICIT NONE

    !Variable declaration
    INTEGER, DIMENSION(:,:),ALLOCATABLE::numarray
    INTEGER, DIMENSION(:),ALLOCATABLE::temparray
    INTEGER:: numrolls, numexps
    INTEGER:: i=0, j=0
    REAL:: avg=0, sdv=0, variance=0, sum=0
    INTEGER:: k, min, pos, temp
    
    
    PRINT*, "Enter the number of experiments to simulate: "
    READ*, numexps
    
    PRINT*, "Enter the number of rolls per experiment: "
    READ*, numrolls
    
    ALLOCATE(numarray(numexps,numrolls))
    
    DO i=1, numexps
        CALL GenerateNum(numarray, numrolls, numexps)
        
        DO j=1, numrolls
            temparray(j)=numarray(i,j)
        END DO
    
        PRINT*, "Experiment ",i
        
        CALL Sorter(temparray, numrolls)
        CALL ComputeStats(temparray, sum, avg, variance, sdv)
        CALL …
Run Code Online (Sandbox Code Playgroud)

arrays fortran bus

2
推荐指数
1
解决办法
4705
查看次数

在二进制搜索算法错误方面需要帮助

使用g95编译器,我有一个错误:

Error: Operands of comparison operator '.EQ.' at (1) are LOGICAL(4)/LOGICAL(4)
Run Code Online (Sandbox Code Playgroud)

我不知道这是什么意思.我包括子程序.你有任何想法如何解决这个问题?

非常感谢你的时间.

  SUBROUTINE search(iarray, ItemSought, Found, Location)
CHARACTER(20), DIMENSION(50),INTENT(IN)::itemarray
CHARACTER(20)::ItemSought
LOGICAL, INTENT(OUT)::Found
INTEGER, INTENT(OUT)::Location
INTEGER:: First, Last, Middle

WRITE(*,'(1x,A)',ADVANCE="NO"),"What are you searching for? "
READ*, ItemSought

First=1
Last=SIZE(Iarray)
FOUND = .FALSE.

DO
    IF ((First > Last) .OR. Found) RETURN
        Middle = (First+Last)/2
    IF (ItemSought < Iarray(Middle)) THEN
        Last=Middle-1
    ELSE IF (ItemSought > Iarray(Middle)) THEN
        First=Middle+1
    ELSE
        Found = .TRUE.
        Location = Middle
    END IF
END DO


IF …
Run Code Online (Sandbox Code Playgroud)

algorithm fortran binary-search fortran95

2
推荐指数
2
解决办法
1185
查看次数

使用模块在fortran 95上创建简单菜单功能时出现问题

我刚刚开始在模块上创建一个菜单功能,我遇到致命错误,错误太多.我怀疑这可能是由于一个小错误而不是多个,因为代码现在非常简单.

有人有什么想法吗?

以下是我到目前为止的情况.显然我刚刚开始,但我很惊讶为什么会出现问题.非常感谢!

另外我对模块有点新意,所以我只是好奇你能告诉我这是不是如何编译它?g95 themenu.f95 -o ba ??

谢谢.

 MODULE themenu
    IMPLICIT NONE

    INTEGER:: choices, opt
    opt=choices()

     CONTAINS

    INTEGER FUNCTION choices ()
    INTEGER:: opt

    DO
        PRINT*, "1: Add an item manually"
        PRINT*, "2: Add item(s) from a file"
        PRINT*, "3: Add random item from list of top ten list"
        PRINT*, "4: Print list with totals"
        PRINT*, "5: Sort list alphabetically"
        PRINT*, "6: Sort list by price"
        PRINT*, "7: Write list to file"
        PRINT*, "8: EXIT"
        PRINT*, " "
        PRINT*, "Please …
Run Code Online (Sandbox Code Playgroud)

fortran module function fortran95

1
推荐指数
1
解决办法
1219
查看次数

需要有关使用数组输出星号和索引的帮助

fortran 95上此程序的输出显示星号而不是数字.另外,我无法按照预期的方式打印实验#; 实验1,实验2,实验3等.相反,它打印如下; 实验1,实验1,实验1.

关于如何解决这个问题的任何想法?以下是我的整个计划.

谢谢你的时间.

PROGRAM numbersgen
    IMPLICIT NONE

        !Variable declaration
        INTEGER, DIMENSION(:,:),ALLOCATABLE::numarray
        INTEGER, DIMENSION(:),ALLOCATABLE::temparray
        INTEGER:: numrolls, numexps
        INTEGER:: i=0, j=0
        REAL:: avg=0, sdv=0, variance=0, sum=0
        INTEGER:: k, min, pos, temp

        .............
        ------

        REAL, INTENT(IN):: sum
        REAL, INTENT(IN):: avg, variance, sdv

        PRINT*, " "
        PRINT*, "Sum: ",sum
        PRINT '(1X,A,F5.3)', "Average: ",avg
        PRINT '(1X,A,F5.3)', "Variance: ",variance
        PRINT '(1X,A,F5.3)', "Standard Deviation: ",sdv

        END SUBROUTINE

END PROGRAM
Run Code Online (Sandbox Code Playgroud)

arrays sorting fortran fortran95

1
推荐指数
1
解决办法
1328
查看次数