Fortran中,实型常量后面带个括号是什么含义.括号内是个-查字典问答网
分类选择

来自安森建的问题

  Fortran中,实型常量后面带个括号是什么含义.括号内是个整数.比如:real*8scalescale(3)=552013年12月7日补充:较为完整的源代码↓real*8scalecommon/scales/scale(maxvar)nvar=0doi=1,nnvar=nvar+1scale(nvar)

  Fortran中,实型常量后面带个括号是什么含义.

  括号内是个整数.

  比如:

  real*8scale

  scale(3)=55

  2013年12月7日补充:

  较为完整的源代码↓

  real*8scale

  common/scales/scale(maxvar)

  nvar=0

  doi=1,n

  nvar=nvar+1

  scale(nvar)=12.0d0*xbox

  nvar=nvar+1

  scale(nvar)=12.0d0*ybox

  nvar=nvar+1

  scale(nvar)=12.0d0*zbox

  enddo

  源代码是这样的,我所不理解的便是循环体了.nvar是整型变量,xbox一类的是实型变量.

  代码很简单,有劳了.

7回答
2019-12-25 13:20
我要回答
请先登录
刘海妹

  这样的写法是不正确的.

  如果是这样:

  real*8scale

  b=scale(3)

  这还有可能,scale是一个函数.b=scale(3)的意思是调用scale函数,其参数是3,返回值赋给b

2019-12-25 13:25:12
安森建

  scale的定义不是real吗,那应该是实型常量呀,怎么又成为函数了呢?希望您能继续解答。

2019-12-25 13:29:50
刘海妹

  real*8scale有可能是定义实型变量。(注意不是常量,是变量)也有可能是定义一个外部函数,该函数名字叫scale,返回值是real*8类型的。比如real*8functionscale(x)endfunction你先确定一下scale(3)出现在等号左边还是右边??另外,语法里规定了一个叫scale的函数,但这个函数是两个参数,而不是一个。你确定是叫scale,而不是你随便举的例子?

2019-12-25 13:33:34
安森建

  我有一点儿编程基础,可以确认scale(3)是在等号左边的。我源代码里括号内只有一个整型变量,如果是函数,也应当是两个参数,您说的没错。只是现在还不理解为何会这么写,不明白这样如何赋值。

2019-12-25 13:36:09
刘海妹

  这是错误的写法。如果您还有疑问,请给出比较完整的代码。

2019-12-25 13:37:12
安森建

  您好,由于追问框的字数限制,我将代码补充进问题说明了,谢谢您。

2019-12-25 13:39:04
刘海妹

  real*8scalecommon/scales/scale(maxvar)这里说明scale是数组,它的大小是maxvar。common语句目前不推荐使用了。maxvar在前面应该定义过,是parameter常量。注意scale是数组,而不是单变量。nvar=0doi=1,nnvar=nvar+1scale(nvar)=12.0d0*xboxnvar=nvar+1scale(nvar)=12.0d0*yboxnvar=nvar+1scale(nvar)=12.0d0*zboxenddo这个循环的意思就是,让scale(1),scale(4),scale(7)....等于12*xbox让scale(2),scale(5),scale(8)....等于12*ybox让scale(3),scale(6),scale(9)....等于12*zbox也就是xyzxyzxyz这样循环出现。这个写法其实就目前来说就太麻烦了。很简单的句子就可以完成:scale(1::3)=12.0d0*xboxscale(2::3)=12.0d0*yboxscale(3::3)=12.0d0*zbox

2019-12-25 13:41:57

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •