wy123 发表于 2018-4-20 10:35:30

调用IMSL后输出窗口什么都没,也没结果文件

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
   


wy123 发表于 2018-4-20 10:37:05

然后就是结果黑色窗口一闪而过,结果输出也不显示成功或者错误。

Jackdaw 发表于 2018-4-20 10:43:43

和运行方式有关系吧

试试下面方法之一

1.运行不调试
2.在程序尾加一句read(*,*)

wy123 发表于 2018-4-20 10:51:59

Jackdaw 发表于 2018-4-20 10:43
和运行方式有关系吧

试试下面方法之一


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

fcode 发表于 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

wy123 发表于 2018-4-22 08:56:15

fcode 发表于 2018-4-21 08:16
我没有修改任何代码,在我这里的屏幕输出为
   119.8400       119.8400
   112.8700       112.8700


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

fcode 发表于 2018-4-24 10:58:44

单步调试一下,看运行到哪一步了。

wy123 发表于 2018-4-25 10:31:25

本帖最后由 wy123 于 2018-4-25 10:33 编辑

fcode 发表于 2018-4-24 10:58
单步调试一下,看运行到哪一步了。
单步调试 总是出现这个图片D:\Documents\调试   然后就是结果那个样子   D:\Documents\结果

vvt 发表于 2018-4-25 14:34:21

请使用 debug 方式编译并调试

wy123 发表于 2018-4-25 15:18:41

额,换成Debug,结果如下所示。
页: [1] 2
查看完整版本: 调用IMSL后输出窗口什么都没,也没结果文件