Fortran 90 - 尝试读取文件末尾之后的内容

2024-03-26

我在 Fortran 90 中遇到读取问题。我尝试读取 31488 行数据。我正在使用 Portland Group Fortran 90 编译器。

我的错误信息是这样的:

PGFIO-F-217/列表定向读取/单元=14/尝试读取文件末尾。 文件名 = /import/c/w/username/WRFV3/SKILLSETS/Overestimations.txt 格式,顺序访问记录=31489

Fortran 程序认为我有一个额外的行。我不知道代码中哪里指出了这一点。

我已附上代码的相关部分...我已经通过这部分代码进行了高低搜索,我已经调查了文本文件以查看行数是否匹配。我完全不明白问题出在哪里。

编译器指出错误位于 do 语句内的 read 语句中...位于 read(14,*) 处,即代码行。

请帮忙。非常感谢。

Program skillruss
! Purpose: to calculate skill scores

implicit none
integer :: i,j,nsite,ntime,iref,jj,csite

! nsite = number of observation sites, csites = number of chemical sites, ntime = number of hours

parameter(nsite=32,csite=1,ntime=984)

real :: Tob(nsite,ntime),RHo(nsite,ntime),diro(nsite,ntime)
real :: raino(nsite,ntime),swo(nsite,ntime),po(nsite,ntime)
real :: Tdo(nsite,ntime),vo(nsite,ntime)
real :: Ts(nsite,ntime),RHs(nsite,ntime),dirs(nsite,ntime)
real :: rains(nsite,ntime),sws(nsite,ntime),ps(nsite,ntime)
real :: Tds(nsite,ntime),vs(nsite,ntime)
real :: PMo(csite,ntime),PMs(csite,ntime)

real :: pers(csite,ntime)
real :: bias,rmse,sde,r,x,y,sx,sy,dw,isig
real :: countn
real :: nrmse,fac2,nstdev,mg,fb,nmse
real :: biast(ntime),rmset(ntime),sdet(ntime)
real :: rt(ntime),xt(ntime),yt(ntime)
real :: sxt(ntime),syt(ntime),isigt(ntime),countt(ntime),dt(ntime)


! Open file to read the observational data

open(14,file=&
"/import/c/w/username/WRFV3/SKILLSETS/Overestimations.txt",&
   form="formatted",status="old")

Tob= -999.
RHo= -999.
vo= -999.
diro= -999.
raino= -999.
swo= -999.
po= -999.
Tdo= -999.

do i=1,nsite
do j=1,ntime
read(14,*) Tob(i,j),RHo(i,j),vo(i,j),diro(i,j),raino(i,j),swo(i,j),&
    po(i,j),Tdo(i,j)
if(vo(i,j) <=0.)diro(i,j)=-999.
end do
end do
close(14)

通常,我们需要查看数据文件才能确定出现错误的原因。列表定向输入很容易在远离检测到错误的地方发生错误。例如,错误在记录 31489 处报告,但可能记录 7233 线上的值太少 - 使用列表导向时,它将自动读取下一条记录以拾取缺失值,然后丢弃该新值的其余部分线。然后,当它到达最后一条记录时,它还需要一个记录,然后......错误!

我相当有信心问题出在数据文件中,而不是程序源中。您应该添加一些验证以确保它实际上正在读取您想要的值。根据数据文件的格式化方式,我可能建议使用 G 格式的格式化输入,而不是列表导向的输入。我见过太多的程序员被列表导向的输入(和输出)引入歧途。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Fortran 90 - 尝试读取文件末尾之后的内容 的相关文章

