爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5840|回复: 12

[求助] 大家帮忙看下四维转三维的程序对不对

[复制链接]

新浪微博达人勋

发表于 2013-5-5 10:29:51 | 显示全部楼层 |阅读模式

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

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

x
        
      program main
      parameter(mo=12,my=65,nx=33,ny=23,mt=780)
      dimension sst(nx,ny,mo,my),sst2(mo,my,mt)
      open(1,file='f:\lw\slp.grd',form='unformatted',access='direct',recl=nx*ny)
         do  iyear=1,my
         do  im=1,mo
         do j=1,ny
         do i=1,nx
               read(1,*)(sst(i,j,im,iyear))
        end do
        end do
        end do
        end do

      open(2,file='f:\lw\slp3.grd',form='unformatted', access='direct',recl=nx*ny)
        do i=1,nx
        do j=1,ny
        do t=1,mt
              write(2,*)(sst(i,j,im,iyear))
        end do
        end do
        end do

      close (1)
      close (2)
      end










密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-5 10:30:42 | 显示全部楼层
一维是年份,一维是月份
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2013-5-5 10:50:31 | 显示全部楼层
你的原来数据有几列?看你的read只有一列啊?write的部分也是不对的···你的程序跑的结果就是数组溢出了···

再者就是无格式数据存储需要用隐式格式才好
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-5 10:59:12 | 显示全部楼层

我也不知道有几列,不知道的情况下有办法做吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-5-5 11:06:27 | 显示全部楼层
天生我才 发表于 2013-5-5 10:59
我也不知道有几列,不知道的情况下有办法做吗?

不确定二进制文件的格式,怎么读啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-5 11:10:18 | 显示全部楼层
topmad 发表于 2013-5-5 11:06
不确定二进制文件的格式,怎么读啊

我只知道网格点数和年份,你的意思是问grd中数据是怎样排列的吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2013-5-5 11:14:43 | 显示全部楼层
天生我才 发表于 2013-5-5 10:59
我也不知道有几列,不知道的情况下有办法做吗?

额,建议你慢慢测试一下···可以测试出来的···
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-5 12:38:56 | 显示全部楼层
言深深 发表于 2013-5-5 11:14
额,建议你慢慢测试一下···可以测试出来的···

怎么测呢,还是在这个程序里调试么?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-5-5 13:18:28 | 显示全部楼层
你的资料估计是格点资料吧,所以才会这么读取。但是后面转三维write的时候没什么改变啊,直接写了原来的数组,那不还是一样的么
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-5 13:23:48 | 显示全部楼层
river 发表于 2013-5-5 13:18
你的资料估计是格点资料吧,所以才会这么读取。但是后面转三维write的时候没什么改变啊,直接写了原来的数组 ...

那我把四维先转成一维,再转成三维对吗? 数组名可能比较乱,麻烦帮忙看看吧

open(5,file='f:\lw\slp.grd',form='binary')
          read(5)
                DO  iy=1,65
                        do  mo=1,12
! 读数据
                                read(5)
                                 read(5) ((var(i,j,mo,iy),i=1,ii),j=1,jj)
                        enddo
                enddo

                do i=1,ii
                 do  j=1,jj
                   do iy=1,65
                   do mo=1,12
                   slp5(x)=var(i,j,mo,iy)
                   end do
                   end do
                   end do
                   end do

    open(4,file='f:\lw\slp5.grd',form='binary')
        write(4)((( slp5(x),I=1,ii),j=1,jj),mo=1,780)
        close(4)

open(3,file='f:\lw\slp5.grd',form='binary')
          read(3)
                        do  mo=1,780
! 读数据
               
                                 read(3) ((jfcc(ii,jj,y),I=1,ii),j=1,jj)
                        enddo

                 do i=1,ii
                 do  j=1,jj
                   do mo=1,780
                   slp6(x)=jfcc(i,j,mo)
                   end do
                   end do
                   end do
                       
    open(2,file='f:\lw\slp6.grd',form='binary')
        write(2) (( slp6(x),n=1,759),mo=1,780)
        close(2)


end
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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