【发布时间】:2017-08-19 16:26:07
【问题描述】:
我正在尝试将在 FORTRAN 77 中声明和初始化的三维数组编码为 C# 中的等价物。
在做了一些研究后,我发现 FORTRAN 77 遵循列主要方法。我仍然无法想象如何在 C# 中表示在 FORTRAN 77 中初始化的 3 维数组。这是声明和初始化 3 维数组的 FORTRAN 77 代码:
real*4 temperature_factors(2,6,9)/
c .000,.054, .055,.070, .071,.085, .086,.105, .106,.200,
c -1.0,-1.0,
c -1.0,-1.0, -1.0,-1.0, .125,.164, .165,.204, .205,.404,
c .405,.604,
c 0.0,12.0, 12.1,35.4, 35.5,55.4, 55.5,150.4, 150.5,250.4,
c 250.5,500.4,
c 0.0,54.0, 55.0,154.0, 155.0,254.0, 255.0,354.0, 355.0,424.0,
c 425.0,604.0,
c 0.0,4.4, 4.5,9.4, 9.5,12.4, 12.5,15.4, 15.5,30.4,
c 30.5,50.4,
c .000,.035, .036,.75, .76,.185, -1., -1., -1., -1.,
c -1., -1.,
c -1., -1., -1., -1., -1., -1.,.186,.304, .305,.604,
c .605,1.004,
c -1.0,10.0, -1.0,-1.0, -1.0,-1.0, -1.0,-1.0, -1.,-1.0,
c -1.0,10.0,
c .000,.053, .054,.100, .101,.360, .361,.649, .650,1.249,
c 1.250,2.049/
我最初尝试在 C# 中表示上述内容:
double[, ,] temperature_factors = new double[2, 6, 9]
{
{
{0.000, 0.054, 0.055, 0.070, 0.071, 0.085, 0.086, 0.105, 0.106,},
{0.200, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 0.125, 0.164},
{0.165, 0.204, 0.205, 0.404, 0.405, 0.604, 0.0, 12.0, 12.1},
{35.4, 35.5, 55.4, 55.5, 150.4, 150.5, 250.4, 250.5, 500.4},
{0.0, 54.0, 55.0, 154.0, 155.0, 254.0, 255.0, 354.0, 355.0},
{424.0, 425.0, 604.0, 0.0, 4.4, 4.5, 9.4, 9.5, 12.4}
},
{
{12.5, 15.4, 15.5, 30.4, 30.5, 50.4, 0.000, 0.035, 0.036},
{0.75, 0.76, 0.185, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0},
{-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 0.186, 0.304, 0.305},
{0.604, 0.605, 1.004, -1.0, 10.0, -1.0, -1.0, -1.0, -1.0},
{-1.0, -1.0, -1.0, -1.0, -1.0, 10.0, 0.000, 0.053, 0.054},
{0.100, 0.101, 0.360, 0.361, 0.649, 0.650, 1.249, 1.250, 2.049}
}
};
但显然这是不正确的。谁能帮我将用 FORTRAN 77 编写的 3 维数组初始化为 C# 中的等价物。
谢谢。
【问题讨论】: