由于 Fortran 子例程需要声明所有内容,因此我们无法轻松编写具有与print
陈述。
在整个代码中,我们有 print 语句,每个语句都有多个 if 语句来处理并行处理和所选的调试输出模式。打印许多不同类型、不同格式的变量,包括带有各自 do 循环的矩阵。
除了代表其调试模式的一个整数之外,我们只想像平常一样编写一条打印语句,然后找到一种方法来包含每个语句的所有适当的 if 语句。尝试使用子例程来实现这一点可以通过通用接口来实现,但需要大量的接口案例来覆盖所有可能的输入安排。然而,通过预处理替换,这要简单得多。我错过了一些非常有用的东西吗?
您可能会发现有用的一种设备,请使用内在write
内部到字符串,然后将字符串传递给调试处理子例程,例如:
character(len=100) :: string
...
write(string,*)"var1:",var1,"var2:",var2
call debugout(string,debugflags)
然后在子例程中,您可以使用开关来决定如何处理字符串。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)