运用imsl库作的二维插值 - 核能革新 ChinaNet
热图推荐
    查看: 7568|回复: 0
    打印 上一主题 下一主题

    运用imsl库作的二维插值

    [复制链接]

    36

    主题

    38

    帖子

    118

    积分

    注册会员

    Rank: 2

    积分
    118
    跳转到指定楼层
    楼主
    发表于 2015-4-8 10:57:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    这是for "compaq visual fortran 6.5" 的,请用其他编译器的朋友稍作改动:

    c **************************************************************************
    c ** subroutine to do B-spline Interpolation **
    c **************************************************************************
    c ** **
    c ** NOTE: link with option '/IMSL'. **
    c ** **
    c ** FDATA(NXDATA,NYDATA) -- input array to do interpolation **
    c ** VALUE(NXVEC,NYVEC) -- output array to do interpolation **
    c ** BGX,BGY -- begin value of x and y grid (in agreement with FDATA) **
    c ** VGX,VGY -- begin value of x and y grid (in agreement with VALUE) **
    c ** G1 -- the grid interval of x & y dimension (in agreement with FDATA)**
    c ** G2 -- the grid interval of x & y dimension (in agreement with FDATA)**
    c ** **
    c **************************************************************************
    SUBROUTINE INTERLIB(FDATA,NXDATA,NYDATA,BGX,BGY,
    + VALUE,NXVEC, NYVEC, VGX,VGY, G1,G2)
    DIMENSION FDATA(NXDATA,NYDATA), VALUE(NXVEC,NYVEC)
    DIMENSION BSCOEF(NXDATA,NYDATA), XDATA(NXDATA), YDATA(NYDATA)
    DIMENSION XKNOT(NXDATA+NXVEC), YKNOT(NYDATA+NYVEC)
    DIMENSION XVEC(NXVEC), YVEC(NYVEC)
    EXTERNAL BS2GD, BS2IN, BSNAK

    KXORD = 5
    KYORD = 5
    LDF = NXDATA

    DO I=1,NXDATA
    XDATA(I)=BGX+(I-1)*G1
    ENDDO
    DO J=1,NYDATA
    YDATA(J)=BGY+(J-1)*G1
    ENDDO
    DO I=1, NXVEC
    XVEC(I) = VGX+(I-1)*G2
    ENDDO
    DO I=1, NYVEC
    YVEC(I) = VGY+(I-1)*G2
    ENDDO
    C
    CALL BSNAK (NXDATA, XDATA, KXORD, XKNOT)
    CALL BSNAK (NYDATA, YDATA, KYORD, YKNOT)
    CALL BS2IN (NXDATA, XDATA, NYDATA, YDATA, FDATA, LDF, KXORD,
    & KYORD, XKNOT, YKNOT, BSCOEF)
    NXCOEF = NXDATA
    NYCOEF = NYDATA
    C
    CALL BS2GD (0, 0, NXVEC, XVEC, NYVEC, YVEC, KXORD, KYORD, XKNOT,
    & YKNOT, NXCOEF, NYCOEF, BSCOEF, VALUE, NXVEC)

    RETURN
    END


    转自52MC
    回复

    使用道具 举报

      关注我们
    • 微信公众号:
    • NuclearNet
    • 扫描二维码加关注

    Powered by Discuz! X3.2 © 2001-2013 Comsenz Inc.

    联系我们|网站声明|中国核网-核能领域第一垂直门户网站

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