Fortran - 整数长度/使用的位置数

时间:2014-08-18 14:57:03

标签: integer fortran variable-length

这可能是一个非常基本的问题,但我似乎无法在谷歌或通过搜索此论坛找到答案(很可能是由于该问题的措辞不佳)。

我正在寻找一个内在的Fortran函数来给我一个整数使用的位置数。我的意思是,如果整数是12543,那么使用的位置数是5(它将始终为正)。我想要的原因是,当使用带有格式化输出的WRITE语句时,我可以指定" w " in" Iw "并尽可能使用最小间距。

更具体地说:

WRITE(*,"(/ A,Iw,1X,A,Iw)") "All particles within radius ",radius, "of particle index number", p_o_i

之前用户指定 radius p_o_i

我可以写一些东西来轻松实现这一点,但我认为必须有一个能够实现这一目标的内在功能。

我一直在查看函数here,但没有太多运气。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

感谢您的回复!我承认这个问题具有误导性,因为它特别要求一个固有的Fortran函数给出一个整数使用的位置数,而这在一开始并不是严格要求的。此外,普遍的共识似乎是,这不存在。

根据francescalusHigh Performance Mark的建议,为了确保可能的最小间距用于整数," I0 "应该使用编辑说明。所以对于前面的例子,这将是:

WRITE(*,"(/ 1X, A, I0, A, I0)") "All particles within radius ",radius, " of particle index number ", p_o_i

你真的需要找到"字符的数量"在整数(由于某些其他原因)中,最好的建议响应似乎是使用log10函数,如steabert所建议。