我需要帮助将代码形式的 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
。如果你不想在任何地方重复这个,那么你可以像这样使用 #include
s:
首先是 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 模块中。
我是编程新手。我需要将 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
。如果你不想在任何地方重复这个,那么你可以像这样使用 #include
s:
首先是 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 模块中。