1*59599516SKenneth E. Jansen subroutine e3eig1 (rho, T, cp, gamb, c, 2*59599516SKenneth E. Jansen & u1, u2, u3, a1, a2, 3*59599516SKenneth E. Jansen & a3, eb1, 4*59599516SKenneth E. Jansen & dxidx, u, Q) 5*59599516SKenneth E. Jansenc 6*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 7*59599516SKenneth E. Jansenc 8*59599516SKenneth E. Jansenc This routine performs the first step of the eigenvalue decomposition 9*59599516SKenneth E. Jansenc of the Tau matrix. 10*59599516SKenneth E. Jansenc 11*59599516SKenneth E. Jansenc input: 12*59599516SKenneth E. Jansenc rho (npro) : density 13*59599516SKenneth E. Jansenc T (npro) : temperature 14*59599516SKenneth E. Jansenc cp (npro) : specific heat at constant pressure 15*59599516SKenneth E. Jansenc gamb (npro) : gamma_bar (defined in paper by Chalot et al.) 16*59599516SKenneth E. Jansenc c (npro) : speed of sound 17*59599516SKenneth E. Jansenc u1 (npro) : x1-velocity component 18*59599516SKenneth E. Jansenc u2 (npro) : x2-velocity component 19*59599516SKenneth E. Jansenc u3 (npro) : x3-velocity component 20*59599516SKenneth E. Jansenc a1 (npro) : x1-acceleration component 21*59599516SKenneth E. Jansenc a2 (npro) : x2-acceleration component 22*59599516SKenneth E. Jansenc a3 (npro) : x3-acceleration component 23*59599516SKenneth E. Jansenc eb1 (npro) : e1_bar (defined in paper by Chalot et al.) 24*59599516SKenneth E. Jansenc dxidx (npro,nsd,nsd) : inverse of deformation gradient 25*59599516SKenneth E. Jansenc 26*59599516SKenneth E. Jansenc output: 27*59599516SKenneth E. Jansenc u (npro) : fluid velocity 28*59599516SKenneth E. Jansenc a1 (npro) : aspect ratio factor in streamline direction 29*59599516SKenneth E. Jansenc a2 (npro) : aspect ratio factor in normal_1 direction 30*59599516SKenneth E. Jansenc a3 (npro) : aspect ratio factor in normal_2 direction 31*59599516SKenneth E. Jansenc Q (npro,nflow,nflow) : 1st level eigenvectors of Tau matrix 32*59599516SKenneth E. Jansenc 33*59599516SKenneth E. Jansenc 34*59599516SKenneth E. Jansenc Zdenek Johan, Summer 1990. (Modified from e2tau.f) 35*59599516SKenneth E. Jansenc Zdenek Johan, Winter 1991. (Fortran 90) 36*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 37*59599516SKenneth E. Jansenc 38*59599516SKenneth E. Jansen include "common.h" 39*59599516SKenneth E. Jansenc 40*59599516SKenneth E. Jansen dimension rho(npro), T(npro), 41*59599516SKenneth E. Jansen & cp(npro), gamb(npro), 42*59599516SKenneth E. Jansen & c(npro), u1(npro), 43*59599516SKenneth E. Jansen & u2(npro), u3(npro), 44*59599516SKenneth E. Jansen & a1(npro), a2(npro), 45*59599516SKenneth E. Jansen & a3(npro), 46*59599516SKenneth E. Jansen & eb1(npro), dxidx(npro,nsd,nsd), 47*59599516SKenneth E. Jansen & u(npro), Q(npro,nflow,nflow) 48*59599516SKenneth E. Jansenc 49*59599516SKenneth E. Jansen dimension Rcs(npro,nsd,nsd), fact(npro), 50*59599516SKenneth E. Jansen & temp(npro) 51*59599516SKenneth E. Jansenc 52*59599516SKenneth E. Jansenc.... compute the directional cosines (streamline direction) 53*59599516SKenneth E. Jansenc 54*59599516SKenneth E. Jansenc 55*59599516SKenneth E. Jansen 56*59599516SKenneth E. Jansen where (u .ne. zero) 57*59599516SKenneth E. Jansen fact = one / u 58*59599516SKenneth E. Jansen Rcs(:,1,1) = u1 * fact 59*59599516SKenneth E. Jansen Rcs(:,1,2) = u2 * fact 60*59599516SKenneth E. Jansen Rcs(:,1,3) = u3 * fact 61*59599516SKenneth E. Jansen elsewhere 62*59599516SKenneth E. Jansen Rcs(:,1,1) = one 63*59599516SKenneth E. Jansen Rcs(:,1,2) = zero 64*59599516SKenneth E. Jansen Rcs(:,1,3) = zero 65*59599516SKenneth E. Jansen endwhere 66*59599516SKenneth E. Jansenc 67*59599516SKenneth E. Jansenc.... compute the directional cosines (normal acceleration direction) 68*59599516SKenneth E. Jansenc 69*59599516SKenneth E. Jansen 70*59599516SKenneth E. Jansen 71*59599516SKenneth E. Jansen fact = a1 * Rcs(:,1,1) + a2 * Rcs(:,1,2) + a3 * Rcs(:,1,3) 72*59599516SKenneth E. Jansen a1 = a1 - fact * Rcs(:,1,1) 73*59599516SKenneth E. Jansen a2 = a2 - fact * Rcs(:,1,2) 74*59599516SKenneth E. Jansen a3 = a3 - fact * Rcs(:,1,3) 75*59599516SKenneth E. Jansen fact = a1**2 + a2**2 + a3**2 76*59599516SKenneth E. Jansenc 77*59599516SKenneth E. Jansen where (fact .gt. epsM) 78*59599516SKenneth E. Jansenc 79*59599516SKenneth E. Jansen Rcs(:,2,1) = a1 80*59599516SKenneth E. Jansen Rcs(:,2,2) = a2 81*59599516SKenneth E. Jansen Rcs(:,2,3) = a3 82*59599516SKenneth E. Jansenc 83*59599516SKenneth E. Jansen elsewhere 84*59599516SKenneth E. Jansenc 85*59599516SKenneth E. Jansen Rcs(:,2,1) = Rcs(:,1,2) 86*59599516SKenneth E. Jansen & + sign(one, Rcs(:,1,2)*Rcs(:,1,3)) * Rcs(:,1,3) 87*59599516SKenneth E. Jansen Rcs(:,2,2) = - Rcs(:,1,1) 88*59599516SKenneth E. Jansen & - sign(one, Rcs(:,1,2)*Rcs(:,1,3)) * Rcs(:,1,3) 89*59599516SKenneth E. Jansen Rcs(:,2,3) = sign(one, Rcs(:,1,2)*Rcs(:,1,3)) * 90*59599516SKenneth E. Jansen & ( Rcs(:,1,2) - Rcs(:,1,1) ) 91*59599516SKenneth E. Jansenc 92*59599516SKenneth E. Jansen fact = Rcs(:,2,1)**2 + Rcs(:,2,2)**2 + Rcs(:,2,3)**2 93*59599516SKenneth E. Jansenc 94*59599516SKenneth E. Jansen endwhere 95*59599516SKenneth E. Jansenc 96*59599516SKenneth E. Jansen fact = one / sqrt(fact) 97*59599516SKenneth E. Jansenc 98*59599516SKenneth E. Jansen Rcs(:,2,1) = Rcs(:,2,1) * fact 99*59599516SKenneth E. Jansen Rcs(:,2,2) = Rcs(:,2,2) * fact 100*59599516SKenneth E. Jansen Rcs(:,2,3) = Rcs(:,2,3) * fact 101*59599516SKenneth E. Jansenc 102*59599516SKenneth E. Jansenc.... compute the directional cosines (last direction) 103*59599516SKenneth E. Jansenc 104*59599516SKenneth E. Jansen Rcs(:,3,1) = Rcs(:,1,2) * Rcs(:,2,3) - Rcs(:,1,3) * Rcs(:,2,2) 105*59599516SKenneth E. Jansen Rcs(:,3,2) = Rcs(:,1,3) * Rcs(:,2,1) - Rcs(:,1,1) * Rcs(:,2,3) 106*59599516SKenneth E. Jansen Rcs(:,3,3) = Rcs(:,1,1) * Rcs(:,2,2) - Rcs(:,1,2) * Rcs(:,2,1) 107*59599516SKenneth E. Jansen 108*59599516SKenneth E. Jansenc 109*59599516SKenneth E. Jansenc.... calculate the element aspect ratio factors 110*59599516SKenneth E. Jansenc 111*59599516SKenneth E. Jansen a1 = Rcs(:,1,1) * dxidx(:,1,1) + Rcs(:,1,2) * dxidx(:,1,2) + 112*59599516SKenneth E. Jansen & Rcs(:,1,3) * dxidx(:,1,3) 113*59599516SKenneth E. Jansen a2 = Rcs(:,2,1) * dxidx(:,1,1) + Rcs(:,2,2) * dxidx(:,1,2) + 114*59599516SKenneth E. Jansen & Rcs(:,2,3) * dxidx(:,1,3) 115*59599516SKenneth E. Jansen a3 = Rcs(:,3,1) * dxidx(:,1,1) + Rcs(:,3,2) * dxidx(:,1,2) + 116*59599516SKenneth E. Jansen & Rcs(:,3,3) * dxidx(:,1,3) 117*59599516SKenneth E. Jansen dxidx(:,1,1) = a1 118*59599516SKenneth E. Jansen dxidx(:,1,2) = a2 119*59599516SKenneth E. Jansen dxidx(:,1,3) = a3 120*59599516SKenneth E. Jansenc 121*59599516SKenneth E. Jansen a1 = Rcs(:,1,1) * dxidx(:,2,1) + Rcs(:,1,2) * dxidx(:,2,2) + 122*59599516SKenneth E. Jansen & Rcs(:,1,3) * dxidx(:,2,3) 123*59599516SKenneth E. Jansen a2 = Rcs(:,2,1) * dxidx(:,2,1) + Rcs(:,2,2) * dxidx(:,2,2) + 124*59599516SKenneth E. Jansen & Rcs(:,2,3) * dxidx(:,2,3) 125*59599516SKenneth E. Jansen a3 = Rcs(:,3,1) * dxidx(:,2,1) + Rcs(:,3,2) * dxidx(:,2,2) + 126*59599516SKenneth E. Jansen & Rcs(:,3,3) * dxidx(:,2,3) 127*59599516SKenneth E. Jansen dxidx(:,2,1) = a1 128*59599516SKenneth E. Jansen dxidx(:,2,2) = a2 129*59599516SKenneth E. Jansen dxidx(:,2,3) = a3 130*59599516SKenneth E. Jansenc 131*59599516SKenneth E. Jansen a1 = Rcs(:,1,1) * dxidx(:,3,1) + Rcs(:,1,2) * dxidx(:,3,2) + 132*59599516SKenneth E. Jansen & Rcs(:,1,3) * dxidx(:,3,3) 133*59599516SKenneth E. Jansen a2 = Rcs(:,2,1) * dxidx(:,3,1) + Rcs(:,2,2) * dxidx(:,3,2) + 134*59599516SKenneth E. Jansen & Rcs(:,2,3) * dxidx(:,3,3) 135*59599516SKenneth E. Jansen a3 = Rcs(:,3,1) * dxidx(:,3,1) + Rcs(:,3,2) * dxidx(:,3,2) + 136*59599516SKenneth E. Jansen & Rcs(:,3,3) * dxidx(:,3,3) 137*59599516SKenneth E. Jansen dxidx(:,3,1) = a1 138*59599516SKenneth E. Jansen dxidx(:,3,2) = a2 139*59599516SKenneth E. Jansen dxidx(:,3,3) = a3 140*59599516SKenneth E. Jansen 141*59599516SKenneth E. Jansenc 142*59599516SKenneth E. Jansenc... original 143*59599516SKenneth E. Jansenc 144*59599516SKenneth E. Jansen 145*59599516SKenneth E. Jansen a1 = dxidx(:,1,1)**2 + dxidx(:,2,1)**2 + dxidx(:,3,1)**2 146*59599516SKenneth E. Jansen a2 = dxidx(:,1,2)**2 + dxidx(:,2,2)**2 + dxidx(:,3,2)**2 147*59599516SKenneth E. Jansen a3 = dxidx(:,1,3)**2 + dxidx(:,2,3)**2 + dxidx(:,3,3)**2 148*59599516SKenneth E. Jansen 149*59599516SKenneth E. Jansenc 150*59599516SKenneth E. Jansenc... change from original (analyt., could be error) 151*59599516SKenneth E. Jansenc 152*59599516SKenneth E. Jansen 153*59599516SKenneth E. Jansencc a1 = dxidx(:,1,1)**2 + dxidx(:,1,2)**2 + dxidx(:,1,3)**2 154*59599516SKenneth E. Jansencc a2 = dxidx(:,2,1)**2 + dxidx(:,2,2)**2 + dxidx(:,2,3)**2 155*59599516SKenneth E. Jansencc a3 = dxidx(:,3,1)**2 + dxidx(:,3,2)**2 + dxidx(:,3,3)**2 156*59599516SKenneth E. Jansen 157*59599516SKenneth E. Jansenc 158*59599516SKenneth E. Jansenc.... correct for tetrahedra 159*59599516SKenneth E. Jansenc 160*59599516SKenneth E. Jansen if (lcsyst .eq. 1) then 161*59599516SKenneth E. Jansen a1 = ( a1 + (dxidx(:,1,1) + dxidx(:,2,1) + 162*59599516SKenneth E. Jansen & dxidx(:,3,1))**2 ) * pt39 163*59599516SKenneth E. Jansen a2 = ( a2 + (dxidx(:,1,2) + dxidx(:,2,2) + 164*59599516SKenneth E. Jansen & dxidx(:,3,2))**2 ) * pt39 165*59599516SKenneth E. Jansen a3 = ( a3 + (dxidx(:,1,3) + dxidx(:,2,3) + 166*59599516SKenneth E. Jansen & dxidx(:,3,3))**2 ) * pt39 167*59599516SKenneth E. Jansenc 168*59599516SKenneth E. Jansen flops = flops + 15*npro 169*59599516SKenneth E. Jansen endif 170*59599516SKenneth E. Jansenc 171*59599516SKenneth E. Jansenc.... set up the 1st level Eigenvectors = R_t*Tau^* 172*59599516SKenneth E. Jansenc 173*59599516SKenneth E. Jansen fact = (one / sqrt( two * rho * T )) / c 174*59599516SKenneth E. Jansenc 175*59599516SKenneth E. Jansen Q(:,1,5) = fact * ((c + u) * c - eb1 * gamb) 176*59599516SKenneth E. Jansen Q(:,2,5) = -fact * (c + u * gamb) * Rcs(:,1,1) 177*59599516SKenneth E. Jansen Q(:,3,5) = -fact * (c + u * gamb) * Rcs(:,1,2) 178*59599516SKenneth E. Jansen Q(:,4,5) = -fact * (c + u * gamb) * Rcs(:,1,3) 179*59599516SKenneth E. Jansen Q(:,5,5) = fact * gamb 180*59599516SKenneth E. Jansenc 181*59599516SKenneth E. Jansen Q(:,1,1) = fact * ((c - u) * c - eb1 * gamb) 182*59599516SKenneth E. Jansen Q(:,2,1) = fact * (c - u * gamb) * Rcs(:,1,1) 183*59599516SKenneth E. Jansen Q(:,3,1) = fact * (c - u * gamb) * Rcs(:,1,2) 184*59599516SKenneth E. Jansen Q(:,4,1) = fact * (c - u * gamb) * Rcs(:,1,3) 185*59599516SKenneth E. Jansen Q(:,5,1) = fact * gamb 186*59599516SKenneth E. Jansenc 187*59599516SKenneth E. Jansen Q(:,1,3) = zero 188*59599516SKenneth E. Jansen Q(:,2,3) = -fact * c * sqt2 * Rcs(:,2,1) ! + in original Jo/Sh code 189*59599516SKenneth E. Jansen Q(:,3,3) = -fact * c * sqt2 * Rcs(:,2,2) ! could be error here, 190*59599516SKenneth E. Jansen Q(:,4,3) = -fact * c * sqt2 * Rcs(:,2,3) ! but unlikely 191*59599516SKenneth E. Jansen Q(:,5,3) = zero 192*59599516SKenneth E. Jansenc 193*59599516SKenneth E. Jansen Q(:,1,2) = zero 194*59599516SKenneth E. Jansen Q(:,2,2) = fact * c * sqt2 * Rcs(:,3,1) 195*59599516SKenneth E. Jansen Q(:,3,2) = fact * c * sqt2 * Rcs(:,3,2) 196*59599516SKenneth E. Jansen Q(:,4,2) = fact * c * sqt2 * Rcs(:,3,3) 197*59599516SKenneth E. Jansen Q(:,5,2) = zero 198*59599516SKenneth E. Jansenc 199*59599516SKenneth E. Jansen fact = (one / sqrt( cp * rho )) / T 200*59599516SKenneth E. Jansenc 201*59599516SKenneth E. Jansen Q(:,1,4) = fact * eb1 202*59599516SKenneth E. Jansen Q(:,2,4) = fact * u * Rcs(:,1,1) 203*59599516SKenneth E. Jansen Q(:,3,4) = fact * u * Rcs(:,1,2) 204*59599516SKenneth E. Jansen Q(:,4,4) = fact * u * Rcs(:,1,3) 205*59599516SKenneth E. Jansen Q(:,5,4) = -fact 206*59599516SKenneth E. Jansenc 207*59599516SKenneth E. Jansenc.... flop count 208*59599516SKenneth E. Jansenc 209*59599516SKenneth E. Jansen 210*59599516SKenneth E. Jansenc do i = 1, nflow 211*59599516SKenneth E. Jansenc do j = 1, nflow 212*59599516SKenneth E. Jansenc Q(:,i,j) = abs(Q(:,i,j)) !make sure eigenv. are positive 213*59599516SKenneth E. Jansenc enddo 214*59599516SKenneth E. Jansenc enddo 215*59599516SKenneth E. Jansen 216*59599516SKenneth E. Jansen flops = flops + 203*npro 217*59599516SKenneth E. Jansenc 218*59599516SKenneth E. Jansenc.... return 219*59599516SKenneth E. Jansenc 220*59599516SKenneth E. Jansen return 221*59599516SKenneth E. Jansen end 222*59599516SKenneth E. Jansen 223*59599516SKenneth E. Jansen 224*59599516SKenneth E. Jansen subroutine e3eig2 (u, c, AR1, AR2, AR3, 225*59599516SKenneth E. Jansen & rlam, Q, eigmax) 226*59599516SKenneth E. Jansenc 227*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 228*59599516SKenneth E. Jansenc 229*59599516SKenneth E. Jansenc This routine diagonalizes a partially reduced matrix using the 230*59599516SKenneth E. Jansenc Jacobi transformation. This routine assumes that the original 231*59599516SKenneth E. Jansenc 5x5 matrix is already reduced to 2x2. 232*59599516SKenneth E. Jansenc 233*59599516SKenneth E. Jansenc input: 234*59599516SKenneth E. Jansenc u (npro) : fluid velocity 235*59599516SKenneth E. Jansenc c (npro) : speed of sound 236*59599516SKenneth E. Jansenc AR1 (npro) : aspect ratio factor in streamline direction 237*59599516SKenneth E. Jansenc AR2 (npro) : aspect ratio factor in normal_1 direction 238*59599516SKenneth E. Jansenc AR3 (npro) : aspect ratio factor in normal_2 direction 239*59599516SKenneth E. Jansenc Q (npro,nflow,nflow) : 1st level eigenvectors of Tau matrix 240*59599516SKenneth E. Jansenc 241*59599516SKenneth E. Jansenc output: 242*59599516SKenneth E. Jansenc rlam (npro,nflow) : eigenvalues 243*59599516SKenneth E. Jansenc Q (npro,nflow,nflow) : eigenvectors 244*59599516SKenneth E. Jansenc 245*59599516SKenneth E. Jansenc 246*59599516SKenneth E. Jansenc T 247*59599516SKenneth E. Jansenc This routine finds S that S Atau S = Lam (Lam is Symm.) 248*59599516SKenneth E. Jansenc 249*59599516SKenneth E. Jansenc Then returns rlam <- Lam and Q <- Q S 250*59599516SKenneth E. Jansenc 251*59599516SKenneth E. Jansenc 252*59599516SKenneth E. Jansenc Note: Jacobi transformation is extracted (and modified) from 253*59599516SKenneth E. Jansenc "Numerical Recipes: The Art of Scientific Computing" by 254*59599516SKenneth E. Jansenc Press, Flannery, Teukolsky and Vetterling, pp. 342-349. 255*59599516SKenneth E. Jansenc 256*59599516SKenneth E. Jansenc 257*59599516SKenneth E. Jansenc Farzin Shakib, Spring 1989. 258*59599516SKenneth E. Jansenc Zdenek Johan, Winter 1991. (Fortran 90) 259*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 260*59599516SKenneth E. Jansenc 261*59599516SKenneth E. Jansen include "common.h" 262*59599516SKenneth E. Jansenc 263*59599516SKenneth E. Jansen dimension u(npro), c(npro), 264*59599516SKenneth E. Jansen & AR1(npro), AR2(npro), 265*59599516SKenneth E. Jansen & AR3(npro), rlam(npro,nflow), 266*59599516SKenneth E. Jansen & Q(npro,nflow,nflow), eigmax(npro,nflow) 267*59599516SKenneth E. Jansenc 268*59599516SKenneth E. Jansen dimension offd(npro), t(npro), 269*59599516SKenneth E. Jansen & Rcs(npro), Rsn(npro) 270*59599516SKenneth E. Jansenc 271*59599516SKenneth E. Jansenc.... set the reduced eigensystem 272*59599516SKenneth E. Jansenc 273*59599516SKenneth E. Jansen offd = (AR2 + AR3) * pt5 * c**2 274*59599516SKenneth E. Jansenc 275*59599516SKenneth E. Jansen rlam(:,1) = AR1 * (u + c)**2 + offd 276*59599516SKenneth E. Jansen rlam(:,2) = AR1 * u**2 + AR3 * c**2 277*59599516SKenneth E. Jansen rlam(:,3) = AR1 * u**2 + AR2 * c**2 278*59599516SKenneth E. Jansen rlam(:,4) = AR1 * u**2 279*59599516SKenneth E. Jansen rlam(:,5) = AR1 * (u - c)**2 + offd 280*59599516SKenneth E. Jansenc 281*59599516SKenneth E. Jansenc.... modify for time dependent problems 282*59599516SKenneth E. Jansenc 283*59599516SKenneth E. Jansen ! consider time term if iremoveStabTimeTerm is set to zero 284*59599516SKenneth E. Jansen if(iremoveStabTimeTerm.eq.0) then 285*59599516SKenneth E. Jansen tmp = dtsfct * four * (Dtgl * Dtgl) 286*59599516SKenneth E. Jansen rlam(:,:) = rlam(:,:) + tmp 287*59599516SKenneth E. Jansen endif 288*59599516SKenneth E. Jansenc 289*59599516SKenneth E. Jansenc.... compute the rotation tangent ( IEEE arithmetic if offd=0 ) 290*59599516SKenneth E. Jansenc 291*59599516SKenneth E. Jansen t = pt5 * (rlam(:,1) - rlam(:,5)) / offd 292*59599516SKenneth E. Jansen t = sign(one, t) / ( abs(t) + sqrt(one + t**2) ) 293*59599516SKenneth E. Jansenc 294*59599516SKenneth E. Jansenc.... compute cosine and sin, and rotate the eigenvalues 295*59599516SKenneth E. Jansenc 296*59599516SKenneth E. Jansen Rcs = one / sqrt( one + t**2 ) 297*59599516SKenneth E. Jansen Rsn = t * Rcs 298*59599516SKenneth E. Jansenc 299*59599516SKenneth E. Jansen rlam(:,1) = rlam(:,1) - t * offd 300*59599516SKenneth E. Jansen rlam(:,5) = rlam(:,5) + t * offd 301*59599516SKenneth E. Jansenc 302*59599516SKenneth E. Jansenc.... transform the Eigenvectors (all 5 components) 303*59599516SKenneth E. Jansenc 304*59599516SKenneth E. Jansen t = Rcs * Q(:,1,1) - Rsn * Q(:,1,5) 305*59599516SKenneth E. Jansen Q(:,1,5) = Rsn * Q(:,1,1) + Rcs * Q(:,1,5) 306*59599516SKenneth E. Jansen Q(:,1,1) = t 307*59599516SKenneth E. Jansenc 308*59599516SKenneth E. Jansen t = Rcs * Q(:,2,1) - Rsn * Q(:,2,5) 309*59599516SKenneth E. Jansen Q(:,2,5) = Rsn * Q(:,2,1) + Rcs * Q(:,2,5) 310*59599516SKenneth E. Jansen Q(:,2,1) = t 311*59599516SKenneth E. Jansenc 312*59599516SKenneth E. Jansen t = Rcs * Q(:,3,1) - Rsn * Q(:,3,5) 313*59599516SKenneth E. Jansen Q(:,3,5) = Rsn * Q(:,3,1) + Rcs * Q(:,3,5) 314*59599516SKenneth E. Jansen Q(:,3,1) = t 315*59599516SKenneth E. Jansenc 316*59599516SKenneth E. Jansen t = Rcs * Q(:,4,1) - Rsn * Q(:,4,5) 317*59599516SKenneth E. Jansen Q(:,4,5) = Rsn * Q(:,4,1) + Rcs * Q(:,4,5) 318*59599516SKenneth E. Jansen Q(:,4,1) = t 319*59599516SKenneth E. Jansenc 320*59599516SKenneth E. Jansen t = Rcs * Q(:,5,1) - Rsn * Q(:,5,5) 321*59599516SKenneth E. Jansen Q(:,5,5) = Rsn * Q(:,5,1) + Rcs * Q(:,5,5) 322*59599516SKenneth E. Jansen Q(:,5,1) = t 323*59599516SKenneth E. Jansen 324*59599516SKenneth E. Jansenc 325*59599516SKenneth E. Jansenc.... extract maximum eigenvalues 326*59599516SKenneth E. Jansenc 327*59599516SKenneth E. Jansen eigmax(:,1) = max(rlam(:,1), rlam(:,2), rlam(:,3), 328*59599516SKenneth E. Jansen & rlam(:,4), rlam(:,5)) 329*59599516SKenneth E. Jansen eigmax(:,2) = eigmax(:,1) 330*59599516SKenneth E. Jansen eigmax(:,3) = eigmax(:,1) 331*59599516SKenneth E. Jansen eigmax(:,4) = eigmax(:,1) 332*59599516SKenneth E. Jansen eigmax(:,5) = eigmax(:,1) 333*59599516SKenneth E. Jansen 334*59599516SKenneth E. Jansenc 335*59599516SKenneth E. Jansenc.... flop count 336*59599516SKenneth E. Jansenc 337*59599516SKenneth E. Jansen flops = flops + 85*npro 338*59599516SKenneth E. Jansenc 339*59599516SKenneth E. Jansenc.... return 340*59599516SKenneth E. Jansenc 341*59599516SKenneth E. Jansen return 342*59599516SKenneth E. Jansen end 343