24小时热门版块排行榜    

查看: 2271  |  回复: 11

nigel332

新虫 (初入文坛)

[求助] fortran,带字符的数据读取与存储!

假如文件中数据如下:
$GRDNAM
     NAME = 'cylinder',
     $END
$BCINP
  NBC= 4,
IBTYP( 1)= 4, IBDIR( 1)= -3,
IBTYP( 2)= 4, IBDIR( 2)= -3,
IBTYP( 3)= 8, IBDIR( 3)= 3,
IBTYP( 4)= 8, IBDIR( 4)= 3,
现在想读取其中IBTYP的值,然后写到另一个文件中去:如下
$MESH
    NAME = 'cylinder',
    $END
IBTYP = 4, 4, 8, 8,
IBDIR = -3, -3, 3, 3,
请问该怎样做到呢?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2012-11-11 01:13:10
nigel332: 金币+1 2013-04-19 09:42:31
Fortran 中没有什么好办法,自己想办法把 = 与 , 之间的那几个字符(其实就是空格与数字)以字符串的形式读出来,然后用 Fortran 的内部文件形式转成数字,赋值到数组中,最后输出就行了……
2楼2012-11-10 19:50:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

匿名

用户注销 (著名写手)

感谢参与,应助指数 +1
本帖仅楼主可见
3楼2012-11-11 02:27:57
已阅   申请程序强帖   回复此楼   编辑   查看我的主页

weiwei43

至尊木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
能不能知道=号前是多少位?如果这个位数固定,可以按有格式方式读入。
例如IBTYP( 1)= 4, IBDIR( 1)= -3,
“IBTYP( 1)=”是10位,“, IBDIR( 1)=”是10位,注意假设里面都没有空格的。数值也是一位的。
那么
read(文件名,1000)i,j
1000 format(10a,i1,10a,i1)
应该能读出。
4楼2012-11-11 07:58:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

引用回帖:
4楼: Originally posted by weiwei43 at 2012-11-11 07:58:12
能不能知道=号前是多少位?如果这个位数固定,可以按有格式方式读入。
例如IBTYP( 1)= 4, IBDIR( 1)= -3,
“IBTYP( 1)=”是10位,“, IBDIR( 1)=”是10位,注意假设里面都没有空格的。数值也是一位的。
那么
re ...

i1 是不行的,因为有负数……
5楼2012-11-11 08:50:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

weiwei43

至尊木虫 (正式写手)

引用回帖:
5楼: Originally posted by snoopyzhao at 2012-11-11 08:50:16
i1 是不行的,因为有负数……...

如果正数前面有空格,负数前面没有空格,也可以用i2。
最好看一下他原来使用什么语言输出的,格式是什么。
6楼2012-11-11 10:05:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nigel332

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by weiwei43 at 2012-11-11 07:58:12
能不能知道=号前是多少位?如果这个位数固定,可以按有格式方式读入。
例如IBTYP( 1)= 4, IBDIR( 1)= -3,
“IBTYP( 1)=”是10位,“, IBDIR( 1)=”是10位,注意假设里面都没有空格的。数值也是一位的。
那么
re ...

我自己针对这个问题写了个code,但是出现了问题:

但是运行结果出现这个错误:
At line 21 of file overToP.F90
Fortran runtime error: End of file
请问是什么原因?
代码在网盘里,地址:
http://good.gd/2294822.htm
7楼2012-11-11 23:16:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nigel332

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by weiwei43 at 2012-11-11 07:58:12
能不能知道=号前是多少位?如果这个位数固定,可以按有格式方式读入。
例如IBTYP( 1)= 4, IBDIR( 1)= -3,
“IBTYP( 1)=”是10位,“, IBDIR( 1)=”是10位,注意假设里面都没有空格的。数值也是一位的。
那么
re ...

我自己针对这个问题写了个code,但是出现了问题:

但是运行结果出现这个错误:
At line 21 of file overToP.F90
Fortran runtime error: End of file
请问是什么原因?
代码在网盘里,地址:
http://good.gd/2294822.htm
8楼2012-11-11 23:17:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nigel332

新虫 (初入文坛)

引用回帖:
6楼: Originally posted by weiwei43 at 2012-11-11 10:05:12
如果正数前面有空格,负数前面没有空格,也可以用i2。
最好看一下他原来使用什么语言输出的,格式是什么。...

数字前面都有空格~~~
9楼2012-11-11 23:58:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nigel332

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by snoopyzhao at 2012-11-10 19:50:03
Fortran 中没有什么好办法,自己想办法把 = 与 , 之间的那几个字符(其实就是空格与数字)以字符串的形式读出来,然后用 Fortran 的内部文件形式转成数字,赋值到数组中,最后输出就行了……

顺序读取文件的时候,不能跳跃读取
因为我的数据每行的变量不同,所以需要根据读取的行数控制读取的数据
这有没有什么好的办法?
10楼2012-11-12 11:44:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 nigel332 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 v7Aev8ORQjin 2026-08-22 3/150 2026-08-23 20:58 by 0p9y1isJp2jM
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +4 h4CP7TrQR8Lg 2026-08-22 4/200 2026-08-23 20:55 by 0p9y1isJp2jM
[基金申请] 让我中一个面上吧! +12 大萍1987 2026-08-20 15/750 2026-08-23 20:44 by 大萍1987
[考研] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 DpSrDtM079iu 2026-08-22 3/150 2026-08-23 19:55 by lXgU0RvNTDC9
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 2JOx3r2CYEgw 2026-08-22 5/250 2026-08-23 19:22 by lXgU0RvNTDC9
[论文投稿] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 2JOx3r2CYEgw 2026-08-21 8/400 2026-08-23 18:58 by lXgU0RvNTDC9
[论文投稿] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 DpSrDtM079iu 2026-08-22 3/150 2026-08-23 15:33 by KM5EcsNQRBPn
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 h4CP7TrQR8Lg 2026-08-22 5/250 2026-08-23 12:09 by LR9qGULyN2ew
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 2JOx3r2CYEgw 2026-08-21 9/450 2026-08-23 10:44 by IXZuIJ2Q7OVy
[基金申请] 今天放榜吗? +15 布布和一二 2026-08-19 16/800 2026-08-23 09:55 by 张春生
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 2JOx3r2CYEgw 2026-08-22 5/250 2026-08-23 07:41 by OEbVnUOu01ol
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 DpSrDtM079iu 2026-08-22 5/250 2026-08-23 04:07 by OEbVnUOu01ol
[论文投稿] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 2JOx3r2CYEgw 2026-08-22 4/200 2026-08-23 04:04 by OEbVnUOu01ol
[论文投稿] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 2JOx3r2CYEgw 2026-08-22 6/300 2026-08-23 03:40 by OEbVnUOu01ol
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 QTy3jDtz1uLt 2026-08-21 11/550 2026-08-23 02:55 by OEbVnUOu01ol
[基金申请] 93BebMhtakh前后11位开头都是大写 +7 且听虎啸 2026-08-17 8/400 2026-08-22 21:55 by 医学老男孩
[教师之家] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 2JOx3r2CYEgw 2026-08-21 4/200 2026-08-22 16:52 by sunzitan
[基金申请] 人气不行了 +8 fansofjerry 2026-08-21 8/400 2026-08-22 16:30 by zyqchem
[基金申请] 今天基金会出结果吗?20260819 +16 kkkl_v 2026-08-19 17/850 2026-08-22 16:12 by 阿布Abu
[基金申请] 重要消息,中午系统在维护 +11 yuleib84 2026-08-18 12/600 2026-08-20 11:09 by xskun
信息提示
请填处理意见