回 帖 发 新 帖 刷新版面

主题:ZHEEVD请指教

     想问下zheevd参数的类型。A是COMPLEX*16类型,不明白为什么我从外部向里面传输的时候把A设成 complex*8,程序可以运行,而设成 complex*16,则提示出错了!!

错误 1  error #6633: The type of the actual argument differs from the type of the dummy argument.   [H] 

数据类型是这么设的:

complex(16),allocatable  :: vx(:,:),vy(:,:),
     s h(:,:),v(:,:),tem(:,:)

 allocate(h(ns,ns),v(ns,ns),ek(ns),
     s vx(ns,ns),vy(ns,ns),tem(ns,ns),stat=ierr)
谁能告诉我问题出在哪里吗?把16换成8就可以了。但是我担心回影响结果所以想把数据类型取的精确点。

 SUBROUTINE ZHEEVD( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK,
     $                   LRWORK, IWORK, LIWORK, INFO )
*
*  -- LAPACK driver routine (version 3.2) --
*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
*     November 2006
*
*     .. Scalar Arguments ..
      CHARACTER          JOBZ, UPLO
      INTEGER            INFO, LDA, LIWORK, LRWORK, LWORK, N
*     ..
*     .. Array Arguments ..
      INTEGER            IWORK( * )
      DOUBLE PRECISION   RWORK( * ), W( * )
      COMPLEX*16         A( LDA, * ), WORK( * )
*     ..
*

回复列表 (共1个回复)

沙发

complex(16) 等同于complex(kind=16), 是四精度浮点数. complex(kind=8)等同于complex*16.
这个问题上, 彭书似乎是写错的.

我来回复

您尚未登录,请登录后再回复。点此登录或注册