在ARPACK中将值分配给数组ipntr

时间:2011-09-02 04:01:23

标签: fortran arpack

我试图弄清楚如何在ARPACK中将值分配给名为ipntr的数组,该数组存储指针。我对fortran相对较新,我无法弄清楚这个数组的值是如何初始设置的。我正在看的代码是一个不对称的驱动程序示例dndrv1.f与ARPACK一起分发,我不理解的部分如下

      program dndrv1 

      integer           maxn, maxnev, maxncv, ldv
      parameter         (maxn=256, maxnev=12, maxncv=30, ldv=maxn)
c
c     %--------------%
c     | Local Arrays |
c     %--------------%
c
      integer           iparam(11), ipntr(14)
      logical           select(maxncv)
      Double precision
     &                  ax(maxn), d(maxncv,3), resid(maxn), 
     &                  v(ldv,maxncv), workd(3*maxn), 
     &                  workev(3*maxncv), 
     &                  workl(3*maxncv*maxncv+6*maxncv)
c
c     %---------------%
c     | Local Scalars |
c     %---------------%
c
      character         bmat*1, which*2
      integer           ido, n, nx, nev, ncv, lworkl, info, j,
     &                  ierr, nconv, maxitr, ishfts, mode
      Double precision
     &                  tol, sigmar, sigmai
      logical           first, rvec
c
c     %------------%
c     | Parameters |
c     %------------%
c
      Double precision
     &                  zero
      parameter         (zero = 0.0D+0)
c
c     %-----------------------------%
c     | BLAS & LAPACK routines used |
c     %-----------------------------%
c
      Double precision
     &                  dlapy2, dnrm2
      external          dlapy2, dnrm2, daxpy
c
c     %--------------------%
c     | Intrinsic function |
c     %--------------------%
c
      intrinsic         abs

      write(*,*) ipntr

write语句的结果是:

1606679396 32767 1606696480 32767 1606918048 32767 0 0 0 0 0 0 0 0

显然没有像ipntr(1)= 1606679396这样的值如何分配这些值?

由于

1 个答案:

答案 0 :(得分:3)

如果变量未在任何地方分配,那么它们的值将由任何随机字节序列恰好驻留在内存中来确定。您应该看到重新运行程序将产生不同的输出序列。