fortran 中函数参数的语法错误
Syntax error in function arguments in fortran
我有一个子例程文件如下
subroutine grids(Ngrids,gridsize,boundx,boundy,boundz,occmatrix,myid)
implicit NONE
integer i,j,k,Ngrids, occmatrix(14,14,10)
integer locx,locy,locz,myid
double precision gridsize,boundx,boundy,boundz
do i = 1, 14
do j = 1, 14
do k = 1, 10
occmatrix(i,j,k) = 0
enddo
enddo
enddo
open (13, file = 'grid_data.9deg')
write(*,'(A,i2)'),' READING GRID FILE ON PROC.....',myid
read(13,*) Ngrids,gridsize
read(13,*) boundx,boundy,boundz
do i = 1, Ngrids
read(13,*) locx, locy, locz
occmatrix(locx,locy,locz) = 1
enddo
close(13)
return
end
编译时出现如下语法错误
subroutine grids(Ngrids,gridsize,boundx,boundy,boundz,occmatrix,my
1
Error: Unexpected junk in formal argument list at (1)
在
之前它曾经 运行
我相信,你的电话太长了。您是否添加了新参数?您的代码看起来像自由形式,但可能是编译器由于文件名中的 .f 后缀或类似内容而尝试应用固定形式。说服编译器采用自由格式的源代码(通过编译器选项或通常为 .f90 后缀)。
即使在自由格式的文件中,你的行宽也是有限的,你应该打破更长的行,例如:
subroutine grids( Ngrids,gridsize,boundx,boundy,boundz, &
& occmatrix,myid )
如果您坚持使用固定格式,则需要在第 6 列中用非空白字符指示续行。
这是固定形式的样子:
subroutine grids(Ngrids,gridsize,boundx,boundy,boundz,
& occmatrix,myid)
请不要再使用固定格式了!相反,将您的文件更改为以 .f90 结尾,大多数编译器都可以识别自由格式代码。
我有一个子例程文件如下
subroutine grids(Ngrids,gridsize,boundx,boundy,boundz,occmatrix,myid)
implicit NONE
integer i,j,k,Ngrids, occmatrix(14,14,10)
integer locx,locy,locz,myid
double precision gridsize,boundx,boundy,boundz
do i = 1, 14
do j = 1, 14
do k = 1, 10
occmatrix(i,j,k) = 0
enddo
enddo
enddo
open (13, file = 'grid_data.9deg')
write(*,'(A,i2)'),' READING GRID FILE ON PROC.....',myid
read(13,*) Ngrids,gridsize
read(13,*) boundx,boundy,boundz
do i = 1, Ngrids
read(13,*) locx, locy, locz
occmatrix(locx,locy,locz) = 1
enddo
close(13)
return
end
编译时出现如下语法错误
subroutine grids(Ngrids,gridsize,boundx,boundy,boundz,occmatrix,my
1
Error: Unexpected junk in formal argument list at (1)
在
之前它曾经 运行我相信,你的电话太长了。您是否添加了新参数?您的代码看起来像自由形式,但可能是编译器由于文件名中的 .f 后缀或类似内容而尝试应用固定形式。说服编译器采用自由格式的源代码(通过编译器选项或通常为 .f90 后缀)。
即使在自由格式的文件中,你的行宽也是有限的,你应该打破更长的行,例如:
subroutine grids( Ngrids,gridsize,boundx,boundy,boundz, &
& occmatrix,myid )
如果您坚持使用固定格式,则需要在第 6 列中用非空白字符指示续行。
这是固定形式的样子:
subroutine grids(Ngrids,gridsize,boundx,boundy,boundz,
& occmatrix,myid)
请不要再使用固定格式了!相反,将您的文件更改为以 .f90 结尾,大多数编译器都可以识别自由格式代码。