Fortran Coder

查看: 912|回复: 3
打印 上一主题 下一主题

[文件读写] 有格式读入文件中的数据出错

[复制链接]

36

帖子

17

主题

0

精华

专家

F 币
410 元
贡献
399 点
跳转到指定楼层
楼主
发表于 2024-5-23 11:39:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我准备通过文件读入u0y和n0这个量,编译后发现n0可以正常读入,但u0y报错。然而这两个变量从文件中读入的代码几乎是一样的,这是为什么呢?
报错信息及源代码如下:


   84 |             read(29,*) (u0y(i,j),i=ypml_cell+1,Nx-ypml_cell)
      |                      1
Error: Expecting variable in READ statement at (1)



[Fortran] 纯文本查看 复制代码
select case(u0_use_file)
    case(.True.)
        open(29,file="vy.dat")
            do j=pml_cell+1,Ny-pml_cell
            read(29,*) (u0y(i,j),i=ypml_cell+1,Nx-ypml_cell)
            end do
        close(29)
    case(.False.)
    u0x=u0x_const
    u0y=u0y_const
    end select
end if

    select case(n0_use_file)
        case(.True.)
        open(30,file="density.dat")
            do j=pml_cell+1,Ny-pml_cell
            read(30,*) (n0(i,j),i=ypml_cell+1,Nx-ypml_cell)
            end do
        close(30)
        case(.False.)
            n0=n0_constant
    end select

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩
欢迎交流

260

帖子

0

主题

0

精华

版主

World Analyser

F 币
721 元
贡献
512 点

新人勋章美女勋章元老勋章热心勋章规矩勋章管理勋章

QQ
沙发
发表于 2024-5-23 12:55:51 | 只看该作者

回帖奖励 +3

u0y 是否定义了?

另外
select case( .true. ) case( .false. )
这种写法很少见,也很奇怪。直接
if( n0_use_file ) then
else
end if
不是挺好嘛

36

帖子

17

主题

0

精华

专家

F 币
410 元
贡献
399 点
板凳
 楼主| 发表于 2024-5-23 15:18:08 | 只看该作者
kyra 发表于 2024-5-23 12:55
u0y 是否定义了?

另外

谢谢!找到问题了,u0y定义的那行被注释掉了  万万没想到是这个问题
欢迎交流

260

帖子

0

主题

0

精华

版主

World Analyser

F 币
721 元
贡献
512 点

新人勋章美女勋章元老勋章热心勋章规矩勋章管理勋章

QQ
地板
发表于 2024-5-23 19:57:17 | 只看该作者
强烈建议你写上 implicit none 并定义所有的变量。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-23 18:00

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表