! *** 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'(JMAX) and rhs'(JMAX) will be sent to next cell !--------------------------------------------------------------------- subroutine y_solve_bt () include 'header3d_bt.h' double precision :: coeff double precision :: pivot integer :: i__0 integer :: j__1,m,n double precision :: coeff__2 double precision :: pivot__3 double precision :: lhs_(5,5,3),rhs_(5),u_(0:3,5) integer :: i,j,k,jsize,jstart jstart = 0 jsize = problem_size - 1 !$SPF PARALLEL_REG r0 !$SPF ANALYSIS(PRIVATE(U_,RHS_,LHS_)) ! DVM$ PARALLEL (K,I) ON RHS(*,I,*,K), PRIVATE (U_,J,RHS_,PIVOT,COEFF,TMP ! DVM$&1,TMP2,TMP3,T1,T2,T3,TM1,TM2,TM3,TMP11,TMP22,I__0,J__1,LHS_,COEFF_ ! DVM$&_2,PIVOT__3,M,N) ! DVM$ REGION LOCAL (LHS__) !ACROSS (rhs(0:0,1:0,0:0,0:0),lhs__(0:0,1:0,0:0,0:0,0:0)) do k = 1,problem_size - 2 do i = 1,problem_size - 2 do m = 1,5 u_(0,m) = u(m,i,0,k) u_(1,m) = u(m,i,1,k) enddo do j = 1,jsize - 1 do m = 1,5 u_(2,m) = u(m,i,j + 1,k) enddo ! if(j .ne. jsize) 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 * ty1 tmp22 = dt * ty2 lhs_(1,1,1) = (-(tmp11)) * dy1 lhs_(1,2,1) = 0. lhs_(1,3,1) = (-(tmp22)) lhs_(1,4,1) = 0. lhs_(1,5,1) = 0. lhs_(2,1,1) = (-(tmp22)) * ((-(u_(0,2) * u_(0,3))) * t2) &- tmp11 * ((-(c3c4)) * t2 * u_(0,2)) lhs_(2,2,1) = (-(tmp22)) * u_(0,3) * t1 - tmp11 * c3c4 * &t1 - tmp11 * dy2 lhs_(2,3,1) = (-(tmp22)) * u_(0,2) * t1 lhs_(2,4,1) = 0. lhs_(2,5,1) = 0. lhs_(3,1,1) = (-(tmp22)) * ((-(u_(0,3) * u_(0,3) * t2)) + & 0.50d+00 * c2 * ((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,3)) lhs_(3,2,1) = (-(tmp22)) * ((-(c2)) * u_(0,2) * t1) lhs_(3,3,1) = (-(tmp22)) * ((2.0d+00 - c2) * u_(0,3) * t1 &) - tmp11 * con43 * c3c4 * t1 - tmp11 * dy3 lhs_(3,4,1) = (-(tmp22)) * ((-(c2)) * u_(0,4) * t1) lhs_(3,5,1) = (-(tmp22)) * c2 lhs_(4,1,1) = (-(tmp22)) * ((-(u_(0,3) * u_(0,4))) * t2) &- tmp11 * ((-(c3c4)) * t2 * u_(0,4)) lhs_(4,2,1) = 0. lhs_(4,3,1) = (-(tmp22)) * u_(0,4) * t1 lhs_(4,4,1) = (-(tmp22)) * u_(0,3) * t1 - tmp11 * c3c4 * &t1 - tmp11 * dy4 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,3) * t1) - tmp11 * ((-(c3c4 - c1345)) * t3 * u_(0,2)** 2 - (co &n43 * c3c4 - c1345) * t3 * u_(0,3)** 2 - (c3c4 - c1345) * t3 * u_( &0,4)** 2 - c1345 * t2 * u_(0,5)) lhs_(5,2,1) = (-(tmp22)) * ((-(c2)) * u_(0,2) * u_(0,3) * & t2) - tmp11 * (c3c4 - c1345) * t2 * u_(0,2) lhs_(5,3,1) = (-(tmp22)) * (c1 * u_(0,5) * t1 - 0.50d+00 &* c2 * ((u_(0,2) * u_(0,2) + 3.0d+00 * u_(0,3) * u_(0,3) + u_(0,4) & * u_(0,4)) * t2)) - tmp11 * (con43 * c3c4 - c1345) * t2 * u_(0,3) lhs_(5,4,1) = (-(tmp22)) * ((-(c2)) * (u_(0,3) * u_(0,4)) & * t2) - tmp11 * (c3c4 - c1345) * t2 * u_(0,4) lhs_(5,5,1) = (-(tmp22)) * c1 * u_(0,3) * t1 - tmp11 * c1 &345 * t1 - tmp11 * dy5 lhs_(1,1,2) = 1.0d+00 + tmp11 * 2.0d+00 * dy1 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 * ((-(c3c4)) * tmp2 * u_(1, &2)) lhs_(2,2,2) = 1.0d+00 + tmp11 * 2.0d+00 * c3c4 * tmp1 + t &mp11 * 2.0d+00 * dy2 lhs_(2,3,2) = 0. lhs_(2,4,2) = 0. lhs_(2,5,2) = 0. lhs_(3,1,2) = tmp11 * 2.0d+00 * ((-(con43)) * c3c4 * tmp2 & * u_(1,3)) lhs_(3,2,2) = 0. lhs_(3,3,2) = 1.0d+00 + tmp11 * 2.0d+00 * con43 * c3c4 * &tmp1 + tmp11 * 2.0d+00 * dy3 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 * dy4 lhs_(4,5,2) = 0. lhs_(5,1,2) = tmp11 * 2.0d+00 * ((-(c3c4 - c1345)) * tmp3 & * u_(1,2)** 2 - (con43 * 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 * (c3c4 - c1345) * tmp2 * u &_(1,2) lhs_(5,3,2) = tmp11 * 2.0d+00 * (con43 * 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 * dy5 if (j .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)) * dy1 lhs_(1,2,3) = 0. lhs_(1,3,3) = tmp22 lhs_(1,4,3) = 0. lhs_(1,5,3) = 0. lhs_(2,1,3) = tmp22 * ((-(u_(2,2) * u_(2,3))) * tm2) - tm &p11 * ((-(c3c4)) * tm2 * u_(2,2)) lhs_(2,2,3) = tmp22 * u_(2,3) * tm1 - tmp11 * c3c4 * tm1 &- tmp11 * dy2 lhs_(2,3,3) = tmp22 * u_(2,2) * tm1 lhs_(2,4,3) = 0. lhs_(2,5,3) = 0. lhs_(3,1,3) = tmp22 * ((-(u_(2,3) * u_(2,3) * tm2)) + 0.5 &0d+00 * c2 * ((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,3)) lhs_(3,2,3) = tmp22 * ((-(c2)) * u_(2,2) * tm1) lhs_(3,3,3) = tmp22 * ((2.0d+00 - c2) * u_(2,3) * tm1) - &tmp11 * con43 * c3c4 * tm1 - tmp11 * dy3 lhs_(3,4,3) = tmp22 * ((-(c2)) * u_(2,4) * tm1) lhs_(3,5,3) = tmp22 * c2 lhs_(4,1,3) = tmp22 * ((-(u_(2,3) * u_(2,4))) * tm2) - tm &p11 * ((-(c3c4)) * tm2 * u_(2,4)) lhs_(4,2,3) = 0. lhs_(4,3,3) = tmp22 * u_(2,4) * tm1 lhs_(4,4,3) = tmp22 * u_(2,3) * tm1 - tmp11 * c3c4 * tm1 &- tmp11 * dy4 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 &,3) * tm1) - tmp11 * ((-(c3c4 - c1345)) * tm3 * u_(2,2)** 2 - (con &43 * c3c4 - c1345) * tm3 * u_(2,3)** 2 - (c3c4 - c1345) * tm3 * u_ &(2,4)** 2 - c1345 * tm2 * u_(2,5)) lhs_(5,2,3) = tmp22 * ((-(c2)) * u_(2,2) * u_(2,3) * tm2) & - tmp11 * (c3c4 - c1345) * tm2 * u_(2,2) lhs_(5,3,3) = tmp22 * (c1 * u_(2,5) * tm1 - 0.50d+00 * c2 & * ((u_(2,2) * u_(2,2) + 3.0d+00 * u_(2,3) * u_(2,3) + u_(2,4) * u &_(2,4)) * tm2)) - tmp11 * (con43 * c3c4 - c1345) * tm2 * u_(2,3) lhs_(5,4,3) = tmp22 * ((-(c2)) * (u_(2,3) * u_(2,4)) * tm &2) - tmp11 * (c3c4 - c1345) * tm2 * u_(2,4) lhs_(5,5,3) = tmp22 * c1 * u_(2,3) * tm1 - tmp11 * c1345 &* tm1 - tmp11 * dy5 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,j - & 1,k) - lhs_(i__0,2,1) * rhs(2,i,j - 1,k) - lhs_(i__0,3,1) * rhs(3 &,i,j - 1,k) - lhs_(i__0,4,1) * rhs(4,i,j - 1,k) - lhs_(i__0,5,1) * & rhs(5,i,j - 1,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,jsize &- 1,k) - lhs_(i__0,2,1) * rhs(2,i,jsize - 1,k) - lhs_(i__0,3,1) * &rhs(3,i,jsize - 1,k) - lhs_(i__0,4,1) * rhs(4,i,jsize - 1,k) - lhs &_(i__0,5,1) * rhs(5,i,jsize - 1,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 j = 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,j + 1,k &) rhs_(m) = rhs_(m) - lhs__(m,2,i,j,k) * rhs(2,i,j + 1,k &) rhs_(m) = rhs_(m) - lhs__(m,3,i,j,k) * rhs(3,i,j + 1,k &) rhs_(m) = rhs_(m) - lhs__(m,4,i,j,k) * rhs(4,i,j + 1,k &) rhs_(m) = rhs_(m) - lhs__(m,5,i,j,k) * rhs(5,i,j + 1,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