Fortran 斯特伦到底在干什么?
这是子程序strlenFortran 斯特伦到底在干什么?,fortran,Fortran,这是子程序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(stri
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)无法读取。为什么?该函数只查找第一个和最后一个字符,而不是空格。它们作为
i1
和i2
返回<代码>cpar(i1:i2)应与Fortran 90中的调整(微调(cpar))
相同
这是不必要的。Fortran会修剪传递给open的文件名。不支持以空格结尾的文件名
如果无法打开该文件,则该文件可能不存在或包含操作系统不喜欢的某些特殊字符。或者它实际上包含了你想象不到的东西。可能变量太短或者类似的东西。通过打印来验证
cpar
和cpar(i1:i2)
的值。在主程序中cpar
需要在cpar*(*)
之外进行声明。你能找到吗?cpar等于“hx263on.sens(cpar)”还是“hx263on.sens”,或者实际上等于什么?多长时间?您是如何打印的?@VladimirF否,实际上我已将文件命名为hx263on.sens.I使用此文件作为输入文件,但无法读取。hx263on.sens.I
与hx263on.sens(cpar)
或hx263on.sens
不同,这并不重要。