模块中的函数(Fortran)

时间:2018-01-17 18:36:53

标签: function module fortran

我正在学习Fortran。我正在关注史蒂文的破折号的95/2003书。我试图在mod文件中使用这两个函数,而不是在主程序中使用它,但这给了我错误。

错误#6401:此名称的属性与USE语句可访问的属性冲突。[Y]

错误#6401:此名称的属性与USE语句可访问的属性冲突。[TAB]

module mymods

implicit none


!======================  Shared Data  ==========================

real*8, parameter :: pi = 3.1415926535897932_8
real*8, parameter :: ge = 9.8066500000000000_8, gc = 6.67408d-11


!====================  Subroutines  ============================
contains

real function y(p)
    implicit none
    real, intent(in) :: p
    y= p+5.0
end function y


real function tab(t,n)
    implicit none
    real, intent(in) :: t
    real, external :: n
    tab = n(t)+t
end function tab

subroutine print_m(a)

        real, intent(in)  ::  a
        print*,a

end subroutine 

end module mymods

程序:

program test
use mymods
implicit none
real :: a

real, external :: y
real :: tab

a = 2.5
call print_m(a)
a = tab (15.5,y)
call print_m(a)
end program test 

我是fortran的新手。如果我使用程序中的函数它可以正常工作 但如果我用它作为模块它不起作用。

0 个答案:

没有答案