【发布时间】:2014-01-26 22:35:41
【问题描述】:
我正在使用 Fortran 90。我有一个声明为 CHARACTER(20) :: Folds 的字符串,它的值是从一个类似于 x:y:z 的命令行参数分配的,其中 x、y 和 z 都是整数。然后我需要从该字符串中挑选出数字并将它们分配给适当的变量。这就是我尝试这样做的方式:
i=1
do j=1, LEN_TRIM(folds)
temp_fold=''
if (folds(j).neqv.':') then
temp_fold(j)=folds(j)
elseif (i.eq.1) then
read(temp_fold,*) FoldX
i=i+1
elseif (i.eq.2) then
read(temp_fold,*) FoldY
i=i+1
else
read(temp_fold,*) FoldZ
endif
enddo
编译时出现错误:
unfolder.f90(222):错误 #6410:此名称尚未声明为数组或函数。 [折叠]
[stud2@feynman vec2ascii]$ if (folds(j).neqv.':') 然后 意外标记“j”附近的语法错误 [stud2@feynman vec2ascii]$ --------^
unfolder.f90(223):错误 #6410:此名称尚未声明为数组或函数。 [TEMP_FOLD]
[stud2@feynman vec2ascii]$ temp_fold(j)=folds(j)
意外标记“j”附近的语法错误
如何提取这些数字?
【问题讨论】:
-
我可以建议您使编译器输出更清晰,以造福后代吗?我本来可以试一试的,但最好做到完全正确。
标签: arrays string integer fortran