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



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

我正在寻找一个内在的Fortran函数来给我一个整数所使用的位置的数量。我的意思是,如果一个整数是12543,那么使用的位置数是5(它总是正的)。我希望这样做的原因是,当使用带有格式化输出的WRITE语句时,我可以在"Iw"中指定"w",并使用尽可能小的间距。

更具体地说:

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

其中radiusp_o_i由用户在前面指定。

我可以很容易地写一些东西来实现这一点,但我认为必须有一个内在的函数来实现这一点。

我一直在浏览这里的函数,但没有多少运气。谢谢你的帮助。

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

根据francescalus和High Performance Mark的建议,为了确保整数使用最小的间距,应该使用"I0"编辑描述。对于前面的例子,这是:

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

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

相关内容

  • 没有找到相关文章

最新更新