随机推荐

  • libdtrace 缓冲输出

    我正在尝试通过 libdtrace 使用 dtrace 在 Snow Leopard 上 10 6 4 我想在我自己的程序中捕获 dtrace 脚本的打印输出 一种方法是将输出转到临时文件并从那里读取 但是 libdtrace 支持回调函数
  • Quill.js:制作自定义链接格式 - 或 - 具有相同标签名称的自定义格式

    我正在使用鹅毛笔1 0 0 rc 1 如何制作几种不同类型的链接格式 我制作了三种不同类型的链接格式 添加了data link type属性 当我创建链接时 一切都很好 但是 当我使用将内容重新加载到编辑器中时pasteHTML 自上次注册
  • __zone_symbol__currentTask 错误

    我收到错误 zone symbol currentTask type microTask state notScheduled source Promise then zone angular cancelFn null runCount
  • 单击按钮时使球弹起

    I wrote a program to move a ball when a button is clicked It is a part of experiment for a bigegr project Here is the sc
  • 使用 LINQ to SQL SubmitChanges() 时,什么会导致 SqlDateTime 溢出?

    在我的代码中 我将多个对象添加到存储库中 我尝试在所有循环结束时运行一次存储库 Save 函数 并在添加每个对象后调用它 但无论哪种方式 当存储库 Save 中的 db SubmitChanges 时 我仍然会遇到 SqlDateTime
  • 事件可以声明为静态吗?如果可以,如何声明以及为什么

    我想知道我们是否可以将事件声明为静态 如果可以 为什么以及此类声明的应用 请提供样品 眼见为实 您可以创建静态事件 使用它们的方式与普通事件相同 只不过它是在类内的静态上下文中使用 public class MyClass public s
  • 具有不同参数的 C++ 成员函数指针 - 还是这很糟糕?

    尽管我担心你会告诉我这个话题已经被讨论过好几次了 但我还是敢问 因为我无法生成解决方案 也许我只是在寻找错误的东西 假设我有一个从某些外部函数接收 模式 的函数 根据模式的不同 函数会调用同一对象的不同成员函数 对于没有任何参数的成员函数
  • 如何用相邻值替换数据框中的 NA(缺失值)

    862 2006 05 19 6 241603 5 774208 863 2006 05 20 NA NA 864 2006 05 21 NA NA 865 2006 05 22 6 383929 5 906426 866 2006 05
  • 如何从 SonarQube 提取或导出规则

    如果我能获得以下情况的帮助 请感激 我的问题是确定如何在 SonarQube 4 5 7 上提取 导出所有 java 规则 我尝试了以下两个 API 调用 但收到 您正在查找的页面不存在 我的 sonarqube 版本显示了 781 个 j
  • 如何从 Carrierwave Uploader 对象引用父模型

    我想在通过 Carrierwave 完成文件上传后运行一些方法 Carrierwave包含几种回调方法详解here https github com jnicklas carrierwave wiki How to 3a use callb
  • Google Chrome 中的 DOM 过载问题

    我在 Google Chrome 中使用大量隐藏项目时遇到一些问题 最近 我发布了一个问题 https stackoverflow com questions 56329780 inexplicit task in chrome perfo
  • 毛伊岛内容页面视图中的视图模型未被识别

    我试图理解毛伊岛的服务 但注入并没有在视图中重新认识它 namespace FoodOrder ViewModels public class MenusViewModel IMenuServiceInterface menuService
  • 由于内存压力而终止应用程序

    我有一个应用程序可以在连拍模式下拍摄图像 但是一旦拍摄图像并即将出现预览时 它就会崩溃并且错误显示 由于内存压力而终止应用程序 当用户按住相机按钮时 我需要拍摄更多数量的图像 离开按钮后 我需要将所有图像显示为幻灯片 我必须做什么 我的代码
  • Rails 3:如何正确显示“textarea”中的文本?

    在我的 Rails 3 应用程序中我使用textarea让用户在论坛中撰写新消息 但是 当显示消息时 所有换行符看起来都像空格 没有 br 也许还有其他不匹配的例子 我还不知道 我想知道处理这个问题最合适的方法是什么 我猜想存储在数据库中的
  • 如何让线程构建块在 Ubuntu 14.04 中工作

    我想让 TBB 工作 但在 Ubuntu 14 04 上编译工作有点困难 我认为这可能是为编译器设置库位置的问题 我使用以下命令安装了 TBB sudo apt get install libtbb dev 我现在正在尝试编译一个小测试示例
  • 如何编写读取退回电子邮件的 PHP 脚本?

    我正在使用 PHP 处理退回电子邮件 我已在邮件功能中包含返回路径 例如 mail to address subject message headers f return path return path email protected c
  • 如果我不等待任务会怎样?

    考虑这个例子 var task DoSomething bool ready await DoSomethingElse if ready return null var value await DoThirdThing depends o
  • 从项目根目录移动 cypress 文件夹

    当我安装并运行 cypress 时 它会搭建一个cypress 我的项目根目录中的文件夹 问题是所有其他测试相关数据都存储在test 文件夹 有没有简单的方法可以将其移动到test cypress并配置 cypress 来查看那里 赛普拉斯
  • 在同一 SQL 查询中使用“WITH”和“UPDATE”语句

    我有一个表格 需要使用 Excel 电子表格中的一些数据进行更新 我正在考虑这样的查询 WITH temp AS SELECT abcd AS oldvalue defg AS newvalue FROM dual UNION SELECT
  • Fortran 90 - 尝试读取文件末尾之后的内容

    我在 Fortran 90 中遇到读取问题 我尝试读取 31488 行数据 我正在使用 Portland Group Fortran 90 编译器 我的错误信息是这样的 PGFIO F 217 列表定向读取 单元 14 尝试读取文件末尾 文