确保Fortran公共变量在第三方库中初始化为零

时间:2018-04-02 20:26:40

标签: fortran

我正在使用C ++的旧Fortran库。该库具有debug.h,其中定义了许多公共块int变量,这些变量在整个库中用于控制终端输出。

问题在于,当我在HPC群集上使用gfortran 4.8.5编译此库时,这些常见块变量不为零。虽然我在macOS或Ubuntu上使用gfortran 7.2.0没有问题。

由于我根本不使用Fortran(我从C ++调用Fortran函数),我能想到的唯一解释是这些变量没有初始化为零。

有没有办法可以仔细检查它们是否确实初始化为零或强制它们始终初始化为零?

1 个答案:

答案 0 :(得分:4)

除非您使用DATA语句(在COMMOCK块的BLOCK DATA内)或Fortran 90+初始化,否则Fortran变量本身不会设置为任何值。在您在代码中为它们分配值之前,它们的值是未定义的。

您可以使用GCC的编译器特定选项

var toggleClass = document.querySelector('.menu-toggle');
var classSwitch = document.querySelector('.header-list');

toggleClass.addEventListener('click', function () {
  console.log('hello');
  classSwitch.classList.toggle('header-list-open');
});

将初始值设置为变量。更好的仔细检查它确实包括COMMON块。

请参阅https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html