回 帖 发 新 帖 刷新版面

主题:fortran 中读取指定数据

数据是两个时间点的

回复列表 (共5个回复)

沙发


我的意思是至少包含两组360*180的数据,你能明白不?上传的数据可以在原帖替换,不必新开帖子吧?

板凳


你的数据总量是360*354,离360*180*2 还差一点点,你就多保留些吧。

3 楼

老师,里面是2个时间点的,180*360*2*52(行)

4 楼

[quote]老师,里面是2个时间点的,180*360*2*52(行)[/quote]

你总共18744行!从341行开始是数据,就算你每行7个数据,满打满算(18744-341+1)*7=128828个数据,离360*180*2=132480还差多少?还没算有些行不足7个数据!跟你争有什么意义呢?[em26][em26][em27][em46]

5 楼


哎,直接发段程序你研究研究吧

program main
implicit none
character(len=80)::str
real,dimension(360):: pres
integer:: i,k,t1,t2,lo1,lo2,la1,la2,dim
real::j

open(10,file='shuju.txt',status='old')
open(20,file='out.txt',status='unknown')

write(*,*) '--->please input total time steps and the current time step(int: t1,t2):'
read(*,*) t1,t2

write(*,*) '--->please input the range of longitude(int: lo1,lo2(1-360)):'
read(*,*) lo1,lo2

write(*,*) '--->please input the range of latitude(int: la1,la2(-90-90)):'
read(*,*) la1,la2

dim=lo2-lo1+1

do while (.true.)
 read(10,'(a)',end=100) str
 if (index(str,'pres =').ne.0) then
  do i=1,t1
   do j=-89.5,89.5,1.
    read(10,*,end=100) pres
    if (i==t2.and.j<la2.and.j>la1) write(20,200) (pres(k),k=lo1,lo2)
   enddo
  enddo
 endif
enddo

100 close(10)
200 format(<dim>f10.2)
close(20)

end program

我来回复

您尚未登录,请登录后再回复。点此登录或注册