fortran - 'DIMENSION' 类型与 fortran 中的'假定大小数组'
问题描述
在处理旧的库和例程时,我经常遇到以下变量声明,DIMENSION
这些变量声明会导致例程的奇怪行为。如果我DIMENSION
变成REAL(dp)
.
SUBROUTINE FFT(DATA_REAL, DATA_IMAGINARY, N)
DIMENSION :: DATA_REAL(*), DATA_IMAGINARY(*) ! The code behaves strangely.
(*)!REAL(dp) :: DATA_REAL(*), DATA_IMAGINARY(*) ! If I use this commented declaration instead, the code behaves just fine.
...
起初我看到它们的时候,我以为这些只是一些小错误。但是我仍然经常遇到DIMENSION
许多库、子程序的此类声明。
因此,在制定例程时,这些很可能不是错误,而奇怪的行为可能源于从旧的 fortran 到相对较新的 fortran(例如 f90)的一些更改的标准或精确的东西。但事实并非如此,因为据我所知,f90 能够正确处理其哥哥的标准(例如 f77)。
有没有人知道这种代码的行为?
解决方案
推荐阅读
- html - 如何限制Angular12中的搜索结果
- php - 如何使用 .htaccess 显示没有重定向的页面
- node.js - 我是 docusign API 的新手 我在发送签名信封时遇到问题
- javascript - MacOS chrome上的HTML5画布问题
- postgresql - Docker Desktop Mac:设备上没有剩余空间,Postgres
- android - 如何阻止 Firebase 云消息传递隐式分配折叠键?
- django - Django 保存对数据库的更改
- typescript - 赛普拉斯:从特定 CSV 单元格中读取值并将其打印出来
- cordova - 升级到 Cordova-Android 10 会破坏 build.gradle
- python - 在 Numpy/Python 中矢量化迭代数组切片