interface - F90中加载模块和接口的正确结构是什么?
问题描述
以下 Fortran 行
SUBROUTINE AFprep (ida, idb, jda, jdb, kda, kdb )
IMPLICIT NONE
include 'mpif.h'
USE some_module
interface
SUBROUTINE nothing (azf, ata)
REAL, INTENT(IN) :: azf ( : , : , : )
REAL, INTENT(IN) :: ata ( : , : , : )
END SUBROUTINE nothing
end interface
REAL, PARAMETER :: PI = 3.14159265
REAL( 8 ), PARAMETER :: DPI = 3.14159265358979324D0
REAL, PARAMETER :: PI180 = PI / 180.0
REAL, PARAMETER :: GRAV = 9.80622
INTEGER, INTENT(IN) :: ida, idb, jda, jdb, kda, kdb
REAL :: aensf
REAL, ALLOCATABLE, SAVE :: densq ( : , : , : )
integer :: i, j, status(MPI_STATUS_SIZE)
character (len = 50) :: myfmt
END SUBROUTINE AFprep
正在产生错误
Error: USE statement at (1) cannot follow INTERFACE statement at (2)
这有点奇怪,因为USE
在之前interface
(除非编译器出于某种我看不到的原因移动它)。some_module
是早期构建的一个非常大的模块,编译器是 GCC-11。我不太确定该怎么做,因为如果USE some_module
被注释掉,编译就会通过(移动USE
后interface
会导致与预期相同的错误)。
解决方案
推荐阅读
- php - 从 PHP 中的数组中获取每个类别 3 个元素
- spotfire - 禁用或隐藏“查看库”菜单项
- php - 为什么我的 AJAX 没有加载到我的网页上?
- javascript - 使用鼠标轮和 onclick 事件打开新选项卡
- c# - 通过 ExcelDataReader 导入 *.xlsx 数据,受影响的记录数为 0
- angular - 如何在角度 6 中实现 $('button').click(function()
- c# - C#订阅和取消订阅事件 - 从“字符串”
- html - 为什么我的自定义字体不显示(HTML、CSS、BEGINNER)
- javascript - 在 Puppeteer 中进行 Web Scraping 时如何处理验证码?
- spring - 如何修复 ModelAttributes 返回空值?