在c#中转换Fortran头文件.INC的最佳方法是什么?

时间:2013-09-17 08:37:17

标签: c# c#-4.0 fortran fortran90

我目前正致力于c#project&我遇到了一些扩展名为.INC的头文件 FOLL。是头文件的示例

**     MAIN.INC
   INTEGER uid
   INTEGER MathsMarks
   INTEGER AWAMarks
   INTEGER ScienceMarks
   LOGICAL isStudent
   REAL*8 percentage
   REAL avg
   CHARACTER*2 sName
   LOGICAL*1 sUpdateStat
   DOUBLE PRECISION d_var
   complex*8 c8_var

任何人都可以指导我使用c#

转换此头文件(.INC)的最佳策略

1 个答案:

答案 0 :(得分:1)

你知道怎么使用main.inc吗?它是出现在多个文件中还是只出现在一个文件中?是否存在与这些变量名相关联的公共块?

如果没有与之关联的公共块,则可能是一堆未共享的常用局部变量。

如果存在与之关联的公共块,则它们是全局变量。如果它已经正确完成,那么公共文件也应该在inc文件中。在C#中,如果所有内容都在同一个类中,那么这些将是类级声明。

翻译

  • Integer = int
  • logical = bool
  • real * 4或real = float
  • real * 8 = double
  • parameter = const
  • dimension是一个数组声明。记住数组默认从1开始,但可以在声明中重写。他们可以从任何数字开始。例如,尺寸(-23:10)将从-23开始。
  • 等同是一个联盟
  • character * n是n个字符的字符串,空格填充,非空终止

[EDITED] 最初,在初始翻译中,一切都是公开的和静态的,直到您弄清楚程序正在做什么。一旦你完成了,它就可以重构。

如果将其命名为common,则将其放在与命名common相同名称的静态类中。如果它是未命名的公共,那么将它作为静态声明放在主类中。通常情况下,如果某个东西在一个共同的块中,它会在各个函数之间共享,所以不要把它放在一个结构中。

等同是一个令人讨厌的:取决于它的使用方式。

  • 有时它用于将数据传递给例如传递类的例程。在这种情况下,您可以省略等效性并将结构声明为类。
  • 有时它被用作全局结构来移动整个地方的值。你必须看这个。它通常是一个巨大的双精度数组。每个成员都等同于完全不同的东西 - 一些整数,一些双精度,一些字符。它们总是具有相同的索引,并且始终具有相同的名称。
  • 有时它用于转换
  • 有时它们用于将数组的一部分映射到另一部分。