回 帖 发 新 帖 刷新版面

主题:如何调用 random子程序

我从彭国伦的书上抄下一个程序联系时发现出了问题,报的错是:
Linking...
EX0825.OBJ : error LNK2001: unresolved external symbol _RANDOM@8
Debug/EX0825.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

EX0825.exe - 2 error(s), 0 warning(s)
请大家帮忙看看好吗,好像是调用random的问题,但是我不知道应该怎样调用    
    PROGRAM EX0825

    use imsl
    INTERFACE
       FUNCTION RANDOM10(LBOUND,UBOUND)

       REAL:: LBOUND,UBOUND
       REAL::RADOM10(10)
        END FUNCTION
    END INTERFACE

    REAL ::A(10)
    CALL RAnDOM_SEED()
    A=RANDOM(1.0,10.0)
    WRITE(*,'(10F6.2)')A
    END 

    FUNCTION RANDOM10(LBOUND,UBOUND)

    REAL ::LBOUND,UBOUND
    REAL ::LEN
    REAL::RANDOM10(10)
    REAL T
    INTEGER I
    LEN=UBOUND-LBOUND
    DO 101 I=1,10
    CALL RANDOM_NUMBER(T)
    RANDOM10(I)=LBOUND+LEN*T
101    CONTINUE
    
    RETURN 
    END
    
    

回复列表 (共2个回复)

沙发

A=RANDOM(1.0,10.0)
改为:
    A=RANDOM10(1.0,10.0)

板凳

我修改好了,谢谢cgl,正确的是    
          PROGRAM EX0825
    implicit none
    INTERFACE
       FUNCTION RANDOM10(LBOUND,UBOUND)
        implicit none
       REAL:: LBOUND,UBOUND
       REAL::RAnDOM10(10)
        END FUNCTION
    END INTERFACE

    REAL ::A(10)
    CALL RAnDOM_SEED()
    A=RANDOM10(1.0,10.0)
    WRITE(*,'(10F6.2)')A
    END 

    FUNCTION RANDOM10(LBOUND,UBOUND)
    implicit none
    REAL ::LBOUND,UBOUND
    REAL ::LEN
    REAL::RANDOM10(10)
    REAL T
    INTEGER I
    LEN=UBOUND-LBOUND
    DO 101 I=1,10
    CALL RANDOM_NUMBER(T)
    RANDOM10(I)=LBOUND+LEN*T
101    CONTINUE
    
    RETURN 
    END

我来回复

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