GFortran编译通过,但每次运行结果一样,无变化
IVF无法通过编译,并提示【there is a conflict beetween local interface and external interface [GET_RANDOM]】
文本为输入文件及运行结果[random.dat]
RANDOM.DAT
(113 Bytes, 下载次数: 1)
[Fortran] 纯文本查看 复制代码 PROGRAM RANDOMNUM
IMPLICIT NONE
INTERFACE !为函数GET_RANDOM(N,L,U)定义接口
!==================================================
FUNCTION GET_RANDOM(N,L,U)
IMPLICIT NONE
INTEGER N,I
REAL L,U,LENGTH,t
REAL::GET_RANDOM(N)!除了N,L,U外应该不许要声明其他吧??
!RETURN
END FUNCTION
!==================================================
END INTERFACE
INTEGER N
REAL L,U
REAL,ALLOCATABLE::A(:)!因为我想让这个函数具有通用性,所以用了动态数组
CALL RANDOM_SEED()!随机数种子
!石头大人说可能是没有种子的原因,可是我这里一直都有哇。
!我用的GFortran,后来在IVF上试验,无法编译
OPEN(9,file='random.dat')
READ(9,*)N,L,U
ALLOCATE(A(N))
A=GET_RANDOM(N,L,U)
WRITE(9,90)A
90 FORMAT(/,F7.3)
DEALLOCATE (A)
END
!==================================================
FUNCTION GET_RANDOM(N,L,U)
IMPLICIT NONE
INTEGER N,I
REAL L,U,LENGTH,t
REAL::GET_RANDOM(N)
!L,U分别代表了数组的上下限
LENGTH=U-L
DO I=1,N
CALL RANDOM_NUMBER(t)
GET_RANDOM(I)=L+LENGTH*t
END DO
RETURN
END FUNCTION
!==================================================
|