Присвоение значений массиву ipntr в ARPACK - PullRequest
2 голосов
/ 02 сентября 2011

Я пытаюсь выяснить, как значения присваиваются массиву с именем ipntr, который хранит указатели, в ARPACK. Я относительно новичок в Фортране и не могу понять, как именно устанавливаются значения этого массива. Код, который я рассматриваю, представляет собой пример несимметричного драйвера 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

Результат оператора записи:

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

Очевидно, что нет ничего похожего на ipntr (1) = 1606679396, так как же эти значения были назначены?

Спасибо

1 Ответ

3 голосов
/ 02 сентября 2011

Если переменные нигде не назначены, то их значения будут определяться любой случайной последовательностью байтов, находящейся в памяти. Вы должны увидеть, что при повторном запуске программы будет получена другая последовательность вывода.

...