! *** generated by SAPFOR with version 2412 and build date: Apr 29 2025 22:44:14 ! *** Enabled options ***: ! *** maximum shadow width is 50 percent ! *** generated by SAPFOR !--------------------------------------------------------------------- ! performs guaussian elimination on this cell. ! ! assumes that unpacking routines for non-first cells ! preload C' and rhs' from previous cell. ! ! assumed send happens outside this routine, but that ! c'(IMAX) and rhs'(IMAX) will be sent to next cell !--------------------------------------------------------------------- subroutine x_solve_bt () include 'header3d_bt.h' double precision :: pivot,coeff integer :: i__0,j__1 integer :: m,n double precision :: coeff__2 double precision :: pivot__3 double precision :: lhs_(5,5,3),u_(0:3,5) double precision :: rhs_(5) integer :: i,j,k,isize isize = problem_size - 1 !$SPF PARALLEL_REG r0 !$SPF ANALYSIS(PRIVATE(U_,RHS_,LHS_)) ! DVM$ PARALLEL (K,J) ON RHS(*,*,J,K), PRIVATE (U_,I,RHS_,TMP1,TMP2,TMP3, ! DVM$&T1,T2,T3,TM1,TM2,PIVOT,COEFF,TM3,I__0,J__1,TMP11,TMP22,LHS_,M,N,CO ! DVM$&EFF__2,PIVOT__3) ! DVM$ REGION LOCAL (LHS__) !--------------------------------------------------------------------- ! outer most do loops - sweeping in i direction !--------------------------------------------------------------------- !--------------------------------------------------------------------- ! begin inner most do loop ! do all the elements of the cell unless last !--------------------------------------------------------------------- !, ACROSS(rhs(1:0,0:0,0:0,0:0),lhs__(1:0,0:0,0:0,0:0,0:0)) do k = 1,problem_size - 2 do j = 1,problem_size - 2 do m = 1,5 u_(0,m) = u(m,0,j,k) u_(1,m) = u(m,1,j,k) enddo do i = 1,isize - 1 do m = 1,5 u_(2,m) = u(m,i + 1,j,k) enddo ! if(i .ne. isize) then tmp1 = 1.0d+00 / u_(1,1) tmp2 = tmp1 * tmp1 tmp3 = tmp1 * tmp2 t1 = 1.0d+00 / u_(0,1) t2 = t1 * t1 t3 = t1 * t2 tm1 = 1.0d+00 / u_(2,1) tm2 = tm1 * tm1 tm3 = tm1 * tm2 tmp11 = dt * tx1 tmp22 = dt * tx2 lhs_(1,1,1) = (-(tmp11)) * dx1 lhs_(1,2,1) = (-(tmp22)) lhs_(1,3,1) = 0. lhs_(1,4,1) = 0. lhs_(1,5,1) = 0. lhs_(2,1,1) = (-(tmp22)) * ((-(u_(0,2) * t2 * u_(0,2))) + & c2 * 0.50d+00 * (u_(0,2) * u_(0,2) + u_(0,3) * u_(0,3) + u_(0,4) &* u_(0,4)) * t2) - tmp11 * ((-(con43)) * c3c4 * t2 * u_(0,2)) lhs_(2,2,1) = (-(tmp22)) * ((2.0d+00 - c2) * (u_(0,2) / u &_(0,1))) - tmp11 * con43 * c3c4 * t1 - tmp11 * dx2 lhs_(2,3,1) = (-(tmp22)) * ((-(c2)) * (u_(0,3) * t1)) lhs_(2,4,1) = (-(tmp22)) * ((-(c2)) * (u_(0,4) * t1)) lhs_(2,5,1) = (-(tmp22)) * c2 lhs_(3,1,1) = (-(tmp22)) * ((-(u_(0,2) * u_(0,3))) * t2) &- tmp11 * ((-(c3c4)) * t2 * u_(0,3)) lhs_(3,2,1) = (-(tmp22)) * u_(0,3) * t1 lhs_(3,3,1) = (-(tmp22)) * u_(0,2) * t1 - tmp11 * c3c4 * &t1 - tmp11 * dx3 lhs_(3,4,1) = 0. lhs_(3,5,1) = 0. lhs_(4,1,1) = (-(tmp22)) * ((-(u_(0,2) * u_(0,4))) * t2) &- tmp11 * ((-(c3c4)) * t2 * u_(0,4)) lhs_(4,2,1) = (-(tmp22)) * u_(0,4) * t1 lhs_(4,3,1) = 0. lhs_(4,4,1) = (-(tmp22)) * u_(0,2) * t1 - tmp11 * c3c4 * &t1 - tmp11 * dx4 lhs_(4,5,1) = 0. lhs_(5,1,1) = (-(tmp22)) * ((c2 * (u_(0,2) * u_(0,2) + u_ &(0,3) * u_(0,3) + u_(0,4) * u_(0,4)) * t2 - c1 * (u_(0,5) * t1)) * & (u_(0,2) * t1)) - tmp11 * ((-(con43 * c3c4 - c1345)) * t3 * u_(0, &2)** 2 - (c3c4 - c1345) * t3 * u_(0,3)** 2 - (c3c4 - c1345) * t3 * & u_(0,4)** 2 - c1345 * t2 * u_(0,5)) lhs_(5,2,1) = (-(tmp22)) * (c1 * u_(0,5) * t1 - 0.50d+00 &* c2 * (3.0d+00 * u_(0,2) * u_(0,2) + u_(0,3) * u_(0,3) + u_(0,4) &* u_(0,4)) * t2) - tmp11 * ((con43 * c3c4 - c1345) * t2 * u_(0,2)) lhs_(5,3,1) = (-(tmp22)) * ((-(c2)) * (u_(0,3) * u_(0,2)) & * t2) - tmp11 * (c3c4 - c1345) * t2 * u_(0,3) lhs_(5,4,1) = (-(tmp22)) * ((-(c2)) * (u_(0,4) * u_(0,2)) & * t2) - tmp11 * (c3c4 - c1345) * t2 * u_(0,4) lhs_(5,5,1) = (-(tmp22)) * c1 * (u_(0,2) * t1) - tmp11 * &c1345 * t1 - tmp11 * dx5 lhs_(1,1,2) = 1.0d+00 + tmp11 * 2.0d+00 * dx1 lhs_(1,2,2) = 0. lhs_(1,3,2) = 0. lhs_(1,4,2) = 0. lhs_(1,5,2) = 0. lhs_(2,1,2) = tmp11 * 2.0d+00 * ((-(con43)) * c3c4 * tmp2 & * u_(1,2)) lhs_(2,2,2) = 1.0d+00 + tmp11 * 2.0d+00 * con43 * c3c4 * &tmp1 + tmp11 * 2.0d+00 * dx2 lhs_(2,3,2) = 0. lhs_(2,4,2) = 0. lhs_(2,5,2) = 0. lhs_(3,1,2) = tmp11 * 2.0d+00 * ((-(c3c4)) * tmp2 * u_(1, &3)) lhs_(3,2,2) = 0. lhs_(3,3,2) = 1.0d+00 + tmp11 * 2.0d+00 * c3c4 * tmp1 + t &mp11 * 2.0d+00 * dx3 lhs_(3,4,2) = 0. lhs_(3,5,2) = 0. lhs_(4,1,2) = tmp11 * 2.0d+00 * ((-(c3c4)) * tmp2 * u_(1, &4)) lhs_(4,2,2) = 0. lhs_(4,3,2) = 0. lhs_(4,4,2) = 1.0d+00 + tmp11 * 2.0d+00 * c3c4 * tmp1 + t &mp11 * 2.0d+00 * dx4 lhs_(4,5,2) = tmp11 * 2.0d+00 * 0 lhs_(5,1,2) = tmp11 * 2.0d+00 * ((-(con43 * c3c4 - c1345) &) * tmp3 * u_(1,2)** 2 - (c3c4 - c1345) * tmp3 * u_(1,3)** 2 - (c3 &c4 - c1345) * tmp3 * u_(1,4)** 2 - c1345 * tmp2 * u_(1,5)) lhs_(5,2,2) = tmp11 * 2.0d+00 * ((con43 * c3c4 - c1345) * & tmp2 * u_(1,2)) lhs_(5,3,2) = tmp11 * 2.0d+00 * (c3c4 - c1345) * tmp2 * u &_(1,3) lhs_(5,4,2) = tmp11 * 2.0d+00 * (c3c4 - c1345) * tmp2 * u &_(1,4) lhs_(5,5,2) = 1.0d+00 + tmp11 * 2.0d+00 * c1345 * tmp1 + &tmp11 * 2.0d+00 * dx5 if (i .ne. 1) then do j__1 = 1,5 lhs_(1,j__1,2) = lhs_(1,j__1,2) - lhs_(1,1,1) * lhs &_(1,j__1,3) - lhs_(1,2,1) * lhs_(2,j__1,3) - lhs_(1,3,1) * lhs_(3, &j__1,3) - lhs_(1,4,1) * lhs_(4,j__1,3) - lhs_(1,5,1) * lhs_(5,j__1 &,3) lhs_(2,j__1,2) = lhs_(2,j__1,2) - lhs_(2,1,1) * lhs &_(1,j__1,3) - lhs_(2,2,1) * lhs_(2,j__1,3) - lhs_(2,3,1) * lhs_(3, &j__1,3) - lhs_(2,4,1) * lhs_(4,j__1,3) - lhs_(2,5,1) * lhs_(5,j__1 &,3) lhs_(3,j__1,2) = lhs_(3,j__1,2) - lhs_(3,1,1) * lhs &_(1,j__1,3) - lhs_(3,2,1) * lhs_(2,j__1,3) - lhs_(3,3,1) * lhs_(3, &j__1,3) - lhs_(3,4,1) * lhs_(4,j__1,3) - lhs_(3,5,1) * lhs_(5,j__1 &,3) lhs_(4,j__1,2) = lhs_(4,j__1,2) - lhs_(4,1,1) * lhs &_(1,j__1,3) - lhs_(4,2,1) * lhs_(2,j__1,3) - lhs_(4,3,1) * lhs_(3, &j__1,3) - lhs_(4,4,1) * lhs_(4,j__1,3) - lhs_(4,5,1) * lhs_(5,j__1 &,3) lhs_(5,j__1,2) = lhs_(5,j__1,2) - lhs_(5,1,1) * lhs &_(1,j__1,3) - lhs_(5,2,1) * lhs_(2,j__1,3) - lhs_(5,3,1) * lhs_(3, &j__1,3) - lhs_(5,4,1) * lhs_(4,j__1,3) - lhs_(5,5,1) * lhs_(5,j__1 &,3) enddo endif lhs_(1,1,3) = (-(tmp11)) * dx1 lhs_(1,2,3) = tmp22 lhs_(1,3,3) = 0. lhs_(1,4,3) = 0. lhs_(1,5,3) = 0. lhs_(2,1,3) = tmp22 * ((-(u_(2,2) * tm2 * u_(2,2))) + c2 &* 0.50d+00 * (u_(2,2) * u_(2,2) + u_(2,3) * u_(2,3) + u_(2,4) * u_ &(2,4)) * tm2) - tmp11 * ((-(con43)) * c3c4 * tm2 * u_(2,2)) lhs_(2,2,3) = tmp22 * ((2.0d+00 - c2) * (u_(2,2) / u_(2,1 &))) - tmp11 * con43 * c3c4 * tm1 - tmp11 * dx2 lhs_(2,3,3) = tmp22 * ((-(c2)) * (u_(2,3) * tm1)) lhs_(2,4,3) = tmp22 * ((-(c2)) * (u_(2,4) * tm1)) lhs_(2,5,3) = tmp22 * c2 lhs_(3,1,3) = tmp22 * ((-(u_(2,2) * u_(2,3))) * tm2) - tm &p11 * ((-(c3c4)) * tm2 * u_(2,3)) lhs_(3,2,3) = tmp22 * u_(2,3) * tm1 lhs_(3,3,3) = tmp22 * u_(2,2) * tm1 - tmp11 * c3c4 * tm1 &- tmp11 * dx3 lhs_(3,4,3) = 0. lhs_(3,5,3) = 0. lhs_(4,1,3) = tmp22 * ((-(u_(2,2) * u_(2,4))) * tm2) - tm &p11 * ((-(c3c4)) * tm2 * u_(2,4)) lhs_(4,2,3) = tmp22 * u_(2,4) * tm1 lhs_(4,3,3) = 0. lhs_(4,4,3) = tmp22 * u_(2,2) * tm1 - tmp11 * c3c4 * tm1 &- tmp11 * dx4 lhs_(4,5,3) = 0. lhs_(5,1,3) = tmp22 * ((c2 * (u_(2,2) * u_(2,2) + u_(2,3) & * u_(2,3) + u_(2,4) * u_(2,4)) * tm2 - c1 * (u_(2,5) * tm1)) * (u &_(2,2) * tm1)) - tmp11 * ((-(con43 * c3c4 - c1345)) * tm3 * u_(2,2 &)** 2 - (c3c4 - c1345) * tm3 * u_(2,3)** 2 - (c3c4 - c1345) * tm3 &* u_(2,4)** 2 - c1345 * tm2 * u_(2,5)) lhs_(5,2,3) = tmp22 * (c1 * u_(2,5) * tm1 - 0.50d+00 * c2 & * (3.0d+00 * u_(2,2) * u_(2,2) + u_(2,3) * u_(2,3) + u_(2,4) * u_ &(2,4)) * tm2) - tmp11 * ((con43 * c3c4 - c1345) * tm2 * u_(2,2)) lhs_(5,3,3) = tmp22 * ((-(c2)) * (u_(2,3) * u_(2,2)) * tm &2) - tmp11 * (c3c4 - c1345) * tm2 * u_(2,3) lhs_(5,4,3) = tmp22 * ((-(c2)) * (u_(2,4) * u_(2,2)) * tm &2) - tmp11 * (c3c4 - c1345) * tm2 * u_(2,4) lhs_(5,5,3) = tmp22 * c1 * (u_(2,2) * tm1) - tmp11 * c134 &5 * tm1 - tmp11 * dx5 do m = 1,5 rhs_(m) = rhs(m,i,j,k) enddo do i__0 = 1,5 rhs_(i__0) = rhs_(i__0) - lhs_(i__0,1,1) * rhs(1,i - 1 &,j,k) - lhs_(i__0,2,1) * rhs(2,i - 1,j,k) - lhs_(i__0,3,1) * rhs(3 &,i - 1,j,k) - lhs_(i__0,4,1) * rhs(4,i - 1,j,k) - lhs_(i__0,5,1) * & rhs(5,i - 1,j,k) enddo pivot = 1.00d0 / lhs_(1,1,2) lhs_(1,2,2) = lhs_(1,2,2) * pivot lhs_(1,3,2) = lhs_(1,3,2) * pivot lhs_(1,4,2) = lhs_(1,4,2) * pivot lhs_(1,5,2) = lhs_(1,5,2) * pivot lhs_(1,1,3) = lhs_(1,1,3) * pivot lhs_(1,2,3) = lhs_(1,2,3) * pivot lhs_(1,3,3) = lhs_(1,3,3) * pivot lhs_(1,4,3) = lhs_(1,4,3) * pivot lhs_(1,5,3) = lhs_(1,5,3) * pivot rhs_(1) = rhs_(1) * pivot coeff = lhs_(2,1,2) lhs_(2,2,2) = lhs_(2,2,2) - coeff * lhs_(1,2,2) lhs_(2,3,2) = lhs_(2,3,2) - coeff * lhs_(1,3,2) lhs_(2,4,2) = lhs_(2,4,2) - coeff * lhs_(1,4,2) lhs_(2,5,2) = lhs_(2,5,2) - coeff * lhs_(1,5,2) lhs_(2,1,3) = lhs_(2,1,3) - coeff * lhs_(1,1,3) lhs_(2,2,3) = lhs_(2,2,3) - coeff * lhs_(1,2,3) lhs_(2,3,3) = lhs_(2,3,3) - coeff * lhs_(1,3,3) lhs_(2,4,3) = lhs_(2,4,3) - coeff * lhs_(1,4,3) lhs_(2,5,3) = lhs_(2,5,3) - coeff * lhs_(1,5,3) rhs_(2) = rhs_(2) - coeff * rhs_(1) coeff = lhs_(3,1,2) lhs_(3,2,2) = lhs_(3,2,2) - coeff * lhs_(1,2,2) lhs_(3,3,2) = lhs_(3,3,2) - coeff * lhs_(1,3,2) lhs_(3,4,2) = lhs_(3,4,2) - coeff * lhs_(1,4,2) lhs_(3,5,2) = lhs_(3,5,2) - coeff * lhs_(1,5,2) lhs_(3,1,3) = lhs_(3,1,3) - coeff * lhs_(1,1,3) lhs_(3,2,3) = lhs_(3,2,3) - coeff * lhs_(1,2,3) lhs_(3,3,3) = lhs_(3,3,3) - coeff * lhs_(1,3,3) lhs_(3,4,3) = lhs_(3,4,3) - coeff * lhs_(1,4,3) lhs_(3,5,3) = lhs_(3,5,3) - coeff * lhs_(1,5,3) rhs_(3) = rhs_(3) - coeff * rhs_(1) coeff = lhs_(4,1,2) lhs_(4,2,2) = lhs_(4,2,2) - coeff * lhs_(1,2,2) lhs_(4,3,2) = lhs_(4,3,2) - coeff * lhs_(1,3,2) lhs_(4,4,2) = lhs_(4,4,2) - coeff * lhs_(1,4,2) lhs_(4,5,2) = lhs_(4,5,2) - coeff * lhs_(1,5,2) lhs_(4,1,3) = lhs_(4,1,3) - coeff * lhs_(1,1,3) lhs_(4,2,3) = lhs_(4,2,3) - coeff * lhs_(1,2,3) lhs_(4,3,3) = lhs_(4,3,3) - coeff * lhs_(1,3,3) lhs_(4,4,3) = lhs_(4,4,3) - coeff * lhs_(1,4,3) lhs_(4,5,3) = lhs_(4,5,3) - coeff * lhs_(1,5,3) rhs_(4) = rhs_(4) - coeff * rhs_(1) coeff = lhs_(5,1,2) lhs_(5,2,2) = lhs_(5,2,2) - coeff * lhs_(1,2,2) lhs_(5,3,2) = lhs_(5,3,2) - coeff * lhs_(1,3,2) lhs_(5,4,2) = lhs_(5,4,2) - coeff * lhs_(1,4,2) lhs_(5,5,2) = lhs_(5,5,2) - coeff * lhs_(1,5,2) lhs_(5,1,3) = lhs_(5,1,3) - coeff * lhs_(1,1,3) lhs_(5,2,3) = lhs_(5,2,3) - coeff * lhs_(1,2,3) lhs_(5,3,3) = lhs_(5,3,3) - coeff * lhs_(1,3,3) lhs_(5,4,3) = lhs_(5,4,3) - coeff * lhs_(1,4,3) lhs_(5,5,3) = lhs_(5,5,3) - coeff * lhs_(1,5,3) rhs_(5) = rhs_(5) - coeff * rhs_(1) pivot = 1.00d0 / lhs_(2,2,2) lhs_(2,3,2) = lhs_(2,3,2) * pivot lhs_(2,4,2) = lhs_(2,4,2) * pivot lhs_(2,5,2) = lhs_(2,5,2) * pivot lhs_(2,1,3) = lhs_(2,1,3) * pivot lhs_(2,2,3) = lhs_(2,2,3) * pivot lhs_(2,3,3) = lhs_(2,3,3) * pivot lhs_(2,4,3) = lhs_(2,4,3) * pivot lhs_(2,5,3) = lhs_(2,5,3) * pivot rhs_(2) = rhs_(2) * pivot coeff = lhs_(1,2,2) lhs_(1,3,2) = lhs_(1,3,2) - coeff * lhs_(2,3,2) lhs_(1,4,2) = lhs_(1,4,2) - coeff * lhs_(2,4,2) lhs_(1,5,2) = lhs_(1,5,2) - coeff * lhs_(2,5,2) lhs_(1,1,3) = lhs_(1,1,3) - coeff * lhs_(2,1,3) lhs_(1,2,3) = lhs_(1,2,3) - coeff * lhs_(2,2,3) lhs_(1,3,3) = lhs_(1,3,3) - coeff * lhs_(2,3,3) lhs_(1,4,3) = lhs_(1,4,3) - coeff * lhs_(2,4,3) lhs_(1,5,3) = lhs_(1,5,3) - coeff * lhs_(2,5,3) rhs_(1) = rhs_(1) - coeff * rhs_(2) coeff = lhs_(3,2,2) lhs_(3,3,2) = lhs_(3,3,2) - coeff * lhs_(2,3,2) lhs_(3,4,2) = lhs_(3,4,2) - coeff * lhs_(2,4,2) lhs_(3,5,2) = lhs_(3,5,2) - coeff * lhs_(2,5,2) lhs_(3,1,3) = lhs_(3,1,3) - coeff * lhs_(2,1,3) lhs_(3,2,3) = lhs_(3,2,3) - coeff * lhs_(2,2,3) lhs_(3,3,3) = lhs_(3,3,3) - coeff * lhs_(2,3,3) lhs_(3,4,3) = lhs_(3,4,3) - coeff * lhs_(2,4,3) lhs_(3,5,3) = lhs_(3,5,3) - coeff * lhs_(2,5,3) rhs_(3) = rhs_(3) - coeff * rhs_(2) coeff = lhs_(4,2,2) lhs_(4,3,2) = lhs_(4,3,2) - coeff * lhs_(2,3,2) lhs_(4,4,2) = lhs_(4,4,2) - coeff * lhs_(2,4,2) lhs_(4,5,2) = lhs_(4,5,2) - coeff * lhs_(2,5,2) lhs_(4,1,3) = lhs_(4,1,3) - coeff * lhs_(2,1,3) lhs_(4,2,3) = lhs_(4,2,3) - coeff * lhs_(2,2,3) lhs_(4,3,3) = lhs_(4,3,3) - coeff * lhs_(2,3,3) lhs_(4,4,3) = lhs_(4,4,3) - coeff * lhs_(2,4,3) lhs_(4,5,3) = lhs_(4,5,3) - coeff * lhs_(2,5,3) rhs_(4) = rhs_(4) - coeff * rhs_(2) coeff = lhs_(5,2,2) lhs_(5,3,2) = lhs_(5,3,2) - coeff * lhs_(2,3,2) lhs_(5,4,2) = lhs_(5,4,2) - coeff * lhs_(2,4,2) lhs_(5,5,2) = lhs_(5,5,2) - coeff * lhs_(2,5,2) lhs_(5,1,3) = lhs_(5,1,3) - coeff * lhs_(2,1,3) lhs_(5,2,3) = lhs_(5,2,3) - coeff * lhs_(2,2,3) lhs_(5,3,3) = lhs_(5,3,3) - coeff * lhs_(2,3,3) lhs_(5,4,3) = lhs_(5,4,3) - coeff * lhs_(2,4,3) lhs_(5,5,3) = lhs_(5,5,3) - coeff * lhs_(2,5,3) rhs_(5) = rhs_(5) - coeff * rhs_(2) pivot = 1.00d0 / lhs_(3,3,2) lhs_(3,4,2) = lhs_(3,4,2) * pivot lhs_(3,5,2) = lhs_(3,5,2) * pivot lhs_(3,1,3) = lhs_(3,1,3) * pivot lhs_(3,2,3) = lhs_(3,2,3) * pivot lhs_(3,3,3) = lhs_(3,3,3) * pivot lhs_(3,4,3) = lhs_(3,4,3) * pivot lhs_(3,5,3) = lhs_(3,5,3) * pivot rhs_(3) = rhs_(3) * pivot coeff = lhs_(1,3,2) lhs_(1,4,2) = lhs_(1,4,2) - coeff * lhs_(3,4,2) lhs_(1,5,2) = lhs_(1,5,2) - coeff * lhs_(3,5,2) lhs_(1,1,3) = lhs_(1,1,3) - coeff * lhs_(3,1,3) lhs_(1,2,3) = lhs_(1,2,3) - coeff * lhs_(3,2,3) lhs_(1,3,3) = lhs_(1,3,3) - coeff * lhs_(3,3,3) lhs_(1,4,3) = lhs_(1,4,3) - coeff * lhs_(3,4,3) lhs_(1,5,3) = lhs_(1,5,3) - coeff * lhs_(3,5,3) rhs_(1) = rhs_(1) - coeff * rhs_(3) coeff = lhs_(2,3,2) lhs_(2,4,2) = lhs_(2,4,2) - coeff * lhs_(3,4,2) lhs_(2,5,2) = lhs_(2,5,2) - coeff * lhs_(3,5,2) lhs_(2,1,3) = lhs_(2,1,3) - coeff * lhs_(3,1,3) lhs_(2,2,3) = lhs_(2,2,3) - coeff * lhs_(3,2,3) lhs_(2,3,3) = lhs_(2,3,3) - coeff * lhs_(3,3,3) lhs_(2,4,3) = lhs_(2,4,3) - coeff * lhs_(3,4,3) lhs_(2,5,3) = lhs_(2,5,3) - coeff * lhs_(3,5,3) rhs_(2) = rhs_(2) - coeff * rhs_(3) coeff = lhs_(4,3,2) lhs_(4,4,2) = lhs_(4,4,2) - coeff * lhs_(3,4,2) lhs_(4,5,2) = lhs_(4,5,2) - coeff * lhs_(3,5,2) lhs_(4,1,3) = lhs_(4,1,3) - coeff * lhs_(3,1,3) lhs_(4,2,3) = lhs_(4,2,3) - coeff * lhs_(3,2,3) lhs_(4,3,3) = lhs_(4,3,3) - coeff * lhs_(3,3,3) lhs_(4,4,3) = lhs_(4,4,3) - coeff * lhs_(3,4,3) lhs_(4,5,3) = lhs_(4,5,3) - coeff * lhs_(3,5,3) rhs_(4) = rhs_(4) - coeff * rhs_(3) coeff = lhs_(5,3,2) lhs_(5,4,2) = lhs_(5,4,2) - coeff * lhs_(3,4,2) lhs_(5,5,2) = lhs_(5,5,2) - coeff * lhs_(3,5,2) lhs_(5,1,3) = lhs_(5,1,3) - coeff * lhs_(3,1,3) lhs_(5,2,3) = lhs_(5,2,3) - coeff * lhs_(3,2,3) lhs_(5,3,3) = lhs_(5,3,3) - coeff * lhs_(3,3,3) lhs_(5,4,3) = lhs_(5,4,3) - coeff * lhs_(3,4,3) lhs_(5,5,3) = lhs_(5,5,3) - coeff * lhs_(3,5,3) rhs_(5) = rhs_(5) - coeff * rhs_(3) pivot = 1.00d0 / lhs_(4,4,2) lhs_(4,5,2) = lhs_(4,5,2) * pivot lhs_(4,1,3) = lhs_(4,1,3) * pivot lhs_(4,2,3) = lhs_(4,2,3) * pivot lhs_(4,3,3) = lhs_(4,3,3) * pivot lhs_(4,4,3) = lhs_(4,4,3) * pivot lhs_(4,5,3) = lhs_(4,5,3) * pivot rhs_(4) = rhs_(4) * pivot coeff = lhs_(1,4,2) lhs_(1,5,2) = lhs_(1,5,2) - coeff * lhs_(4,5,2) lhs_(1,1,3) = lhs_(1,1,3) - coeff * lhs_(4,1,3) lhs_(1,2,3) = lhs_(1,2,3) - coeff * lhs_(4,2,3) lhs_(1,3,3) = lhs_(1,3,3) - coeff * lhs_(4,3,3) lhs_(1,4,3) = lhs_(1,4,3) - coeff * lhs_(4,4,3) lhs_(1,5,3) = lhs_(1,5,3) - coeff * lhs_(4,5,3) rhs_(1) = rhs_(1) - coeff * rhs_(4) coeff = lhs_(2,4,2) lhs_(2,5,2) = lhs_(2,5,2) - coeff * lhs_(4,5,2) lhs_(2,1,3) = lhs_(2,1,3) - coeff * lhs_(4,1,3) lhs_(2,2,3) = lhs_(2,2,3) - coeff * lhs_(4,2,3) lhs_(2,3,3) = lhs_(2,3,3) - coeff * lhs_(4,3,3) lhs_(2,4,3) = lhs_(2,4,3) - coeff * lhs_(4,4,3) lhs_(2,5,3) = lhs_(2,5,3) - coeff * lhs_(4,5,3) rhs_(2) = rhs_(2) - coeff * rhs_(4) coeff = lhs_(3,4,2) lhs_(3,5,2) = lhs_(3,5,2) - coeff * lhs_(4,5,2) lhs_(3,1,3) = lhs_(3,1,3) - coeff * lhs_(4,1,3) lhs_(3,2,3) = lhs_(3,2,3) - coeff * lhs_(4,2,3) lhs_(3,3,3) = lhs_(3,3,3) - coeff * lhs_(4,3,3) lhs_(3,4,3) = lhs_(3,4,3) - coeff * lhs_(4,4,3) lhs_(3,5,3) = lhs_(3,5,3) - coeff * lhs_(4,5,3) rhs_(3) = rhs_(3) - coeff * rhs_(4) coeff = lhs_(5,4,2) lhs_(5,5,2) = lhs_(5,5,2) - coeff * lhs_(4,5,2) lhs_(5,1,3) = lhs_(5,1,3) - coeff * lhs_(4,1,3) lhs_(5,2,3) = lhs_(5,2,3) - coeff * lhs_(4,2,3) lhs_(5,3,3) = lhs_(5,3,3) - coeff * lhs_(4,3,3) lhs_(5,4,3) = lhs_(5,4,3) - coeff * lhs_(4,4,3) lhs_(5,5,3) = lhs_(5,5,3) - coeff * lhs_(4,5,3) rhs_(5) = rhs_(5) - coeff * rhs_(4) pivot = 1.00d0 / lhs_(5,5,2) lhs_(5,1,3) = lhs_(5,1,3) * pivot lhs_(5,2,3) = lhs_(5,2,3) * pivot lhs_(5,3,3) = lhs_(5,3,3) * pivot lhs_(5,4,3) = lhs_(5,4,3) * pivot lhs_(5,5,3) = lhs_(5,5,3) * pivot rhs_(5) = rhs_(5) * pivot coeff = lhs_(1,5,2) lhs_(1,1,3) = lhs_(1,1,3) - coeff * lhs_(5,1,3) lhs_(1,2,3) = lhs_(1,2,3) - coeff * lhs_(5,2,3) lhs_(1,3,3) = lhs_(1,3,3) - coeff * lhs_(5,3,3) lhs_(1,4,3) = lhs_(1,4,3) - coeff * lhs_(5,4,3) lhs_(1,5,3) = lhs_(1,5,3) - coeff * lhs_(5,5,3) rhs_(1) = rhs_(1) - coeff * rhs_(5) coeff = lhs_(2,5,2) lhs_(2,1,3) = lhs_(2,1,3) - coeff * lhs_(5,1,3) lhs_(2,2,3) = lhs_(2,2,3) - coeff * lhs_(5,2,3) lhs_(2,3,3) = lhs_(2,3,3) - coeff * lhs_(5,3,3) lhs_(2,4,3) = lhs_(2,4,3) - coeff * lhs_(5,4,3) lhs_(2,5,3) = lhs_(2,5,3) - coeff * lhs_(5,5,3) rhs_(2) = rhs_(2) - coeff * rhs_(5) coeff = lhs_(3,5,2) lhs_(3,1,3) = lhs_(3,1,3) - coeff * lhs_(5,1,3) lhs_(3,2,3) = lhs_(3,2,3) - coeff * lhs_(5,2,3) lhs_(3,3,3) = lhs_(3,3,3) - coeff * lhs_(5,3,3) lhs_(3,4,3) = lhs_(3,4,3) - coeff * lhs_(5,4,3) lhs_(3,5,3) = lhs_(3,5,3) - coeff * lhs_(5,5,3) rhs_(3) = rhs_(3) - coeff * rhs_(5) coeff = lhs_(4,5,2) lhs_(4,1,3) = lhs_(4,1,3) - coeff * lhs_(5,1,3) lhs_(4,2,3) = lhs_(4,2,3) - coeff * lhs_(5,2,3) lhs_(4,3,3) = lhs_(4,3,3) - coeff * lhs_(5,3,3) lhs_(4,4,3) = lhs_(4,4,3) - coeff * lhs_(5,4,3) lhs_(4,5,3) = lhs_(4,5,3) - coeff * lhs_(5,5,3) rhs_(4) = rhs_(4) - coeff * rhs_(5) do i__0 = 1,5 lhs__(i__0,1,i,j,k) = lhs_(i__0,1,3) lhs__(i__0,2,i,j,k) = lhs_(i__0,2,3) lhs__(i__0,3,i,j,k) = lhs_(i__0,3,3) lhs__(i__0,4,i,j,k) = lhs_(i__0,4,3) lhs__(i__0,5,i,j,k) = lhs_(i__0,5,3) enddo do m = 1,5 rhs(m,i,j,k) = rhs_(m) u_(0,m) = u_(1,m) u_(1,m) = u_(2,m) enddo enddo ! else ! ******************* else case ************************* do n = 1,5 lhs_(1,n,1) = 0.0d0 lhs_(1,n,2) = 0.0d0 lhs_(1,n,3) = 0.0d0 lhs_(2,n,1) = 0.0d0 lhs_(2,n,2) = 0.0d0 lhs_(2,n,3) = 0.0d0 lhs_(3,n,1) = 0.0d0 lhs_(3,n,2) = 0.0d0 lhs_(3,n,3) = 0.0d0 lhs_(4,n,1) = 0.0d0 lhs_(4,n,2) = 0.0d0 lhs_(4,n,3) = 0.0d0 lhs_(5,n,1) = 0.0d0 lhs_(5,n,2) = 0.0d0 lhs_(5,n,3) = 0.0d0 enddo do m = 1,5 lhs_(m,m,2) = 1.0d0 enddo do m = 1,5 rhs_(m) = rhs(m,i,j,k) enddo do i__0 = 1,5 rhs_(i__0) = rhs_(i__0) - lhs_(i__0,1,1) * rhs(1,i - 1,j, &k) - lhs_(i__0,2,1) * rhs(2,i - 1,j,k) - lhs_(i__0,3,1) * rhs(3,i &- 1,j,k) - lhs_(i__0,4,1) * rhs(4,i - 1,j,k) - lhs_(i__0,5,1) * rh &s(5,i - 1,j,k) enddo do j__1 = 1,5 lhs_(1,j__1,2) = lhs_(1,j__1,2) - lhs_(1,1,1) * lhs_(1,j_ &_1,3) - lhs_(1,2,1) * lhs_(2,j__1,3) - lhs_(1,3,1) * lhs_(3,j__1,3 &) - lhs_(1,4,1) * lhs_(4,j__1,3) - lhs_(1,5,1) * lhs_(5,j__1,3) lhs_(2,j__1,2) = lhs_(2,j__1,2) - lhs_(2,1,1) * lhs_(1,j_ &_1,3) - lhs_(2,2,1) * lhs_(2,j__1,3) - lhs_(2,3,1) * lhs_(3,j__1,3 &) - lhs_(2,4,1) * lhs_(4,j__1,3) - lhs_(2,5,1) * lhs_(5,j__1,3) lhs_(3,j__1,2) = lhs_(3,j__1,2) - lhs_(3,1,1) * lhs_(1,j_ &_1,3) - lhs_(3,2,1) * lhs_(2,j__1,3) - lhs_(3,3,1) * lhs_(3,j__1,3 &) - lhs_(3,4,1) * lhs_(4,j__1,3) - lhs_(3,5,1) * lhs_(5,j__1,3) lhs_(4,j__1,2) = lhs_(4,j__1,2) - lhs_(4,1,1) * lhs_(1,j_ &_1,3) - lhs_(4,2,1) * lhs_(2,j__1,3) - lhs_(4,3,1) * lhs_(3,j__1,3 &) - lhs_(4,4,1) * lhs_(4,j__1,3) - lhs_(4,5,1) * lhs_(5,j__1,3) lhs_(5,j__1,2) = lhs_(5,j__1,2) - lhs_(5,1,1) * lhs_(1,j_ &_1,3) - lhs_(5,2,1) * lhs_(2,j__1,3) - lhs_(5,3,1) * lhs_(3,j__1,3 &) - lhs_(5,4,1) * lhs_(4,j__1,3) - lhs_(5,5,1) * lhs_(5,j__1,3) enddo !--------------------------------------------------------------------- ! !--------------------------------------------------------------------- pivot__3 = 1.00d0 / lhs_(1,1,2) lhs_(1,2,2) = lhs_(1,2,2) * pivot__3 lhs_(1,3,2) = lhs_(1,3,2) * pivot__3 lhs_(1,4,2) = lhs_(1,4,2) * pivot__3 lhs_(1,5,2) = lhs_(1,5,2) * pivot__3 rhs_(1) = rhs_(1) * pivot__3 coeff__2 = lhs_(2,1,2) lhs_(2,2,2) = lhs_(2,2,2) - coeff__2 * lhs_(1,2,2) lhs_(2,3,2) = lhs_(2,3,2) - coeff__2 * lhs_(1,3,2) lhs_(2,4,2) = lhs_(2,4,2) - coeff__2 * lhs_(1,4,2) lhs_(2,5,2) = lhs_(2,5,2) - coeff__2 * lhs_(1,5,2) rhs_(2) = rhs_(2) - coeff__2 * rhs_(1) coeff__2 = lhs_(3,1,2) lhs_(3,2,2) = lhs_(3,2,2) - coeff__2 * lhs_(1,2,2) lhs_(3,3,2) = lhs_(3,3,2) - coeff__2 * lhs_(1,3,2) lhs_(3,4,2) = lhs_(3,4,2) - coeff__2 * lhs_(1,4,2) lhs_(3,5,2) = lhs_(3,5,2) - coeff__2 * lhs_(1,5,2) rhs_(3) = rhs_(3) - coeff__2 * rhs_(1) coeff__2 = lhs_(4,1,2) lhs_(4,2,2) = lhs_(4,2,2) - coeff__2 * lhs_(1,2,2) lhs_(4,3,2) = lhs_(4,3,2) - coeff__2 * lhs_(1,3,2) lhs_(4,4,2) = lhs_(4,4,2) - coeff__2 * lhs_(1,4,2) lhs_(4,5,2) = lhs_(4,5,2) - coeff__2 * lhs_(1,5,2) rhs_(4) = rhs_(4) - coeff__2 * rhs_(1) coeff__2 = lhs_(5,1,2) lhs_(5,2,2) = lhs_(5,2,2) - coeff__2 * lhs_(1,2,2) lhs_(5,3,2) = lhs_(5,3,2) - coeff__2 * lhs_(1,3,2) lhs_(5,4,2) = lhs_(5,4,2) - coeff__2 * lhs_(1,4,2) lhs_(5,5,2) = lhs_(5,5,2) - coeff__2 * lhs_(1,5,2) rhs_(5) = rhs_(5) - coeff__2 * rhs_(1) pivot__3 = 1.00d0 / lhs_(2,2,2) lhs_(2,3,2) = lhs_(2,3,2) * pivot__3 lhs_(2,4,2) = lhs_(2,4,2) * pivot__3 lhs_(2,5,2) = lhs_(2,5,2) * pivot__3 rhs_(2) = rhs_(2) * pivot__3 coeff__2 = lhs_(1,2,2) lhs_(1,3,2) = lhs_(1,3,2) - coeff__2 * lhs_(2,3,2) lhs_(1,4,2) = lhs_(1,4,2) - coeff__2 * lhs_(2,4,2) lhs_(1,5,2) = lhs_(1,5,2) - coeff__2 * lhs_(2,5,2) rhs_(1) = rhs_(1) - coeff__2 * rhs_(2) coeff__2 = lhs_(3,2,2) lhs_(3,3,2) = lhs_(3,3,2) - coeff__2 * lhs_(2,3,2) lhs_(3,4,2) = lhs_(3,4,2) - coeff__2 * lhs_(2,4,2) lhs_(3,5,2) = lhs_(3,5,2) - coeff__2 * lhs_(2,5,2) rhs_(3) = rhs_(3) - coeff__2 * rhs_(2) coeff__2 = lhs_(4,2,2) lhs_(4,3,2) = lhs_(4,3,2) - coeff__2 * lhs_(2,3,2) lhs_(4,4,2) = lhs_(4,4,2) - coeff__2 * lhs_(2,4,2) lhs_(4,5,2) = lhs_(4,5,2) - coeff__2 * lhs_(2,5,2) rhs_(4) = rhs_(4) - coeff__2 * rhs_(2) coeff__2 = lhs_(5,2,2) lhs_(5,3,2) = lhs_(5,3,2) - coeff__2 * lhs_(2,3,2) lhs_(5,4,2) = lhs_(5,4,2) - coeff__2 * lhs_(2,4,2) lhs_(5,5,2) = lhs_(5,5,2) - coeff__2 * lhs_(2,5,2) rhs_(5) = rhs_(5) - coeff__2 * rhs_(2) pivot__3 = 1.00d0 / lhs_(3,3,2) lhs_(3,4,2) = lhs_(3,4,2) * pivot__3 lhs_(3,5,2) = lhs_(3,5,2) * pivot__3 rhs_(3) = rhs_(3) * pivot__3 coeff__2 = lhs_(1,3,2) lhs_(1,4,2) = lhs_(1,4,2) - coeff__2 * lhs_(3,4,2) lhs_(1,5,2) = lhs_(1,5,2) - coeff__2 * lhs_(3,5,2) rhs_(1) = rhs_(1) - coeff__2 * rhs_(3) coeff__2 = lhs_(2,3,2) lhs_(2,4,2) = lhs_(2,4,2) - coeff__2 * lhs_(3,4,2) lhs_(2,5,2) = lhs_(2,5,2) - coeff__2 * lhs_(3,5,2) rhs_(2) = rhs_(2) - coeff__2 * rhs_(3) coeff__2 = lhs_(4,3,2) lhs_(4,4,2) = lhs_(4,4,2) - coeff__2 * lhs_(3,4,2) lhs_(4,5,2) = lhs_(4,5,2) - coeff__2 * lhs_(3,5,2) rhs_(4) = rhs_(4) - coeff__2 * rhs_(3) coeff__2 = lhs_(5,3,2) lhs_(5,4,2) = lhs_(5,4,2) - coeff__2 * lhs_(3,4,2) lhs_(5,5,2) = lhs_(5,5,2) - coeff__2 * lhs_(3,5,2) rhs_(5) = rhs_(5) - coeff__2 * rhs_(3) pivot__3 = 1.00d0 / lhs_(4,4,2) lhs_(4,5,2) = lhs_(4,5,2) * pivot__3 rhs_(4) = rhs_(4) * pivot__3 coeff__2 = lhs_(1,4,2) lhs_(1,5,2) = lhs_(1,5,2) - coeff__2 * lhs_(4,5,2) rhs_(1) = rhs_(1) - coeff__2 * rhs_(4) coeff__2 = lhs_(2,4,2) lhs_(2,5,2) = lhs_(2,5,2) - coeff__2 * lhs_(4,5,2) rhs_(2) = rhs_(2) - coeff__2 * rhs_(4) coeff__2 = lhs_(3,4,2) lhs_(3,5,2) = lhs_(3,5,2) - coeff__2 * lhs_(4,5,2) rhs_(3) = rhs_(3) - coeff__2 * rhs_(4) coeff__2 = lhs_(5,4,2) lhs_(5,5,2) = lhs_(5,5,2) - coeff__2 * lhs_(4,5,2) rhs_(5) = rhs_(5) - coeff__2 * rhs_(4) pivot__3 = 1.00d0 / lhs_(5,5,2) rhs_(5) = rhs_(5) * pivot__3 coeff__2 = lhs_(1,5,2) rhs_(1) = rhs_(1) - coeff__2 * rhs_(5) coeff__2 = lhs_(2,5,2) rhs_(2) = rhs_(2) - coeff__2 * rhs_(5) coeff__2 = lhs_(3,5,2) rhs_(3) = rhs_(3) - coeff__2 * rhs_(5) coeff__2 = lhs_(4,5,2) rhs_(4) = rhs_(4) - coeff__2 * rhs_(5) ! endif do m = 1,5 rhs(m,i,j,k) = rhs_(m) enddo ! enddo do i = problem_size - 2,0,(-(1)) do m = 1,5 rhs_(m) = rhs(m,i,j,k) enddo do m = 1,5 rhs_(m) = rhs_(m) - lhs__(m,1,i,j,k) * rhs(1,i + 1,j,k &) rhs_(m) = rhs_(m) - lhs__(m,2,i,j,k) * rhs(2,i + 1,j,k &) rhs_(m) = rhs_(m) - lhs__(m,3,i,j,k) * rhs(3,i + 1,j,k &) rhs_(m) = rhs_(m) - lhs__(m,4,i,j,k) * rhs(4,i + 1,j,k &) rhs_(m) = rhs_(m) - lhs__(m,5,i,j,k) * rhs(5,i + 1,j,k &) enddo do m = 1,5 rhs(m,i,j,k) = rhs_(m) enddo enddo enddo enddo !$SPF END PARALLEL_REG ! DVM$ END REGION return end