m*******s 发帖数: 22 | 1 本人得到一个fortran subroutine,现需利用该subroutine将本人的1460
个数据文件转换成另一种格式,可惜本人对fortran所知寥寥,故特此求
各位高人指教,谢谢!
我的初步想法是:用"do......end"语句反复读入待转换的数据文件,
用subroutine处理后,写入指定的输出文件直至最后一个文件处理完毕。
本人的输入文件名为:xx_i_xxx,i=1,2,...,1460,即:各个文件仅i
一处不同,请问如何将文件名按如下分段串起来,从而实现循环读入
============================================================
第一部分:xx_
第二部分:i
第三部分:_xxx
============================================================
文件的功能?
再次感谢! |
p*********w 发帖数: 23432 | 2 可以先把输入输出的文件名给统一了,然后编个简单的 fortran 读写文件。
也可以考虑把原有的 subroutine 编译了,然后在外围写个 bat 调用
(通过 cmd line 输入输出)
【在 m*******s 的大作中提到】 : 本人得到一个fortran subroutine,现需利用该subroutine将本人的1460 : 个数据文件转换成另一种格式,可惜本人对fortran所知寥寥,故特此求 : 各位高人指教,谢谢! : 我的初步想法是:用"do......end"语句反复读入待转换的数据文件, : 用subroutine处理后,写入指定的输出文件直至最后一个文件处理完毕。 : 本人的输入文件名为:xx_i_xxx,i=1,2,...,1460,即:各个文件仅i : 一处不同,请问如何将文件名按如下分段串起来,从而实现循环读入 : ============================================================ : 第一部分:xx_ : 第二部分:i
|
p*********w 发帖数: 23432 | 3 猴年马月没用过 fortran了,记不清了。
反正对于字符、文件处理不是 fortran 的强项。
编译那个子函数,把命令行的参数带进去,这样就可以写 dos 批处理了。
比如,你把那个编译成 aaa.exe
你的批处理就写成
aaa input_1.txt output_1.txt
aaa input_2.txt output_2.txt
aaa input_3.txt output_3.txt
.....
你要是不会编批处理文件,
就拿个文本编辑器复制一下(自动加1那种)
构造那些命令行
然后就运行这个bat文件
多谢回复!不过,还有两点疑问:
1. 大侠的意思是:fortran中没有刻将文件名分段串起来的函数?
我知道C和Matlab都是有这样的函数的,所以循环读入仅部分
不同的文件名非常容易,但看样子fortran好像没有,请问我
的理解对不对?
2. 请问在外围写个bat调用是怎么回事?大侠可否给个bat的script,
再指点一二?谢谢!
【在 m*******s 的大作中提到】 : 本人得到一个fortran subroutine,现需利用该subroutine将本人的1460 : 个数据文件转换成另一种格式,可惜本人对fortran所知寥寥,故特此求 : 各位高人指教,谢谢! : 我的初步想法是:用"do......end"语句反复读入待转换的数据文件, : 用subroutine处理后,写入指定的输出文件直至最后一个文件处理完毕。 : 本人的输入文件名为:xx_i_xxx,i=1,2,...,1460,即:各个文件仅i : 一处不同,请问如何将文件名按如下分段串起来,从而实现循环读入 : ============================================================ : 第一部分:xx_ : 第二部分:i
|
e******e 发帖数: 98 | 4 // is the string concatenation operator in fortran, like . in perl
【在 m*******s 的大作中提到】 : 本人得到一个fortran subroutine,现需利用该subroutine将本人的1460 : 个数据文件转换成另一种格式,可惜本人对fortran所知寥寥,故特此求 : 各位高人指教,谢谢! : 我的初步想法是:用"do......end"语句反复读入待转换的数据文件, : 用subroutine处理后,写入指定的输出文件直至最后一个文件处理完毕。 : 本人的输入文件名为:xx_i_xxx,i=1,2,...,1460,即:各个文件仅i : 一处不同,请问如何将文件名按如下分段串起来,从而实现循环读入 : ============================================================ : 第一部分:xx_ : 第二部分:i
|
w*******e 发帖数: 1622 | 5 现在还有用fortran的地方?
【在 p*********w 的大作中提到】 : 猴年马月没用过 fortran了,记不清了。 : 反正对于字符、文件处理不是 fortran 的强项。 : 编译那个子函数,把命令行的参数带进去,这样就可以写 dos 批处理了。 : 比如,你把那个编译成 aaa.exe : 你的批处理就写成 : aaa input_1.txt output_1.txt : aaa input_2.txt output_2.txt : aaa input_3.txt output_3.txt : ..... : 你要是不会编批处理文件,
|
p*********w 发帖数: 23432 | 6 楼主不是说从前的一个子函数么
估计是历史遗留下来的了
【在 w*******e 的大作中提到】 : 现在还有用fortran的地方?
|
K*****n 发帖数: 23 | 7 character (len=100) :: fname, fmtstr= '(A,I??,A)'
integer :: ndig
do i = 1, 1460
ndig = int(log(dble(i)))+1
write(fmtstr(5:6),'(I2)') ndig
!
write(fname, fmtstr) 'xx',i, 'xxx'
!
open(10, file=fname,action='read')
....
close(10)
enddo
在 moontrees (moonovertrees) 的大作中提到: 】 |
s*r 发帖数: 2757 | 8 learn a script language
【在 m*******s 的大作中提到】 : 本人得到一个fortran subroutine,现需利用该subroutine将本人的1460 : 个数据文件转换成另一种格式,可惜本人对fortran所知寥寥,故特此求 : 各位高人指教,谢谢! : 我的初步想法是:用"do......end"语句反复读入待转换的数据文件, : 用subroutine处理后,写入指定的输出文件直至最后一个文件处理完毕。 : 本人的输入文件名为:xx_i_xxx,i=1,2,...,1460,即:各个文件仅i : 一处不同,请问如何将文件名按如下分段串起来,从而实现循环读入 : ============================================================ : 第一部分:xx_ : 第二部分:i
|