Fortran Coder

查看: 11839|回复: 2

[求助] fortran项目中DCOPY和DSCAL函数

[复制链接]

2

帖子

1

主题

0

精华

新人

F 币
17 元
贡献
8 点
发表于 2021-6-15 21:27:24 | 显示全部楼层 |阅读模式
前人编写的科学计算程序包,用它做计算的时候感觉其中有些错误,遂一一查看源程序,想查找其中原因。读程序时,现有一不明白处,想请教:譬如“adjmu.F”中子程序SUBROUTINE CONVFRIE的第431和432行为:
431     CALL DCOPY(NSTATE,WE(1),1,WEINT(1),1)
432     CALL DSCAL(NSTATE,-1.D0,WEINT(1),1)
遂去找这两个被调用的子程序DCOPY和DSCAL,adjmu.F文件中无此子程序任何信息,而子程序SUBROUTINE CONVFRIE的头文件system.h,nlps.inc,fint.inc中也无信息。有些迷茫了,在这些相关的地方就没有这两个被调用的子程序,那这两个子程序在哪里呢,这个调用是如何做到的呢?
对于大型的Fortran项目,做出修补,从何处下手较为合适?

adjmu.zip

12.45 KB, 下载次数: 0

213

帖子

2

主题

0

精华

宗师

F 币
2126 元
贡献
875 点

规矩勋章

发表于 2021-6-15 22:17:38 | 显示全部楼层
DCOPY, DSCAL是Lahey Fortan专属子程序。


DCOPY
SUBROUTINE DCOPY (N, DX, INCX, DY, INCY)
Purpose

            Copy a vector.

GAMS Category

D1A5

Author(s)

           Lawson, C. L., (JPL)
           Hanson, R. J., (SNLA)
           Kincaid, D. R., (U. of Texas)
           Krogh, F. T., (JPL)

Description


                B L A S  Subprogram
    Description of Parameters

     --Input--
        N  number of elements in input vector(s)
       DX  double precision vector with N elements
     INCX  storage spacing between elements of DX
       DY  double precision vector with N elements
     INCY  storage spacing between elements of DY

     --Output--
       DY  copy of vector DX (unchanged if N .LE. 0)

     Copy double precision DX to double precision DY.
     For I = 0 to N-1, copy DX(LX+I*INCX) to DY(LY+I*INCY),
     where LX = 1 if INCX .GE. 0, else LX = 1+(1-N)*INCX, and LY is
     defined in a similar way using INCY.


DSCAL
SUBROUTINE DSCAL (N, DA, DX, INCX)
Purpose

            Multiply a vector by a constant.

GAMS Category

D1A6

Author(s)

           Lawson, C. L., (JPL)
           Hanson, R. J., (SNLA)
           Kincaid, D. R., (U. of Texas)
           Krogh, F. T., (JPL)

Description


                B L A S  Subprogram
    Description of Parameters

     --Input--
        N  number of elements in input vector(s)
       DA  double precision scale factor
       DX  double precision vector with N elements
     INCX  storage spacing between elements of DX

     --Output--
       DX  double precision result (unchanged if N.LE.0)

     Replace double precision DX by double precision DA*DX.
     For I = 0 to N-1, replace DX(IX+I*INCX) with  DA * DX(IX+I*INCX),
     where IX = 1 if INCX .GE. 0, else IX = 1+(1-N)*INCX.

2

帖子

1

主题

0

精华

新人

F 币
17 元
贡献
8 点
 楼主| 发表于 2021-6-16 09:12:29 | 显示全部楼层
风平老涡 发表于 2021-6-15 22:17
DCOPY, DSCAL是Lahey Fortan专属子程序。

谢谢大神指导。之前朝着这个方向想了想,百度没有丝毫线索,还是应该采用google
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-4-16 12:04

Powered by Tencent X3.4

© 2013-2024 Tencent

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