这是子程序strlen
subroutine strlen(string,i1,i2)
character string*(*)
do 10 i=len(string),1,-1
if(string(i:i).ne.' ')then
i2=i
goto 11
endif
10 continue
11 do 20 i=1,len(string)
if(string(i:i).ne.' ')then
i1=i
return
endif
20 continue
return
end
主要
if(nfil.lt.0)then
call strlen(cpar,i1,i2)
open(unit=10,file=cpar(i1:i2),status='old')
如果声明了cpar 字符cpar *(*)
是否存在关于要正确打开的cpar名称的任何规则或限制?
我的hx263on.sens(cpar)无法读取。为什么?
答案 0 :(得分:1)
该函数只查找不是空格的第一个和最后一个字符。这些内容以i1
和i2
的形式返回。 cpar(i1:i2)
应与Fortran 90中的adjustl(trim(cpar))
相同。
这不是必要的。无论如何,Fortran修剪传递给打开的文件名。不支持以空格结尾的文件名。
如果无法打开文件,则可能不存在或包含操作系统不喜欢的某些特殊字符。或者它实际上包含的东西比你想象的要多。也许变量太短或类似的东西。通过打印来验证cpar
和cpar(i1:i2)
的值。