精选问答
请问下面这几句FORTRAN语句是什么意思?integer(Ikind),allocatable :: JE(:,:),JN(:,:) 括号中为什么要加一个IKIND?integer(Ikind), intent(out) :: JC(6) 这句话是定义了个啥啊?L=int(PJ(1,I),Ikind) 这句话的INT语句怎么解释额?先谢谢大家了!

2019-04-01

请问下面这几句FORTRAN语句是什么意思?
integer(Ikind),allocatable :: JE(:,:),JN(:,:) 括号中为什么要加一个IKIND?
integer(Ikind), intent(out) :: JC(6) 这句话是定义了个啥啊?
L=int(PJ(1,I),Ikind) 这句话的INT语句怎么解释额?
先谢谢大家了!
优质解答
lkind 在前面定义了,肯定是一个 integer 的 parameter 常量.
它用来表示整数的 kind.
所谓 kind ,也就是整型的长度.具体值因不同编译器而不同.大多数主流编译器,如果 kind 是 2,表示短整型,如果是 4,则表示整型(32位).如果 kind 是 8 则表示长整型.
如果写成
integer(2)
integer(4)
integer(8)
或许你会更熟悉它们一些.
之所以用 lkind 代替,是为了以后修改程序方便.试想,如果你要把整个程序的 integer(4) 改为 integer(8),是具有较大工作量的,而用 lkind代替,以后只需要修改 lkind 的值既可.
另外,如果你的代码更换为其他编译器,正如我上面所说,不同编译器,对 kind 的具体值规定不同,也需要对 lkind 进行修改.
L=int(PJ(1,I),Ikind) 也是处于同样的目的.int 函数接收第二个参数来确定转换的 kind
integer(Ikind),intent(out) ::JC(6) 这句话,我相信你能理解.定义一个kind为 lkind 的整型数组,名字叫 JC,大小是 6.
intent(OUT) 可能你理解有困难,他表示,JC 这个数组,出现在函数虚参里,而且作为该函数的一个输出参数.在该函数返回时,JC 必须赋值(因为它是一个输出参数)
lkind 在前面定义了,肯定是一个 integer 的 parameter 常量.
它用来表示整数的 kind.
所谓 kind ,也就是整型的长度.具体值因不同编译器而不同.大多数主流编译器,如果 kind 是 2,表示短整型,如果是 4,则表示整型(32位).如果 kind 是 8 则表示长整型.
如果写成
integer(2)
integer(4)
integer(8)
或许你会更熟悉它们一些.
之所以用 lkind 代替,是为了以后修改程序方便.试想,如果你要把整个程序的 integer(4) 改为 integer(8),是具有较大工作量的,而用 lkind代替,以后只需要修改 lkind 的值既可.
另外,如果你的代码更换为其他编译器,正如我上面所说,不同编译器,对 kind 的具体值规定不同,也需要对 lkind 进行修改.
L=int(PJ(1,I),Ikind) 也是处于同样的目的.int 函数接收第二个参数来确定转换的 kind
integer(Ikind),intent(out) ::JC(6) 这句话,我相信你能理解.定义一个kind为 lkind 的整型数组,名字叫 JC,大小是 6.
intent(OUT) 可能你理解有困难,他表示,JC 这个数组,出现在函数虚参里,而且作为该函数的一个输出参数.在该函数返回时,JC 必须赋值(因为它是一个输出参数)
相关问答