hpa 发表于 2020-3-8 17:10:44

出现Error: Symbol at (1) has no IMPLICIT type

本帖最后由 kyra 于 2020-3-9 15:22 编辑

subroutine day1year()
implicit none
integer :: year , mon , days
    common year , mon
    Integer :: DaysInMonth(12) =
    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) =
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:33

各个子程序,变量不通用。你的就是你的,我的不是你的。

hpa 发表于 2020-3-9 12:58:31

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

好的,谢谢
页: [1]
查看完整版本: 出现Error: Symbol at (1) has no IMPLICIT type