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

标签 integer fortran variable-length

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

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

进一步来说:

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

其中,radius 和 p_o_i 由用户先前指定。

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

我一直在浏览函数here但运气不佳。谢谢您的帮助。

最佳答案

感谢您的回复!我承认这个问题具有误导性,因为它特别要求一个内在的 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 所建议的.

关于integer - Fortran - 整数长度/使用的位置数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25366298/

相关文章:

java - 将字符串子集转换为数组变量的最佳方法是什么?

java - 如何测试多个输入以检测负数,同时记录哪些输入为负数?

php - 通过 PHP 的 Unpack 函数读取结构中的结构

delphi - 实现可变长度数组的最佳方法是什么?

inheritance - Fortran 预处理器指令用法

html - 在没有大小的相对 div 内居中文本

c - sizeof(int) 是 4 个字节,但只写了两个

integer - 将 GUID 转换为整数 Powershell?

macos - 为什么我升级到 OSX Yosemite 后不能用 gfortran 编译? gfortran 错误 : libgfortran. 规范:没有这样的文件或目录

fortran - 如何初始化两个不同的黑色上下文?