176 | do i = 1, size(graph, 1) | 1 Error: Symbol ‘i’ at (1) has no IMPLICIT type
时间: 2024-01-23 20:02:33 浏览: 81
Episode 1: Evolution of Databases
这个错误是因为 Fortran90 中默认不支持隐式类型声明,需要使用 `IMPLICIT NONE` 声明变量的类型,或者显式地声明每个变量的类型。
在这个例子中,你可以在子程序的开头添加 `IMPLICIT NONE`,并显式地声明 `i` 的类型,例如:
```
recursive subroutine dfs(graph, visited, node)
implicit none
logical, dimension(:,:), intent(in) :: graph ! 邻接矩阵表示的图
logical, dimension(:), intent(inout) :: visited ! 节点是否已访问的标记
integer, intent(in) :: node ! 当前节点
integer :: i ! 循环计数器
visited(node) = .TRUE. ! 标记当前节点已访问
! 遍历当前节点的邻居节点
do i = 1, size(graph, 1)
if (graph(node, i) .and. (.not. visited(i))) then
call dfs(graph, visited, i) ! 递归地访问邻居节点
end if
end do
end subroutine dfs
```
这样就可以显式地声明 `i` 的类型,避免了隐式类型声明的问题。
阅读全文