Fortran Coder

查看: 17556|回复: 12
打印 上一主题 下一主题

[数学库] 调用IMSL后输出窗口什么都没,也没结果文件

[复制链接]

14

帖子

2

主题

0

精华

入门

F 币
79 元
贡献
39 点
跳转到指定楼层
楼主
发表于 2018-4-20 10:35:30 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
[Fortran] 纯文本查看 复制代码
program rbf

    Include 'link_fnl_shared.h'
        use numerical_libraries
    !use imsl
        implicit none
!***************************************  参数说明
        integer NumSam, NumVar               !NumSam采样点个数,NumVar变量个数
        parameter(NumSam = 30, NumVar = 3)   !!!!!需要修改
        real Bound(NumVar,2)     !max和min 用于正规化 
        real ParaIn(NumSam,NumVar), ParaOut(NumSam)                !采样数据(输入和输出)
        real ParaIn2(NumSam,NumVar), r(NumSam,NumSam), h(NumSam,NumSam), w(NumSam), c, temp
        real p(NumSam), ParaNew(NumVar), rNew(NumSam), hNew(NumSam), pNew, ap(NumSam),f(NumSam)
        integer i, j, k
        
    open (1, file = 'dem01.txt', status = 'old')  !采样数据 !!!!!需要修改文件名

        i = 0
        do while(.not.eof(1))
                i = i + 1
                read(1,*) ParaIn(i,1), ParaIn(i,2),ParaIn(i,3),f(i),ap(i),ParaOut(i)!!!!!需要修改

        enddo
        close(1)

!*  找max和min
        do i = 1, NumVar
                Bound(i,1) = ParaIn(1,i)
                Bound(i,2) = ParaIn(1,i)
        enddo
        do i = 2, NumSam
                do j = 1, NumVar
                        if (ParaIn(i,j) < Bound(j,1)) then        
                                Bound(j,1) = ParaIn(i,j)        
                        endif
                        if (ParaIn(i,j) > Bound(j,2)) then        
                                Bound(j,2) = ParaIn(i,j)        
                        endif
                enddo
        enddo

!**  中心化数据到[-1,+1]
        do i = 1, NumSam
                do j = 1, NumVar
                        ParaIn2(i,j) = (2*ParaIn(i,j)-Bound(j,1)-Bound(j,2)) / (Bound(j,2)-Bound(j,1))        
                enddo
        enddo
!***
        c = 0        !高斯径向基的系数c=正规化距离的平均值
        do i = 1, NumSam
                do j = 1, NumSam
                        temp = 0
                        do k = 1, NumVar
                                temp = temp + (ParaIn2(i,k) - ParaIn2(j,k))**2
                        enddo
                        r(i,j) = sqrt(temp)
                        c = c + r(i,j)
                enddo         
        enddo
        c = c / NumSam**2
        do i = 1, NumSam
                do j = 1, NumSam
                        h(i,j) = exp(-r(i,j)**2 / c**2)
                enddo
    enddo
    
        call LSARG(NumSam, h, NumSam, ParaOut, 1, w)    !得到系数w
   
        
!****代入原样本检验
        do i = 1, NumSam
                p(i) = 0
                do j = 1, NumSam
                        p(i) = p(i) + h(i,j) * w(j)
                enddo        
                write(*,*) ParaOut(i), p(i)
        enddo


        open(2, file = 'outdem003.txt', status = 'unknown')
        do i = 1, NumVar
                write(2, "(2f15.5)") Bound(i,1), Bound(i,2)
        enddo
        write(2, "(f15.5)") c
        do i = 1, NumSam
                write(2, "(30f15.5)") (ParaIn2(i,j), j = 1, NumVar)   !NumVar<30
        enddo
        do i = 1, NumSam
                write(2, "(f15.5)") w(i)
    enddo
    
       
    end program
    


dem01.txt

1.2 KB, 下载次数: 7

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

14

帖子

2

主题

0

精华

入门

F 币
79 元
贡献
39 点
沙发
 楼主| 发表于 2018-4-20 10:37:05 | 只看该作者
然后就是结果黑色窗口一闪而过,结果输出也不显示成功或者错误。

63

帖子

9

主题

0

精华

专家

超凡脱俗

F 币
474 元
贡献
237 点
板凳
发表于 2018-4-20 10:43:43 | 只看该作者
和运行方式有关系吧

试试下面方法之一

1.运行不调试
2.在程序尾加一句read(*,*)
天下英雄出我辈,一入江湖岁月催。

鸿图霸业谈笑间,不胜人生一场醉。

14

帖子

2

主题

0

精华

入门

F 币
79 元
贡献
39 点
地板
 楼主| 发表于 2018-4-20 10:51:59 | 只看该作者
Jackdaw 发表于 2018-4-20 10:43
和运行方式有关系吧

试试下面方法之一

