Fortran 符号已具有基本类型的字符
我在Fortran 90中有如下代码:Fortran 符号已具有基本类型的字符,fortran,fortran90,gfortran,fortran95,Fortran,Fortran90,Gfortran,Fortran95,我在Fortran 90中有如下代码: PROGRAM TICTACTOE IMPLICIT none character (len=1), DIMENSION(3,3) :: ticTac character :: winner SUBROUTINE CHKOVR(ticTac, over, winner) character (len=1), DIMENSION(3,3) :: ticTac character :: winner logical o
PROGRAM TICTACTOE
IMPLICIT none
character (len=1), DIMENSION(3,3) :: ticTac
character :: winner
SUBROUTINE CHKOVR(ticTac, over, winner)
character (len=1), DIMENSION(3,3) :: ticTac
character :: winner
logical over
END SUBROUTINE CHKOVR
END PROGRAM TICTACTOE
我得到的错误是:
tictactoe.f90:11:2:
SUBROUTINE CHKOVR(ticTac, over, winner)
1
Error: Unclassifiable statement at (1)
tictactoe.f90:12:47:
character (len=1), DIMENSION(3,3) :: ticTac
1
Error: Symbol ‘tictac’ at (1) already has basic type of CHARACTER
tictactoe.f90:13:23:
character :: winner
1
Error: Symbol ‘winner’ at (1) already has basic type of CHARACTER
tictactoe.f90:16:5:
我正在尝试将一些旧的fortran代码转换成更现代的fortran 90
无可否认,我在这一点上不太懂这门语言。在旧代码中,这种东西工作得很好。这里是否将ticTac
视为全局变量,我不应该将其传递给子例程?旧代码是这样做的,但我怀疑我现在拥有的是某种全局变量
还是问题出在其他地方?在定义内部子例程之前,缺少一条
contains
语句。这是行不通的,内部程序的概念直到“最近”才出现。你能仔细看一下运行正常的代码吗,因为子程序可能不在程序内。@francescalus你说得对,在旧程序中,end
在子程序之前。在我的程序中,我将结尾
放在最末尾。这绝对是一个错误。一旦我将end
切换到子例程之前,一切正常!谢谢如果您愿意,可以将此作为答案发布,因为这解决了问题。在定义内部子例程之前,您缺少contains
语句。这是行不通的,内部程序的概念直到“最近”才出现。你能仔细看一下运行正常的代码吗,因为子程序可能不在程序内。@francescalus你说得对,在旧程序中,end
在子程序之前。在我的程序中,我将结尾
放在最末尾。这绝对是一个错误。一旦我将end
切换到子例程之前,一切正常!谢谢如果你愿意的话,可以将此作为答案发布,因为这解决了问题。