Fortran Coder

标题: 出现Error: Symbol at (1) has no IMPLICIT type [打印本页]

作者: hpa    时间: 2020-3-8 17:10
标题: 出现Error: Symbol at (1) has no IMPLICIT type
本帖最后由 kyra 于 2020-3-9 15:22 编辑

[Fortran] 纯文本查看 复制代码
subroutine day1year()
implicit none
integer :: year , mon , days
    common year , mon
    Integer :: DaysInMonth(12) = [31,28,31,30,31,30,31,31,30,31,30,31]
    if ( ( (MOD(year,4)==0).and.(MOD(year,100)/=0) ) .or. (mod(year,400)==0) ) then
      DaysInMonth(2) = 29
    else
      DaysInMonth(2) = 28
    end if
  days = sum( DaysInMonth )
end subroutine day1year
subroutine dayfromyear( year , mon , day )
implicit none
integer :: day , i , daylast
Integer :: DaysInMonth(12) = [31,28,31,30,31,30,31,31,30,31,30,31]
integer :: k
integer :: years(51) = (/(k,k=1957,2007)/)
integer :: sumday = 0
  do i=1,k,1
  call day1year (years(i))
  sumday = sumday + days
  end do
daylast = sum( DaysInMonth(:mon-1) ) + day +sumday
end subroutine

出现Error: Symbol 'year' at (1) has no IMPLICIT type
       Error: Symbol 'mon' at (1) has no IMPLICIT type
      Error: Symbol 'days' at (1) has no IMPLICIT type
在第一个子程序中已经声明了这三个变量,并且设为了全局变量,为什么到第二个子程序中还是显示没有声明类型。


作者: li913    时间: 2020-3-9 12:30
各个子程序,变量不通用。你的就是你的,我的不是你的。
作者: hpa    时间: 2020-3-9 12:58
li913 发表于 2020-3-9 12:30
各个子程序,变量不通用。你的就是你的,我的不是你的。

好的,谢谢





欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2