我需要帮助将代码形式的 Fortran 转换为 C

I need help converting a code form Fortran to C

我是编程新手。我需要将 Fortran 95 文件转换为 C 文件。在 Fortran 文件的开头,我有一个模块,其中包含一堆在各种函数中使用的变量(不要介意注释):

MODULE data

IMPLICIT NONE
SAVE

DOUBLE PRECISION, PARAMETER :: tmax_dsmc  = 450.D0     ! durata simulazione
DOUBLE PRECISION, PARAMETER :: tim_dsmc   = 150.D0     ! istante inizio campionamento
DOUBLE PRECISION, PARAMETER :: dt_dsmc    = 0.05D0     ! passo temporale
DOUBLE PRECISION, PARAMETER :: alpha_dsmc = 0.02D0     ! gradiente velocita' 

有没有办法在 C 中复制它?我知道我可以使用命令 #define variable x 但我不知道它是否正确;我的目标是在代码中的某处定义这些常量,这样如果我修改其中一个,程序的每个部分都可以知道我分配的新值。当然,我可以在代码中的每个函数中定义每个常量,但这会浪费大量时间。

如果要在C中定义常量,可以使用#define PI 3.1415926。如果你不想在任何地方重复这个,那么你可以像这样使用 #includes:

首先是 header(在名为 MyConsts.h 的文件中):

/* My constants */
#define PI 3.1415926

然后是一个模块(在某些 .c 文件中):

/* A module */
#include "MyConsts.h" // include here the contents of the file
...
double p = 2*PI*r;
...

和另一个(在另一个 .c 文件中):

/* Another module */
#include "MyConsts.h" // include here the contents of the file
...
double s = PI*r*r;
...

例如,如果您通过在 Makefile 中描述依赖关系来使用干净的编译过程,那么在 MyConsts.h 中所做的每个修改都将反映到 object 模块中。