fortran95 - 为什么在尝试将派生类型放入模块时收到损坏的模块编译消息?
问题描述
我正在学习如何在 Fortran 95 中跨模块分发代码。
我有以下代码打算使用两种派生类型:
file_parser_2.f95
program file_parser_2
use data_model_2
implicit none
! -------------------
! VARIABLE DEFINITION
! -------------------
integer :: i, io_result
integer :: lines_read
type(type1_record) :: line_read
type(timestamp_record) :: timestamp_read
! -------------------
! READ RECORDS
! -------------------
lines_read = 0
do
! READ LINE TO line_read IF AVAILABLE
read(*,*,iostat=io_result) line_read
if (io_result /= 0) exit
! PARSE TIMESTAMP
timestamp_read%year = line_read%year
timestamp_read%month = line_read%month
timestamp_read%day = line_read%day
timestamp_read%hour = line_read%hour
timestamp_read%minute = line_read%minute
timestamp_read%second = line_read%second
! DO OTHER STUFF
! TBC
end do
end program
该程序什么都不做,只是读取输入并根据这些字段进行处理。它被故意剥离以涵盖特定问题。
由于这些派生类型将在不同的模块中使用,并且可能在不同的程序中使用,我将它们放在一个单独的模块中,名为 data_model
.
data_model_2.f95
module data_model_2
! -------------------
! TYPE DEFINITION
! -------------------
type :: type1_record
integer :: month
integer :: day
integer :: year
integer :: hour
integer :: minute
integer :: second
integer :: value1
integer :: value2
end type
type :: timestamp_record
integer :: year
integer :: month
integer :: day
integer :: hour
integer :: minute
integer :: second
end type
end module
我尝试编译它们,但我收到损坏的模块错误:
$ flang file_parser_2.f95
F90-F-0004-Corrupt or Old Module file ./data_model_2.mod (file_parser_2.f95: 5)
F90/x86-64 FreeBSD Flang - 1.5 2017-05-01: compilation aborted
$
为什么我会收到此错误?
解决方案
推荐阅读
- python - 使用 lamda 更改全局变量的值?
- node.js - AWS lambda 向电话号码发送 sns 消息
- python - 在某些条件下将一到三个之间的随机值添加到 DataFrame 的列中
- python - 如何使用 Selenium driver.find_elements_by_xpath 提取位置的名称。没有返回数据。试图打印出 Tit Heng Phone Shop
- c# - 当 signalR 连接丢失到集线器代理时,始终保持重新连接状态 2 分钟
- sql - 将行值转换为列名
- amazon-web-services - AWS API Gateway 不接收发布请求
- spring-boot - 在特定时间窗口中每 30 分钟运行一次的作业的 Cron 表达式
- shopify - 更改主题中的 shopify 标签
- java - 您应该在 `onBillingServiceDisconnected()` 中添加什么?