一个fortran IMSL实例(Fortran PowerStation 4.0)

简介: 在Fortran PowerStation 4.0中自带IMSL,可看帮助文件,新建一个工程,加入它的例子bsint_ex.for (.for为标准fortran语言格式文本) CC Compute the spline interpolant, returning the B-spline coefficients.

在Fortran PowerStation 4.0中自带IMSL,可看帮助文件,新建一个工程,加入它的例子bsint_ex.for

(.for为标准fortran语言格式文本)

C
C Compute the spline interpolant, returning the B-spline coefficients.
C
C In this example, a spline interpolant S, to F(X) = SQRT(X), is
C computed. The interpolated values are then compared with the exact
C function values using the IMSL routine BSVAL.
C
C Output:
C
C       X                   S(X)                  Error
C
C  0.0000                 0.0000               0.000000
C  0.1250                 0.2918               0.061781
C  0.2500                 0.5000               0.000000
C  0.3750                 0.6247              -0.012311
C  0.5000                 0.7071               0.000000
C  0.6250                 0.7886               0.002013
C  0.7500                 0.8660               0.000000
C  0.8750                 0.9365              -0.001092
C  1.0000                 1.0000               0.000000
C
      USE MSIMSLMD
C
      INTEGER    KORDER, NDATA, NKNOT
      PARAMETER  (KORDER=3, NDATA=5, NKNOT=NDATA+KORDER)
C
      INTEGER    I, NCOEF, NOUT
      DOUBLE PRECISION BSCOEF(NDATA), BT, F, FDATA(NDATA), DBLE,
     &           DSQRT, X, XDATA(NDATA), XKNOT(NKNOT), XT
      INTRINSIC  DBLE, DSQRT

C                                  Define function
      F(X) = DSQRT(X)
C                                  Set up interpolation points
      DO 10  I=1, NDATA
         XDATA(I) = DBLE(I-1)/DBLE(NDATA-1)
         FDATA(I) = F(XDATA(I))
   10 CONTINUE
C                                  Generate knot sequence
      CALL DBSNAK (NDATA, XDATA, KORDER, XKNOT)
C                                  Interpolate
      CALL DBSINT (NDATA, XDATA, FDATA, KORDER, XKNOT, BSCOEF)
C                                  Get output unit number
      CALL UMACH (2, NOUT)
C                                  Write heading
      WRITE (NOUT,99999)
C                                  Print on a finer grid
      NCOEF = NDATA
      XT    = XDATA(1)
C                                  Evaluate spline
      BT    = DBSVAL(XT,KORDER,XKNOT,NCOEF,BSCOEF)
      WRITE (NOUT,99998) XT, BT, F(XT) - BT
      DO 20  I=2, NDATA
         XT = (XDATA(I-1)+XDATA(I))/2.0D0
C                                  Evaluate spline
         BT = DBSVAL(XT,KORDER,XKNOT,NCOEF,BSCOEF)
         WRITE (NOUT,99998) XT, BT, F(XT) - BT
         XT = XDATA(I)
C                                  Evaluate spline
         BT = DBSVAL(XT,KORDER,XKNOT,NCOEF,BSCOEF)
         WRITE (NOUT,99998) XT, BT, F(XT) - BT
   20 CONTINUE
99998 FORMAT (' ', F6.4, 15X, F8.4, 12X, F11.6)
99999 FORMAT (/, 6X, 'X', 19X, 'S(X)', 18X, 'Error', /)
      END

相关文章
|
7月前
|
Rust 区块链
学Rust不学Cargo,等于没学Rust:features特性详解
在 Rust 中,Cargo 的 "features" 是一种条件编译机制,允许在编译 crate 时编译部分代码。这样可以在一个 crate 中提供多个功能,并根据需要选择性地启用或禁用这些功能。
221 1
|
IDE 编译器 开发工具
编程前的准备:编译器的安装
编程前的准备:编译器的安装
57 0
|
7月前
|
Rust 编译器 容器
|
7月前
|
Rust 算法 C++
【从 C++ 到 Rust:掌握 Rust 基础语法】From C++ to Rust: Mastering Rust Basics
【从 C++ 到 Rust:掌握 Rust 基础语法】From C++ to Rust: Mastering Rust Basics
130 0
|
7月前
|
Rust 编译器
【Rust】——函数
【Rust】——函数
|
7月前
|
Rust Java 编译器
【一起学Rust | 基础篇】rust函数与流程控制详解
【一起学Rust | 基础篇】rust函数与流程控制详解
98 0
【一起学Rust | 基础篇】rust函数与流程控制详解
|
7月前
|
存储 Rust 编译器
Rust 笔记:Rust 语言中的常量与变量
Rust 笔记:Rust 语言中的常量与变量
110 0
|
7月前
|
存储 Rust 索引
Rust 笔记:Rust 语言中的运算符
Rust 笔记:Rust 语言中的运算符
232 0
|
7月前
|
编译器 Linux vr&ar
C语言静态编译和动态编译
C语言静态编译和动态编译
150 0
|
JSON Rust C语言
【Rust 基础篇】Rust宏:代码生成的黑魔法
Rust是一门以安全性和性能著称的系统级编程语言,它提供了强大的宏系统,使得开发者可以在编译期间生成代码,实现元编程(Metaprogramming)。宏是Rust中的一种特殊函数,它可以接受代码片段作为输入,并根据需要生成代码片段作为输出。本篇博客将深入探讨Rust中的宏,包括宏的定义、宏的分类、宏的使用方法,以及一些实际场景中的应用案例,以便读者全面了解Rust宏的神奇之处。
170 0