subroutine recos_qL(q_im1, q_i, q_ip1, & r_im1, r_i, r_ip1, & rqL_iph ) c------------------------------------------------------------ c Calculates the reconstructed variables c from the LEFT using a minmod slope limiter. c Note that the input coordinates are the coordinates c of the cell centres (x_(i-1), x_(i) and x_(i+1)), c the output is at the cell boundary x_(i+1/2). c------------------------------------------------------------ implicit none character*8 cdnm parameter ( cdnm = 'recos_qL' ) logical ltrace parameter ( ltrace = .false. ) real*8 q_im1, q_i, q_ip1 real*8 r_im1, r_i, r_ip1 real*8 rqL_iph real*8 s_iph, s_imh real*8 sigma_i real*8 minmod c============================================================ c============================================================ if ( ltrace ) then write(0,*) cdnm,': q_im1=', q_im1 write(0,*) cdnm,': q_i=', q_i write(0,*) cdnm,': q_ip1=', q_ip1 write(0,*) cdnm,': ' write(0,*) cdnm,': r_im1=', r_im1 write(0,*) cdnm,': r_i=', r_i write(0,*) cdnm,': r_ip1=', r_ip1 write(0,*) cdnm,': ' endif s_iph = (q_ip1 - q_i) / (r_ip1 - r_i) s_imh = (q_i - q_im1) / (r_i - r_im1) sigma_i = minmod(s_imh, s_iph) rqL_iph = q_i + sigma_i * 0.5d0 * (r_ip1 - r_i) if ( ltrace ) then write(0,*) cdnm,': rqL_iph=', rqL_iph endif return end