爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9897|回复: 22

[求助] fortran批处理问题疑问

[复制链接]

新浪微博达人勋

发表于 2013-2-20 06:51:20 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
在fortran中最近读取了目录如下:
D:\data\2\pottmp.sig995.1948.txt
D:\data\2\pottmp.sig995.1949.txt
D:\data\2\pottmp.sig995.1950.txt
D:\data\2\pottmp.sig995.1951.txt
D:\data\2\pottmp.sig995.1952.txt
D:\data\2\pottmp.sig995.1953.txt
D:\data\2\pottmp.sig995.1954.txt
D:\data\2\pottmp.sig995.1955.txt
D:\data\2\pottmp.sig995.1956.txt
D:\data\2\pottmp.sig995.1957.txt
..................
D:\data\2\pottmp.sig995.2010.txt
以及如下目录
D:\data\2\pottmp.sig995.1948.nc
D:\data\2\pottmp.sig995.1949.nc
D:\data\2\pottmp.sig995.1950.nc
D:\data\2\pottmp.sig995.1951.nc
D:\data\2\pottmp.sig995.1952.nc
D:\data\2\pottmp.sig995.1953.nc
D:\data\2\pottmp.sig995.1954.nc
D:\data\2\pottmp.sig995.1955.nc
D:\data\2\pottmp.sig995.1956.nc
D:\data\2\pottmp.sig995.1957.nc
...................
D:\data\2\pottmp.sig995.1958.nc
以上的方法是利用清风的fortran批量处理的帖子读取出来的目录。
我想问的是,如何利用fortran读取这个目录txt文件,然后进行处理呢。每一个nc和txt文件都包含四个变量:lon、lat、time、precip。其中precip是三维变量,即precip(lat、lon、time)。
请问我应该如何单个对precip进行处理并把处理的数据输出来呢?
有没有一些例子可以借鉴呢?
我看了一下清风版主的批量处理是对文件目录的一个读取,但是不涉及对数据本身的处理。请大家指点!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2013-2-20 11:54:53 | 显示全部楼层
自己先思考吧 例子论坛多的是,比如我以前写的那些处理micaps格式的数据,基础知识牢固了怎么变都会,所以你还是先打基础吧,要不然别人即使给你这个格式的处理方法,下次换个格式你还是不会
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2013-2-20 20:02:19 | 显示全部楼层
主要问题貌似不在于批处理,你先搞定一个处理看看,搞定之后再说“批量”处理!祝您成功
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-2-20 22:30:44 | 显示全部楼层

我已经把上面的目录读取到一个txt文件了。接下来就是要用open语句打开处理这个包含目录的txt文档,但是我现在就不太懂如何才能打开这个txt,并且打开之后里面不仅仅有一个变量。包含站点号、经度、维度、降水、温度。而且降水和温度的是站点号、经度、纬度的三维变量。不知道该如何一个个读取?找了论坛,也没发现合适的例子和帖子。初学fortran,还是比较困惑。看完了徐洪波老师的42集的教程。还请深深版主,指点一二。不知道有没例子可以学学。这样就可以按照,我已有的算法就可以轻松处理了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2013-2-21 07:30:48 | 显示全部楼层
kongfeng0824 发表于 2013-2-20 22:30
我已经把上面的目录读取到一个txt文件了。接下来就是要用open语句打开处理这个包含目录的txt文档,但是我 ...

你是处理nc文件还是txt文件?看你的问题,貌似是处理nc文件吧???
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-2-21 09:32:51 | 显示全部楼层
言深深 发表于 2013-2-21 07:30
你是处理nc文件还是txt文件?看你的问题,貌似是处理nc文件吧???

我处理的是txt。nc的我发现用matlab处理更好。所以在处理txt的时候已经把所有的文件名称写到了一个txt中,接下俩不知道该如何处理了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2013-2-22 20:34:13 | 显示全部楼层
kongfeng0824 发表于 2013-2-21 09:32
我处理的是txt。nc的我发现用matlab处理更好。所以在处理txt的时候已经把所有的文件名称写到了一个txt中, ...

解析来用几从循环,最外层循环控制文件名列表:
do l=1,num
open(1,file="namelist(l)")
操作其中一个需要处理文件
close(1)
enddo
这样就可以处理了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-2-22 23:17:22 | 显示全部楼层
言深深 发表于 2013-2-22 20:34
解析来用几从循环,最外层循环控制文件名列表:
do l=1,num
open(1,file="namelist(l)")

多谢深深版主
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-2-27 23:39:17 | 显示全部楼层
mofangbao 发表于 2013-2-20 11:54
自己先思考吧 例子论坛多的是,比如我以前写的那些处理micaps格式的数据,基础知识牢固了怎么变都会,所以你 ...

方法
如果你的文件名有规律比如: data.1.txt,data.2.txt,data.3.txt... 则可以按下面代码用循环实现多文件自动处理:
character(80) :: filename,tmp

print*,'please enter the file name:'
read*,filename !输入的可以是多个文件中的任意一个文件名
filename=filename(1:index(filename,'.'))

do i=1,num_file !num_file--文件数
write(tmp,*)i
open(10,file=trim(filename)//trim(adjustl(tmp))//'.txt',status='old')
... !处理文件数据
close(10)
end do

清风版主,我找了很多方法,感觉这个可以实现,但是还是没看懂如何把文件名称读到txt后,打开数据和处理的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-2-27 23:40:06 | 显示全部楼层
言深深 发表于 2013-2-22 20:34
解析来用几从循环,最外层循环控制文件名列表:
do l=1,num
open(1,file="namelist(l)")

方法1
如果你的文件名有规律比如: data.1.txt,data.2.txt,data.3.txt... 则可以按下面代码用循环实现多文件自动处理:
character(80) :: filename,tmp

print*,'please enter the file name:'
read*,filename !输入的可以是多个文件中的任意一个文件名
filename=filename(1:index(filename,'.'))

do i=1,num_file !num_file--文件数
write(tmp,*)i
open(10,file=trim(filename)//trim(adjustl(tmp))//'.txt',status='old')
... !处理文件数据
close(10)
end do

深深版主,不知道你用过这样的方法吗?我感觉这个可以,但是不很理解。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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