159599516SKenneth E. Jansen subroutine e3eig1 (rho, T, cp, gamb, c, 259599516SKenneth E. Jansen & u1, u2, u3, a1, a2, 359599516SKenneth E. Jansen & a3, eb1, 459599516SKenneth E. Jansen & dxidx, u, Q) 559599516SKenneth E. Jansenc 659599516SKenneth E. Jansenc---------------------------------------------------------------------- 759599516SKenneth E. Jansenc 859599516SKenneth E. Jansenc This routine performs the first step of the eigenvalue decomposition 959599516SKenneth E. Jansenc of the Tau matrix. 1059599516SKenneth E. Jansenc 1159599516SKenneth E. Jansenc input: 1259599516SKenneth E. Jansenc rho (npro) : density 1359599516SKenneth E. Jansenc T (npro) : temperature 1459599516SKenneth E. Jansenc cp (npro) : specific heat at constant pressure 1559599516SKenneth E. Jansenc gamb (npro) : gamma_bar (defined in paper by Chalot et al.) 1659599516SKenneth E. Jansenc c (npro) : speed of sound 1759599516SKenneth E. Jansenc u1 (npro) : x1-velocity component 1859599516SKenneth E. Jansenc u2 (npro) : x2-velocity component 1959599516SKenneth E. Jansenc u3 (npro) : x3-velocity component 2059599516SKenneth E. Jansenc a1 (npro) : x1-acceleration component 2159599516SKenneth E. Jansenc a2 (npro) : x2-acceleration component 2259599516SKenneth E. Jansenc a3 (npro) : x3-acceleration component 2359599516SKenneth E. Jansenc eb1 (npro) : e1_bar (defined in paper by Chalot et al.) 2459599516SKenneth E. Jansenc dxidx (npro,nsd,nsd) : inverse of deformation gradient 2559599516SKenneth E. Jansenc 2659599516SKenneth E. Jansenc output: 2759599516SKenneth E. Jansenc u (npro) : fluid velocity 2859599516SKenneth E. Jansenc a1 (npro) : aspect ratio factor in streamline direction 2959599516SKenneth E. Jansenc a2 (npro) : aspect ratio factor in normal_1 direction 3059599516SKenneth E. Jansenc a3 (npro) : aspect ratio factor in normal_2 direction 3159599516SKenneth E. Jansenc Q (npro,nflow,nflow) : 1st level eigenvectors of Tau matrix 3259599516SKenneth E. Jansenc 3359599516SKenneth E. Jansenc 3459599516SKenneth E. Jansenc Zdenek Johan, Summer 1990. (Modified from e2tau.f) 3559599516SKenneth E. Jansenc Zdenek Johan, Winter 1991. (Fortran 90) 3659599516SKenneth E. Jansenc---------------------------------------------------------------------- 3759599516SKenneth E. Jansenc 3859599516SKenneth E. Jansen include "common.h" 3959599516SKenneth E. Jansenc 4059599516SKenneth E. Jansen dimension rho(npro), T(npro), 4159599516SKenneth E. Jansen & cp(npro), gamb(npro), 4259599516SKenneth E. Jansen & c(npro), u1(npro), 4359599516SKenneth E. Jansen & u2(npro), u3(npro), 4459599516SKenneth E. Jansen & a1(npro), a2(npro), 4559599516SKenneth E. Jansen & a3(npro), 4659599516SKenneth E. Jansen & eb1(npro), dxidx(npro,nsd,nsd), 4759599516SKenneth E. Jansen & u(npro), Q(npro,nflow,nflow) 4859599516SKenneth E. Jansenc 4959599516SKenneth E. Jansen dimension Rcs(npro,nsd,nsd), fact(npro), 5059599516SKenneth E. Jansen & temp(npro) 5159599516SKenneth E. Jansenc 5259599516SKenneth E. Jansenc.... compute the directional cosines (streamline direction) 5359599516SKenneth E. Jansenc 5459599516SKenneth E. Jansenc 5559599516SKenneth E. Jansen 5659599516SKenneth E. Jansen where (u .ne. zero) 5759599516SKenneth E. Jansen fact = one / u 5859599516SKenneth E. Jansen Rcs(:,1,1) = u1 * fact 5959599516SKenneth E. Jansen Rcs(:,1,2) = u2 * fact 6059599516SKenneth E. Jansen Rcs(:,1,3) = u3 * fact 6159599516SKenneth E. Jansen elsewhere 6259599516SKenneth E. Jansen Rcs(:,1,1) = one 6359599516SKenneth E. Jansen Rcs(:,1,2) = zero 6459599516SKenneth E. Jansen Rcs(:,1,3) = zero 6559599516SKenneth E. Jansen endwhere 6659599516SKenneth E. Jansenc 6759599516SKenneth E. Jansenc.... compute the directional cosines (normal acceleration direction) 6859599516SKenneth E. Jansenc 6959599516SKenneth E. Jansen 7059599516SKenneth E. Jansen 7159599516SKenneth E. Jansen fact = a1 * Rcs(:,1,1) + a2 * Rcs(:,1,2) + a3 * Rcs(:,1,3) 7259599516SKenneth E. Jansen a1 = a1 - fact * Rcs(:,1,1) 7359599516SKenneth E. Jansen a2 = a2 - fact * Rcs(:,1,2) 7459599516SKenneth E. Jansen a3 = a3 - fact * Rcs(:,1,3) 7559599516SKenneth E. Jansen fact = a1**2 + a2**2 + a3**2 7659599516SKenneth E. Jansenc 7759599516SKenneth E. Jansen where (fact .gt. epsM) 7859599516SKenneth E. Jansenc 7959599516SKenneth E. Jansen Rcs(:,2,1) = a1 8059599516SKenneth E. Jansen Rcs(:,2,2) = a2 8159599516SKenneth E. Jansen Rcs(:,2,3) = a3 8259599516SKenneth E. Jansenc 8359599516SKenneth E. Jansen elsewhere 8459599516SKenneth E. Jansenc 8559599516SKenneth E. Jansen Rcs(:,2,1) = Rcs(:,1,2) 8659599516SKenneth E. Jansen & + sign(one, Rcs(:,1,2)*Rcs(:,1,3)) * Rcs(:,1,3) 8759599516SKenneth E. Jansen Rcs(:,2,2) = - Rcs(:,1,1) 8859599516SKenneth E. Jansen & - sign(one, Rcs(:,1,2)*Rcs(:,1,3)) * Rcs(:,1,3) 8959599516SKenneth E. Jansen Rcs(:,2,3) = sign(one, Rcs(:,1,2)*Rcs(:,1,3)) * 9059599516SKenneth E. Jansen & ( Rcs(:,1,2) - Rcs(:,1,1) ) 9159599516SKenneth E. Jansenc 9259599516SKenneth E. Jansen fact = Rcs(:,2,1)**2 + Rcs(:,2,2)**2 + Rcs(:,2,3)**2 9359599516SKenneth E. Jansenc 9459599516SKenneth E. Jansen endwhere 9559599516SKenneth E. Jansenc 9659599516SKenneth E. Jansen fact = one / sqrt(fact) 9759599516SKenneth E. Jansenc 9859599516SKenneth E. Jansen Rcs(:,2,1) = Rcs(:,2,1) * fact 9959599516SKenneth E. Jansen Rcs(:,2,2) = Rcs(:,2,2) * fact 10059599516SKenneth E. Jansen Rcs(:,2,3) = Rcs(:,2,3) * fact 10159599516SKenneth E. Jansenc 10259599516SKenneth E. Jansenc.... compute the directional cosines (last direction) 10359599516SKenneth E. Jansenc 10459599516SKenneth E. Jansen Rcs(:,3,1) = Rcs(:,1,2) * Rcs(:,2,3) - Rcs(:,1,3) * Rcs(:,2,2) 10559599516SKenneth E. Jansen Rcs(:,3,2) = Rcs(:,1,3) * Rcs(:,2,1) - Rcs(:,1,1) * Rcs(:,2,3) 10659599516SKenneth E. Jansen Rcs(:,3,3) = Rcs(:,1,1) * Rcs(:,2,2) - Rcs(:,1,2) * Rcs(:,2,1) 10759599516SKenneth E. Jansen 10859599516SKenneth E. Jansenc 10959599516SKenneth E. Jansenc.... calculate the element aspect ratio factors 11059599516SKenneth E. Jansenc 11159599516SKenneth E. Jansen a1 = Rcs(:,1,1) * dxidx(:,1,1) + Rcs(:,1,2) * dxidx(:,1,2) + 11259599516SKenneth E. Jansen & Rcs(:,1,3) * dxidx(:,1,3) 11359599516SKenneth E. Jansen a2 = Rcs(:,2,1) * dxidx(:,1,1) + Rcs(:,2,2) * dxidx(:,1,2) + 11459599516SKenneth E. Jansen & Rcs(:,2,3) * dxidx(:,1,3) 11559599516SKenneth E. Jansen a3 = Rcs(:,3,1) * dxidx(:,1,1) + Rcs(:,3,2) * dxidx(:,1,2) + 11659599516SKenneth E. Jansen & Rcs(:,3,3) * dxidx(:,1,3) 11759599516SKenneth E. Jansen dxidx(:,1,1) = a1 11859599516SKenneth E. Jansen dxidx(:,1,2) = a2 11959599516SKenneth E. Jansen dxidx(:,1,3) = a3 12059599516SKenneth E. Jansenc 12159599516SKenneth E. Jansen a1 = Rcs(:,1,1) * dxidx(:,2,1) + Rcs(:,1,2) * dxidx(:,2,2) + 12259599516SKenneth E. Jansen & Rcs(:,1,3) * dxidx(:,2,3) 12359599516SKenneth E. Jansen a2 = Rcs(:,2,1) * dxidx(:,2,1) + Rcs(:,2,2) * dxidx(:,2,2) + 12459599516SKenneth E. Jansen & Rcs(:,2,3) * dxidx(:,2,3) 12559599516SKenneth E. Jansen a3 = Rcs(:,3,1) * dxidx(:,2,1) + Rcs(:,3,2) * dxidx(:,2,2) + 12659599516SKenneth E. Jansen & Rcs(:,3,3) * dxidx(:,2,3) 12759599516SKenneth E. Jansen dxidx(:,2,1) = a1 12859599516SKenneth E. Jansen dxidx(:,2,2) = a2 12959599516SKenneth E. Jansen dxidx(:,2,3) = a3 13059599516SKenneth E. Jansenc 13159599516SKenneth E. Jansen a1 = Rcs(:,1,1) * dxidx(:,3,1) + Rcs(:,1,2) * dxidx(:,3,2) + 13259599516SKenneth E. Jansen & Rcs(:,1,3) * dxidx(:,3,3) 13359599516SKenneth E. Jansen a2 = Rcs(:,2,1) * dxidx(:,3,1) + Rcs(:,2,2) * dxidx(:,3,2) + 13459599516SKenneth E. Jansen & Rcs(:,2,3) * dxidx(:,3,3) 13559599516SKenneth E. Jansen a3 = Rcs(:,3,1) * dxidx(:,3,1) + Rcs(:,3,2) * dxidx(:,3,2) + 13659599516SKenneth E. Jansen & Rcs(:,3,3) * dxidx(:,3,3) 13759599516SKenneth E. Jansen dxidx(:,3,1) = a1 13859599516SKenneth E. Jansen dxidx(:,3,2) = a2 13959599516SKenneth E. Jansen dxidx(:,3,3) = a3 14059599516SKenneth E. Jansen 14159599516SKenneth E. Jansenc 14259599516SKenneth E. Jansenc... original 14359599516SKenneth E. Jansenc 14459599516SKenneth E. Jansen 14559599516SKenneth E. Jansen a1 = dxidx(:,1,1)**2 + dxidx(:,2,1)**2 + dxidx(:,3,1)**2 14659599516SKenneth E. Jansen a2 = dxidx(:,1,2)**2 + dxidx(:,2,2)**2 + dxidx(:,3,2)**2 14759599516SKenneth E. Jansen a3 = dxidx(:,1,3)**2 + dxidx(:,2,3)**2 + dxidx(:,3,3)**2 14859599516SKenneth E. Jansen 14959599516SKenneth E. Jansenc 15059599516SKenneth E. Jansenc... change from original (analyt., could be error) 15159599516SKenneth E. Jansenc 15259599516SKenneth E. Jansen 15359599516SKenneth E. Jansencc a1 = dxidx(:,1,1)**2 + dxidx(:,1,2)**2 + dxidx(:,1,3)**2 15459599516SKenneth E. Jansencc a2 = dxidx(:,2,1)**2 + dxidx(:,2,2)**2 + dxidx(:,2,3)**2 15559599516SKenneth E. Jansencc a3 = dxidx(:,3,1)**2 + dxidx(:,3,2)**2 + dxidx(:,3,3)**2 15659599516SKenneth E. Jansen 15759599516SKenneth E. Jansenc 15859599516SKenneth E. Jansenc.... correct for tetrahedra 15959599516SKenneth E. Jansenc 16059599516SKenneth E. Jansen if (lcsyst .eq. 1) then 16159599516SKenneth E. Jansen a1 = ( a1 + (dxidx(:,1,1) + dxidx(:,2,1) + 16259599516SKenneth E. Jansen & dxidx(:,3,1))**2 ) * pt39 16359599516SKenneth E. Jansen a2 = ( a2 + (dxidx(:,1,2) + dxidx(:,2,2) + 16459599516SKenneth E. Jansen & dxidx(:,3,2))**2 ) * pt39 16559599516SKenneth E. Jansen a3 = ( a3 + (dxidx(:,1,3) + dxidx(:,2,3) + 16659599516SKenneth E. Jansen & dxidx(:,3,3))**2 ) * pt39 16759599516SKenneth E. Jansenc 168*f4d0b58bSKenneth E. Jansen! flops = flops + 15*npro 16959599516SKenneth E. Jansen endif 17059599516SKenneth E. Jansenc 17159599516SKenneth E. Jansenc.... set up the 1st level Eigenvectors = R_t*Tau^* 17259599516SKenneth E. Jansenc 17359599516SKenneth E. Jansen fact = (one / sqrt( two * rho * T )) / c 17459599516SKenneth E. Jansenc 17559599516SKenneth E. Jansen Q(:,1,5) = fact * ((c + u) * c - eb1 * gamb) 17659599516SKenneth E. Jansen Q(:,2,5) = -fact * (c + u * gamb) * Rcs(:,1,1) 17759599516SKenneth E. Jansen Q(:,3,5) = -fact * (c + u * gamb) * Rcs(:,1,2) 17859599516SKenneth E. Jansen Q(:,4,5) = -fact * (c + u * gamb) * Rcs(:,1,3) 17959599516SKenneth E. Jansen Q(:,5,5) = fact * gamb 18059599516SKenneth E. Jansenc 18159599516SKenneth E. Jansen Q(:,1,1) = fact * ((c - u) * c - eb1 * gamb) 18259599516SKenneth E. Jansen Q(:,2,1) = fact * (c - u * gamb) * Rcs(:,1,1) 18359599516SKenneth E. Jansen Q(:,3,1) = fact * (c - u * gamb) * Rcs(:,1,2) 18459599516SKenneth E. Jansen Q(:,4,1) = fact * (c - u * gamb) * Rcs(:,1,3) 18559599516SKenneth E. Jansen Q(:,5,1) = fact * gamb 18659599516SKenneth E. Jansenc 18759599516SKenneth E. Jansen Q(:,1,3) = zero 18859599516SKenneth E. Jansen Q(:,2,3) = -fact * c * sqt2 * Rcs(:,2,1) ! + in original Jo/Sh code 18959599516SKenneth E. Jansen Q(:,3,3) = -fact * c * sqt2 * Rcs(:,2,2) ! could be error here, 19059599516SKenneth E. Jansen Q(:,4,3) = -fact * c * sqt2 * Rcs(:,2,3) ! but unlikely 19159599516SKenneth E. Jansen Q(:,5,3) = zero 19259599516SKenneth E. Jansenc 19359599516SKenneth E. Jansen Q(:,1,2) = zero 19459599516SKenneth E. Jansen Q(:,2,2) = fact * c * sqt2 * Rcs(:,3,1) 19559599516SKenneth E. Jansen Q(:,3,2) = fact * c * sqt2 * Rcs(:,3,2) 19659599516SKenneth E. Jansen Q(:,4,2) = fact * c * sqt2 * Rcs(:,3,3) 19759599516SKenneth E. Jansen Q(:,5,2) = zero 19859599516SKenneth E. Jansenc 19959599516SKenneth E. Jansen fact = (one / sqrt( cp * rho )) / T 20059599516SKenneth E. Jansenc 20159599516SKenneth E. Jansen Q(:,1,4) = fact * eb1 20259599516SKenneth E. Jansen Q(:,2,4) = fact * u * Rcs(:,1,1) 20359599516SKenneth E. Jansen Q(:,3,4) = fact * u * Rcs(:,1,2) 20459599516SKenneth E. Jansen Q(:,4,4) = fact * u * Rcs(:,1,3) 20559599516SKenneth E. Jansen Q(:,5,4) = -fact 20659599516SKenneth E. Jansenc 20759599516SKenneth E. Jansenc.... flop count 20859599516SKenneth E. Jansenc 20959599516SKenneth E. Jansen 21059599516SKenneth E. Jansenc do i = 1, nflow 21159599516SKenneth E. Jansenc do j = 1, nflow 21259599516SKenneth E. Jansenc Q(:,i,j) = abs(Q(:,i,j)) !make sure eigenv. are positive 21359599516SKenneth E. Jansenc enddo 21459599516SKenneth E. Jansenc enddo 21559599516SKenneth E. Jansen 216*f4d0b58bSKenneth E. Jansen ! flops = flops + 203*npro 21759599516SKenneth E. Jansenc 21859599516SKenneth E. Jansenc.... return 21959599516SKenneth E. Jansenc 22059599516SKenneth E. Jansen return 22159599516SKenneth E. Jansen end 22259599516SKenneth E. Jansen 22359599516SKenneth E. Jansen 22459599516SKenneth E. Jansen subroutine e3eig2 (u, c, AR1, AR2, AR3, 22559599516SKenneth E. Jansen & rlam, Q, eigmax) 22659599516SKenneth E. Jansenc 22759599516SKenneth E. Jansenc---------------------------------------------------------------------- 22859599516SKenneth E. Jansenc 22959599516SKenneth E. Jansenc This routine diagonalizes a partially reduced matrix using the 23059599516SKenneth E. Jansenc Jacobi transformation. This routine assumes that the original 23159599516SKenneth E. Jansenc 5x5 matrix is already reduced to 2x2. 23259599516SKenneth E. Jansenc 23359599516SKenneth E. Jansenc input: 23459599516SKenneth E. Jansenc u (npro) : fluid velocity 23559599516SKenneth E. Jansenc c (npro) : speed of sound 23659599516SKenneth E. Jansenc AR1 (npro) : aspect ratio factor in streamline direction 23759599516SKenneth E. Jansenc AR2 (npro) : aspect ratio factor in normal_1 direction 23859599516SKenneth E. Jansenc AR3 (npro) : aspect ratio factor in normal_2 direction 23959599516SKenneth E. Jansenc Q (npro,nflow,nflow) : 1st level eigenvectors of Tau matrix 24059599516SKenneth E. Jansenc 24159599516SKenneth E. Jansenc output: 24259599516SKenneth E. Jansenc rlam (npro,nflow) : eigenvalues 24359599516SKenneth E. Jansenc Q (npro,nflow,nflow) : eigenvectors 24459599516SKenneth E. Jansenc 24559599516SKenneth E. Jansenc 24659599516SKenneth E. Jansenc T 24759599516SKenneth E. Jansenc This routine finds S that S Atau S = Lam (Lam is Symm.) 24859599516SKenneth E. Jansenc 24959599516SKenneth E. Jansenc Then returns rlam <- Lam and Q <- Q S 25059599516SKenneth E. Jansenc 25159599516SKenneth E. Jansenc 25259599516SKenneth E. Jansenc Note: Jacobi transformation is extracted (and modified) from 25359599516SKenneth E. Jansenc "Numerical Recipes: The Art of Scientific Computing" by 25459599516SKenneth E. Jansenc Press, Flannery, Teukolsky and Vetterling, pp. 342-349. 25559599516SKenneth E. Jansenc 25659599516SKenneth E. Jansenc 25759599516SKenneth E. Jansenc Farzin Shakib, Spring 1989. 25859599516SKenneth E. Jansenc Zdenek Johan, Winter 1991. (Fortran 90) 25959599516SKenneth E. Jansenc---------------------------------------------------------------------- 26059599516SKenneth E. Jansenc 26159599516SKenneth E. Jansen include "common.h" 26259599516SKenneth E. Jansenc 26359599516SKenneth E. Jansen dimension u(npro), c(npro), 26459599516SKenneth E. Jansen & AR1(npro), AR2(npro), 26559599516SKenneth E. Jansen & AR3(npro), rlam(npro,nflow), 26659599516SKenneth E. Jansen & Q(npro,nflow,nflow), eigmax(npro,nflow) 26759599516SKenneth E. Jansenc 26859599516SKenneth E. Jansen dimension offd(npro), t(npro), 26959599516SKenneth E. Jansen & Rcs(npro), Rsn(npro) 27059599516SKenneth E. Jansenc 27159599516SKenneth E. Jansenc.... set the reduced eigensystem 27259599516SKenneth E. Jansenc 27359599516SKenneth E. Jansen offd = (AR2 + AR3) * pt5 * c**2 27459599516SKenneth E. Jansenc 27559599516SKenneth E. Jansen rlam(:,1) = AR1 * (u + c)**2 + offd 27659599516SKenneth E. Jansen rlam(:,2) = AR1 * u**2 + AR3 * c**2 27759599516SKenneth E. Jansen rlam(:,3) = AR1 * u**2 + AR2 * c**2 27859599516SKenneth E. Jansen rlam(:,4) = AR1 * u**2 27959599516SKenneth E. Jansen rlam(:,5) = AR1 * (u - c)**2 + offd 28059599516SKenneth E. Jansenc 28159599516SKenneth E. Jansenc.... modify for time dependent problems 28259599516SKenneth E. Jansenc 28359599516SKenneth E. Jansen! consider time term if iremoveStabTimeTerm is set to zero 28459599516SKenneth E. Jansen if(iremoveStabTimeTerm.eq.0) then 28559599516SKenneth E. Jansen tmp = dtsfct * four * (Dtgl * Dtgl) 28659599516SKenneth E. Jansen rlam(:,:) = rlam(:,:) + tmp 28759599516SKenneth E. Jansen endif 28859599516SKenneth E. Jansenc 28959599516SKenneth E. Jansenc.... compute the rotation tangent ( IEEE arithmetic if offd=0 ) 29059599516SKenneth E. Jansenc 29159599516SKenneth E. Jansen t = pt5 * (rlam(:,1) - rlam(:,5)) / offd 29259599516SKenneth E. Jansen t = sign(one, t) / ( abs(t) + sqrt(one + t**2) ) 29359599516SKenneth E. Jansenc 29459599516SKenneth E. Jansenc.... compute cosine and sin, and rotate the eigenvalues 29559599516SKenneth E. Jansenc 29659599516SKenneth E. Jansen Rcs = one / sqrt( one + t**2 ) 29759599516SKenneth E. Jansen Rsn = t * Rcs 29859599516SKenneth E. Jansenc 29959599516SKenneth E. Jansen rlam(:,1) = rlam(:,1) - t * offd 30059599516SKenneth E. Jansen rlam(:,5) = rlam(:,5) + t * offd 30159599516SKenneth E. Jansenc 30259599516SKenneth E. Jansenc.... transform the Eigenvectors (all 5 components) 30359599516SKenneth E. Jansenc 30459599516SKenneth E. Jansen t = Rcs * Q(:,1,1) - Rsn * Q(:,1,5) 30559599516SKenneth E. Jansen Q(:,1,5) = Rsn * Q(:,1,1) + Rcs * Q(:,1,5) 30659599516SKenneth E. Jansen Q(:,1,1) = t 30759599516SKenneth E. Jansenc 30859599516SKenneth E. Jansen t = Rcs * Q(:,2,1) - Rsn * Q(:,2,5) 30959599516SKenneth E. Jansen Q(:,2,5) = Rsn * Q(:,2,1) + Rcs * Q(:,2,5) 31059599516SKenneth E. Jansen Q(:,2,1) = t 31159599516SKenneth E. Jansenc 31259599516SKenneth E. Jansen t = Rcs * Q(:,3,1) - Rsn * Q(:,3,5) 31359599516SKenneth E. Jansen Q(:,3,5) = Rsn * Q(:,3,1) + Rcs * Q(:,3,5) 31459599516SKenneth E. Jansen Q(:,3,1) = t 31559599516SKenneth E. Jansenc 31659599516SKenneth E. Jansen t = Rcs * Q(:,4,1) - Rsn * Q(:,4,5) 31759599516SKenneth E. Jansen Q(:,4,5) = Rsn * Q(:,4,1) + Rcs * Q(:,4,5) 31859599516SKenneth E. Jansen Q(:,4,1) = t 31959599516SKenneth E. Jansenc 32059599516SKenneth E. Jansen t = Rcs * Q(:,5,1) - Rsn * Q(:,5,5) 32159599516SKenneth E. Jansen Q(:,5,5) = Rsn * Q(:,5,1) + Rcs * Q(:,5,5) 32259599516SKenneth E. Jansen Q(:,5,1) = t 32359599516SKenneth E. Jansen 32459599516SKenneth E. Jansenc 32559599516SKenneth E. Jansenc.... extract maximum eigenvalues 32659599516SKenneth E. Jansenc 32759599516SKenneth E. Jansen eigmax(:,1) = max(rlam(:,1), rlam(:,2), rlam(:,3), 32859599516SKenneth E. Jansen & rlam(:,4), rlam(:,5)) 32959599516SKenneth E. Jansen eigmax(:,2) = eigmax(:,1) 33059599516SKenneth E. Jansen eigmax(:,3) = eigmax(:,1) 33159599516SKenneth E. Jansen eigmax(:,4) = eigmax(:,1) 33259599516SKenneth E. Jansen eigmax(:,5) = eigmax(:,1) 33359599516SKenneth E. Jansen 33459599516SKenneth E. Jansenc 33559599516SKenneth E. Jansenc.... flop count 33659599516SKenneth E. Jansenc 337*f4d0b58bSKenneth E. Jansen ! flops = flops + 85*npro 33859599516SKenneth E. Jansenc 33959599516SKenneth E. Jansenc.... return 34059599516SKenneth E. Jansenc 34159599516SKenneth E. Jansen return 34259599516SKenneth E. Jansen end 343