我有一个来自FORTRAN代码的Windows DLL。DLL正在工作,但我需要更改它并将其移植到Linux。
现在,我正在尝试使用this将其封装到Java代码中,并尝试使用gfortran进行编译。
我正面临着像Error: Unclassifiable statement at (1)这样的问题,但我在到处搜索时发现这个错误太普遍了,而且与许多事情相关,没有一个与我的代码相关(或者我认为是)。
下面是有问题的代码:
...
character*2 di,mi
character*4 ai
...
integer*2 dia_ini, mes_ini, ano_ini
...
decode (2, '(i2)', mi ) mes_ini
decode (2, '(i2)', di ) dia_ini
decode (4, '(i4)', ai ) ano_ini
...所有解码行都在行首显示错误( "1“指向”decode“的d下方)
我不能理解的一件事是‘ai,mi’和'ai‘也在参数列表中:
Subroutine PREVISAO (di,mi,ai)
在Fortran上允许这样做吗?参数的初始值不是丢失了吗?
原始文件的扩展名为.f90,并且只有subroutine块。
发布于 2018-08-14 15:06:13
正如评论中提到的,DECODE (和ENCODE)不是Fortran标准的一部分,GFortran不支持这个特定的扩展。在Fortran手册中,您可以找到如何使用内部读/写语句将ENCODE和DECODE转换为标准GFortran结构的示例:https://gcc.gnu.org/onlinedocs/gfortran/ENCODE-and-DECODE-statements.html
https://stackoverflow.com/questions/51824039
复制相似问题