我被给了一些Fortran代码(我相信90),我试图找出它的作用。我不知道Fortran,但知道Perl。Fortran代码是做什么的?
这里是一个片段,我已经无法弄清楚:
fmly='I:\CEX\Fmly'
fmlyfile=fmly(1:23)//yearqtr(qtrcnt)
open(unit=13,file=fmlyfile)
我知道//
是连接运算符,但我感到困惑的是什么fmly(1:23)
部分在做什么。
我被给了一些Fortran代码(我相信90),我试图找出它的作用。我不知道Fortran,但知道Perl。Fortran代码是做什么的?
这里是一个片段,我已经无法弄清楚:
fmly='I:\CEX\Fmly'
fmlyfile=fmly(1:23)//yearqtr(qtrcnt)
open(unit=13,file=fmlyfile)
我知道//
是连接运算符,但我感到困惑的是什么fmly(1:23)
部分在做什么。
fmly(1:23)
正在将字符串fmly
从位置1
切片到位置23
。请注意,在Fortran中,字符串索引从1
开始,而不是从0
开始。 fmly(1:23)
相当于fmly(:23)
。
string(A:B)
是一个子串,选择字符串A到B字符串string
。 fmly
使用少于23个字符进行初始化,因此尾随字符将为空白。之后,它将与字符串数组yearqtr
(或可能是字符串值函数yearqtr)的元素连接。
'yearqtr(qtrcnt)'也可能是对返回字符串的外部函数的调用。 – 2012-08-07 07:37:41
'yearqtr(qtrcnt)'没有正确的形式作为符合字符变量切片的(符合标准的)引用。即使只需要1个字符的切片,也需要像'yearqtr(qtrcnt:qtrcnt)'这样的东西。 – 2012-08-07 09:51:08
@Hristo Iliev对于yearqtr(qtrcnt)的替代可能性是正确的。子字符串被语法排除。变量名称提示“年度季度(季度计数)”,这对四元素阵列来说很容易。 – 2012-08-08 07:36:35
数组索引从“1”开始,除非该数组是用其他边界声明的,例如, '类型,维度(-10:10):: array'。 – 2012-08-07 07:36:53
@HristoIliev固定。 – milancurcic 2012-08-07 15:27:29