在一个.f文件有代码,这是否:

real Bob, avar
...
avar = Bob( 8.3 )
...

鲍勃似乎是一个功能,但它是在文件作为一个真正的开始声明。

然后有具有给Bob的基准的.D文件。我也知道阿瓦尔认为,出现内插的值,问题是插值并不总是正确的。

Bob    John      35
-17.     -16.     -15.     -14.     -13.     -12.     -11.     -10.     -9.      -8.  
-7.      -6.      -5.      -4.      -3.      -2.      -1.       0.       1.       2.5  
 3.       4.       5.       6.5      7.       8.       9.       10.      11.      12.  
 13.      14.      15.      16.      17.  
 0.001    0.001    0.041    0.098    0.155    0.213    0.27     0.327    0.384    0.441   
 0.499    0.556    0.613    0.670    0.728    0.785    0.844    0.904    0.965    1.058   
 1.089    1.152    1.216    1.314    1.347    1.413    1.479    1.543    1.609    1.670   
 1.733    1.799    1.860    1.925    1.937 

这是所有遗留代码。我没有写它。我试图修复它。我的问题由以下部分组成:

  

这是什么做什么,怎么样?什么是.D文件?

我认为这是试图插,但我不认为你可以用FORTRAN 77这样做(以这种方式)。

有帮助吗?

解决方案 3

很抱歉的混乱。答案是系统使用专有的宏C到FORTRAN程序,做插值。这发生在make文件。我发现,通过看一些模糊的文档。谢谢大家对他们的意见。对不起再次为它的简洁性。我是不是很困难。它混淆了我与我所看到的为好。有时很难与来自不同公司购买了30岁的遗留代码工作。我是新来FORTRAN,所以我想我是没有看到的东西,我应该已经看到像一个语言功能,我不太熟悉。我觉得愚蠢。它没有使我深入挖掘。学过的知识。

其他提示

它看起来像Bob是一个功能,即是越来越传递给它的真实值8.3,并且returniung存储在阿瓦尔真实。但是,这一切都可以从已发布的代码中收集。

貌似.D文件包含一些数据,几乎是线性的。貌似实验数据。 35你有点数,则有x,然后在y

鲍勃和约翰似乎像是某种串标记或标识符。他们可能已经习惯在某个地方的代码来决定如何处理数据,或者它们代表什么样的数据。

鲍勃似乎是一个功能。请注意,您必须声明一个函数的两种方式。

real function foo(a)
    implicit none
    real, intent(in) :: a
    foo = 3.0+a
end function

program test
   implicit none
   real foo, bar, a, b
   bar(b) = b+5.0

   a=foo(5.3)
   print *, a, bar(2.3)
end program

一种是明确的情况下(富),在这里通过分配返回的值以命名为函数本身的变量。 另一种情况是“隐性”(不知道正式名称),见吧。声明它作为一个“阵列”,然后表达出来的行为方式。看到它很少,但它是一个非常紧凑的写作。

一个.D文件可能是abreviating .dat文件的一些涂料的方法。他懒得输入两个额外字符。老时间程序员们这样。

它看起来像你有在图形上,其中“鲍勃”是X轴跨越从-17至17和一个简单的内插函数“约翰”是在Y方向对应于所述鲍勃点的一组值。 (不知道什么35是用于,因为仅示出了32个点。)

代码是要求:对于在X轴上,8.3,这将是在Y方向上内插的值的值。在直线的形式,它会返回的1.3倍1.413和1.479之间的区别。这可能是一个更高阶的内插器,但你不显示的代码,所以我想最简单的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top