爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 12404|回复: 5

[求助] 新手请教:利用线性插值法给缺省值赋值

[复制链接]

新浪微博达人勋

发表于 2011-11-22 20:22:16 | 显示全部楼层 |阅读模式

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

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

x
对于一条线的的182个数据,有的地方的值为缺省值-99.9999,现在利用线性插值法给缺省的地方赋值,我的做法是选取一个缺省点,如果它后面两个点有值,就用后面两点为前面的缺省点赋值。循环从左到右,再从右到左,如此反复,直到没有缺省值为止。
程序:
program chazhi
  2          implicit none
  3          integer,parameter::IMT=182,JMT=85,KMT=30
  4          integer::m,n,k,u,v,w
  5          real(kind=4),dimension(IMT,JMT,KMT)::ts,tss
  6
  7
  8         open(10,file="s00mn1_182X85X30",form="formatted",status="old")
  9         open(20,file="czs00mn1_182X85X30",form="formatted",status="replace")
10 100  FORMAT(10F8.4)
11         DO k=1,KMT
12            READ(10,100),((ts(m,n,k),m=1,IMT),n=1,JMT)
13         END DO
14
15          do while(.true.)
16            v=51
17            w=1
18            do u=1,IMT
19               if(ts(u,v,w)==-99.9999.and.ts(u+1,v,w)/=-99.9999) then
20                  if(ts(u+2,v,w)/=-99.9999)then
21                     ts(u,v,w)=ts(u+1,v,w)+(-1)/(ts(u+2,v,w)-ts(u+1,v,w))
22                  end if
23                end if
24            end do
25
26           do u=IMT,1,-1
27               if(ts(u,v,w)==-99.9999.and.ts(u-1,v,w)/=-99.9999) then
28                if(ts(u-2,v,w)/=-99.9999)then
29                   ts(u,v,w)=ts(u-1,v,w)+(-1)/(ts(u-2,v,w)-ts(u-1,v,w))
30                end if
31              end if
32           end do
33
34            if(ts(u,51,1)/=-99.9999) exit   //////   感觉这个地方有问题,我想表达没有缺省值才退出整个循环的意思
35            end if
36          end do
37      print*,"333"
38
39         do u=1,IMT
40             write(20,100),ts(u,51,1)
41          end do
42         close(10)
43         close(20)
44
45         end program
麻烦高手们帮我看看,感谢啦

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

新浪微博达人勋

0
早起挑战累计收入
发表于 2011-11-22 23:35:21 | 显示全部楼层
嘿嘿,用电脑的时候看看
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-11-23 12:58:50 | 显示全部楼层
高手给点力哦,帮忙看一下,感谢感谢感谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-12-6 22:59:16 | 显示全部楼层
我也想知道。。。。期待中。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-9-26 09:58:23 | 显示全部楼层

你好,有个数据,用他前一个和后一个线性插值该怎么算 啊?我第一次接触,不是很了解,求指教
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-3-4 17:53:19 | 显示全部楼层
这方法插值出来的值好大,一列数据最大3.9,大部分零点几一点几,缺省值插值出来都有上10的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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