爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 13348|回复: 0

[源代码] 双线性差值 :格点插值到站点

[复制链接]

新浪微博达人勋

发表于 2020-4-14 17:01:05 | 显示全部楼层 |阅读模式

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

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

x
子程序源代码:
    !双线性差值  :生成双线性 4个点的权重
    program test
real            ::A_lon,A_lat,B_lon,B_lat,C_lon,C_lat,D_lon,D_lat,X_lon,X_lat,a,b,c,d,E_lon,F_lon,M
call BilinearInterpolation(0.0,0.0,0.0,5.0,10.0,5.0,10.0,0.0,2.0,2.0,a,b,c,d)
print*,a*1.0+b*2.0+c*3.0+d*4.0
        end program test

        SUBROUTINE      BilinearInterpolation(A_lon,A_lat,B_lon,B_lat,C_lon,C_lat,D_lon,D_lat,X_lon,X_lat,a,b,c,d)  
                        !A B C D为包含X点的4个格点,从左下角开始顺时针排列,a,b,c,d是4个格点对X的权重系数
         real            ::A_lon,A_lat,B_lon,B_lat,C_lon,C_lat,D_lon,D_lat,X_lon,X_lat,a,b,c,d,E_lon,F_lon,M
     E_lon=(B_lon-A_lon)*(X_lat-A_lat)/(B_lat-A_lat)+A_lon
         F_lon=(C_lon-D_lon)*(X_lat-D_lat)/(C_lat-D_lat)+D_lon
     M=(X_lon-E_lon)/(F_lon-E_lon)
         a=(1-M)*(B_lat-X_lat)/(B_lat-A_lat)
         b=(1-M)*(X_lat-A_lat)/(B_lat-A_lat)
         c=M*(X_lat-D_lat)/(C_lat-D_lat)
         d=M*(C_lat-X_lat)/(C_lat-D_lat)
!     X=a*A_+b*B_+c*C_+d*D_
        END SUBROUTINE  BilinearInterpolation

http://bbs.06climate.com/forum.php?mod=attachment&aid=OTAyNzh8MzlmY2M3YTEyNjE2M2NlZjAwMDQ4NGNkYWQwNDExOGV8MTczMjY5MzY3NQ%3D%3D&request=yes&_f=.f90 BilinearInterpolation.f90 (979 Bytes, 下载次数: 13)
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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