Civil Engineering Reference
In-Depth Information
END DO elements_3
CALL scatter(udiag_pp,utemp_pp) !udiag is A.l**(-1/2).va
udiag_pp = udiag_pp * diag_pp ; ua_pp = ua_pp + udiag_pp
END DO
!-------------- iflag = 0 therefore write out the spectrum ---------------
IF(numpe==npes) THEN
WRITE(11,'(2(A,E12.4))') "The range is",el," to ",er
WRITE(11,'(A,I8,A)') "There are ",neig," eigenvalues in the range"
WRITE(11,'(A,I8,A)') "It took ",iters," iterations"
WRITE(11,'(A)') "The eigenvalues are
:"
WRITE(11,'(6E12.4)') eig(1:neig)
END IF
! calculate the eigenvectors
IF(neig>10)neig = 10
CALL lancz2(neq_pp,lalfa,lp,eig,jeig,neig,alfa,beta,lz,jflag,y_pp,
&
w1_pp,z_pp,v_store_pp)
!------------------if jflag is zero calculate the eigenvectors ----------
IF (jflag==0) THEN
IF(numpe==npes) THEN
WRITE(11,'(A)') "The eigenvectors are :"
DO i = 1 , nmodes
udiag_pp(:) = y_pp(:,i) ; udiag_pp = udiag_pp * diag_pp
WRITE(11,'("Eigenvector number ",I4," is: ")') i
WRITE(11,'(6E12.4)') udiag_pp(1:6)
END DO
ELSE
! lancz2 fails
WRITE(11,'(A,I5)')" Lancz2 is signalling failure with jflag = ",jflag
END IF
END IF
IF(numpe==npes) WRITE(11,*)"This analysis took :", elap_time()-timest(1)
CALL shutdown( )
END PROGRAM p128
New scalar integers:
iflag
failure flag
jflag
failure flag
lalfa
length of
alfa
array
leig
length of
eig
array
lp
output channel number
lx
problem dependent array size
lz
problem dependent array size
neig
problem dependent array size
nmodes
number of eigenmodes computed
New scalar reals:
acc
accuracy parameter
left limit of eigenvalue spectrum
el
right limit of eigenvalue spectrum
er
lancz1
and
lancz2
are aliases for
ep25a/ad
and
ep25e/ed
of HSL (2002).