我是网络开发的新手,我一直听到使用Firebug的建议.问题是,我看不到Firebug对检查元素功能的任何优势(我使用Firefox 24).我错过了什么吗?
我害怕习惯一种工具,然后陷入困境,切换到更好的工具.请告知一种工具或另一种工具的优越特性.
我/* block comment */
在C++中看到了块注释.我知道我可以使用!
或进行行注释c
,但在Fortran中是否有任何块注释选项?
我开发了一个Fortran代码,它具有以下特征:
代码变得非常大.尽管在这个阶段我试图得到正确的答案,但仍需要执行代码的速度.
我正在编写带有标签的文本日志文件,例如ERROR: message
或者INFO: message
到目前为止.但是写太多信息会减慢代码的速度.我知道在Java开发中我们使用log4j库来高效地编写日志文件,我们可以打开或关闭各种级别的日志记录.因此,一旦代码干净,我们就可以关闭低级日志并保留高级日志.
我想知道其他程序员在Fortran 90+中处理这个问题的最佳方法是什么.
我试图删除目录中的文件使用rm
和不删除脚本中的目录本身.我看到的示例只在目录本身中执行此操作,而我想在不导航的情况下执行此操作.
我试过了
rm "$(dirname $1)/filetokeep/*"
Run Code Online (Sandbox Code Playgroud)
但它不起作用.有帮助吗?
我正在为Fortran代码添加一个模块,并遇到了以下问题.我有一个派生数据类型Info
,其中包含几个其他变量,其中包括一个4D指针数组(它是一个水文代码,所以它是3个空间组件和1个可变组件).为了使我的子程序更容易阅读,我只需制作一个指针q
并指向Info%q
,如下所示:
real,pointer::q(:,:,:,:)
q=>Info%q
...
some work on q
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是:我deallocate(q)
以前应该使用nullify(q)
吗?或者,因为q
指向代码中其他地方必需的数组,我应该使用nullify
吗?
谢谢你的帮助.
我注意到如果我使用integer(16)
变量,当我使用时print
,输出包含预期的确切空格数.因此,当我使用时(有些人可能会认识到项目的euler问题)
implicit none
integer(16)::sum_sq,sq_sum,diff,i
sum_sq=0;sq_sum=0;
do i=1,100
sum_sq=sum_sq+i*i
sq_sum=sq_sum+i
enddo
diff=abs(sq_sum**2-sum_sq)
print *, "The difference is", diff
Run Code Online (Sandbox Code Playgroud)
我明白了
The difference is 25164150
Run Code Online (Sandbox Code Playgroud)
作为输出,但当我使用integer(8)
或integer
为变量,我得到
The difference is 25164150
Run Code Online (Sandbox Code Playgroud)
作为输出.这种情况发生在有和没有-m64
标志的情况下,只有在gfortran上(我的ifort似乎不接受kind=16
,一个单独的问题要处理,但返回带有空格的输出integer(8)
).
有谁知道为什么会这样?
我想使用deSolve R包中的显式Runge-Kutta方法ode45(别名rk45dp7)来解决具有可变步长的ODE问题.
根据deSolve文档,可以使用ode45方法而不是等距时间步长为rk求解器函数使用自适应或可变时间步长,但我不知道如何做到这一点.
rk函数被调用如下:
rk(y, times, func, parms, rtol = 1e-6, atol = 1e-6, verbose = FALSE, tcrit = NULL,
hmin = 0, hmax = NULL, hini = hmax, ynames = TRUE, method = rkMethod("rk45dp7", ... ),
maxsteps = 5000, dllname = NULL, initfunc = dllname, initpar = parms, rpar = NULL,
ipar = NULL, nout = 0, outnames = NULL, forcings = NULL, initforc = NULL, fcontrol =
NULL, events = NULL, ...)
Run Code Online (Sandbox Code Playgroud)
与 …
从我的Perl程序,我试图运行另一个用C语言编写的命令system
.该命令需要几个参数:字符串,浮点数,两个整数,一对浮点数和另一个字符串.我正在运行这个
my $arg1="electron";
my $arg2=0.511;
# more definitions
system("./fermions $arg1 $arg2 $arg3 $arg4 " .
"$arg5 $arg6 \"string\" > outfile.out");
Run Code Online (Sandbox Code Playgroud)
我需要改变$arg5
几个不同的浮点值.我通过设置$arg5="1.0e5"
然后在for循环中运行if语句来将其更改为字符串.我希望能够像花车那样做,并尝试
system("./fermions $arg1 $arg2 $arg3 $arg4 " .
"%e $arg6 \"string\" >outfile.out",
$arg5);
Run Code Online (Sandbox Code Playgroud)
但那没用.还有另一种选择,或者我的if语句选项是唯一的吗?
我正在尝试阅读一些Fortran代码,但有一些我无法理解的数组子集操作,就像这个
假设 n = 3
和阵列
INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(12)
REAL(KIND=dp) :: P(n+1),P0(n)
Run Code Online (Sandbox Code Playgroud)
这条线究竟做了什么?
DO i=1,n-1
…..
P(3:i+2) = P(3:i+2) - i*P0(1:i) / (i+1)
….
END DO
Run Code Online (Sandbox Code Playgroud)
它是嵌套循环吗?像j
来自3
于i+2
对P
和k
从1
到i
的P0
?
提前致谢.