您好 十分感谢您的回答  但是两个方法都试过了  结果还是一样。没有输出文件且输出窗口不显示成功或者错误!

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1643 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

5#
发表于 2018-4-21 08:16:10 | 只看该作者
我没有修改任何代码,在我这里的屏幕输出为
   119.8400       119.8400
   112.8700       112.8700
   108.2400       108.2400
   128.7700       128.7698
   113.7600       113.7600
   139.7800       139.7800
   127.9800       127.9800
   138.4000       138.3999
   141.1700       141.1698
   154.3800       154.3800
   132.2100       132.2099
   155.3500       155.3499
   129.2500       129.2501
   142.9800       142.9801
   113.3500       113.3502
   129.4200       129.4199
   119.0800       119.0800
   147.8700       147.8700
   151.9900       151.9899
   120.5400       120.5401
   118.0200       118.0203
   113.2700       113.2700
   136.8900       136.8901
   124.6800       124.6799
   117.1600       117.1600
   123.6300       123.6300
   135.6200       135.6202
   115.5100       115.5102
   147.2300       147.2300
   120.0700       120.0700

OutDem003.txt 文件输出结果为:
       20.03000       29.81000
        1.02000        2.99000
       30.11000       39.75000
        1.35034
       -1.00000        0.89848        0.66805
        0.22086        0.82741       -0.16805
        0.87117        0.69543       -0.85270
        0.60123       -0.54315       -0.51867
       -0.69734        0.18782       -0.78216
       -0.24131       -1.00000       -0.46888
        0.06339       -0.08629       -0.07054
        0.91820       -0.42132        0.14523
       -0.76483       -0.65482        0.00622
        0.83231       -0.57360        0.90871
        0.55010       -0.16751        0.05602
       -0.16973       -0.79695        0.95228
       -0.62986        0.21827        0.26556
        0.00614       -0.02538        1.00000
        0.12883        0.49239       -0.65145
       -0.84254        0.57360        0.51452
        0.41309        0.34010       -0.39627
       -0.57873       -0.93909        0.36307
       -0.06748       -0.83756        0.62448
        0.22699       -0.38071       -0.89419
       -0.47853        0.02538       -0.58714
       -0.37628        0.43147       -0.68257
        0.48057       -0.26904        0.32365
       -0.41309        0.78680        0.80705
        0.76074        0.65482       -0.32158
        1.00000        1.00000        0.74274
        0.65235        0.06599        0.47095
       -0.29448       -0.31980       -1.00000
        0.32720       -0.71574        0.17012
       -0.91411        0.28934       -0.22822
       58.86483
       35.64080
      168.60979
     -213.02975
      482.84708
        1.14506
      832.45135
      250.25693
      206.93732
      201.54350
      183.15138
      437.63736
     -214.97588
       62.41412
      -98.66692
      110.69569
      -75.31155
      -23.54513
     -549.66577
       93.36781
    -1022.24377
      154.78653
    -1478.49731
      -31.09103
     -131.95718
       69.51846
      351.78543
      120.82651
      572.92511
       75.13556

14

帖子

2

主题

0

精华

入门

F 币
79 元
贡献
39 点
6#
 楼主| 发表于 2018-4-22 08:56:15 | 只看该作者
fcode 发表于 2018-4-21 08:16
我没有修改任何代码,在我这里的屏幕输出为
   119.8400       119.8400
   112.8700       112.8700

您好,目前我在这个网盘链接下重装了软件  IMSL也重装了  现在还是黑色窗口一闪而过  不出结果!!  

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1643 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

7#
发表于 2018-4-24 10:58:44 | 只看该作者
单步调试一下,看运行到哪一步了。

14

帖子

2

主题

0

精华

入门

F 币
79 元
贡献
39 点
8#
 楼主| 发表于 2018-4-25 10:31:25 | 只看该作者
本帖最后由 wy123 于 2018-4-25 10:33 编辑
fcode 发表于 2018-4-24 10:58
单步调试一下,看运行到哪一步了。

单步调试 总是出现这个图片D:\Documents\调试     然后就是结果那个样子   D:\Documents\结果

调试.png (15.71 KB, 下载次数: 545)

调试

调试

结果.png (24.91 KB, 下载次数: 537)

结果

结果

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
9#
发表于 2018-4-25 14:34:21 | 只看该作者
请使用 debug 方式编译并调试

14

帖子

2

主题

0

精华

入门

F 币
79 元
贡献
39 点
10#
 楼主| 发表于 2018-4-25 15:18:41 | 只看该作者
额,换成Debug,结果如下所示。

单步调试.png (130.56 KB, 下载次数: 549)

调试1

调试1

单步调试1.png (7.29 KB, 下载次数: 535)

调试2

调试2

最后调试结果.png (19.58 KB, 下载次数: 503)

最后结果

最后结果
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-28 02:35

Powered by Tencent X3.4

© 2013-2024 Tencent

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