c2--567--1---------2---------3---------4---------5---------6---------712 Subroutine lodprf(qa, q0, q, err_q, qtot, err_qtot, r, err_r, 1 res0, res, kern, nval_s, tu_a, itrc, dref) c c -- Lodprf/Loads buffer 'bufout' with retrieved profile data, c starting at location 101/N. Nath /April '02 c c -- Notes: Prior to entering this routine, all profile data need c to be pre-converted from 81 layers to 21 layers, with 4 c successive layers from the bottom combined into one layer & c 81 st layer translating into 21 st layer. The errors on layer c ozone amounts and the kernel refer only to the bottom 20 c combined layers. c c Buffer locations currently filled in this routine: 101 - 459. c c -- Input & Output Variables: c real qa(21), q0(21), q(21), err_q(20), !21 layer a-priori, first guess, and ! retrieved ozone profiles (DU), & ! estimated measurement error in the ! retrieved profile (percent) (input) 1 qtot, err_qtot, !retrieved total ozone (sum total of q) ! (DU) & estimated error in q (percent) ! (input) 2 r(15), err_r(15), !ozone mixing ratio in 15 prescribed ! levels (ppmv) & its estimated error ! (input) 3 res0(10), res(10), !initial & final residues (n-value) ! (input) 4 kern(10,20), !total scattering kernel (input) 5 nval_s(10), !single scattering n-values computed ! with the retrieved ozone (input) 6 tu_a(13) !input temperature profile in 13 Umkehr ! layers (K), arranged from top to bottom ! (input) integer itrc !number of iterations for solution ! convergence (input) real dref !reflectivity correction due to total ! ozone change (input) c ******Common Area include 'buffout.com' !holds common /bufout/, which contains the ! array 'bufo' in real*4 (output) c c -- Other Variables: c integer i, ioff,j c do i = 1,21 bufo(i + 100) = qa(i) end do do i = 1,21 bufo(i + 121) = q0(i) end do do i = 1,21 bufo(i + 142) = q(i) end do do i = 1,20 bufo(i + 163) = err_q(i) end do bufo(184) = qtot bufo(185) = err_qtot do i = 1,15 bufo(i + 185) = r(i) end do do i = 1,15 bufo(i + 200) = err_r(i) end do do i = 1,10 bufo(i + 215) = res0(i) end do do i = 1,10 bufo(i + 225) = res(i) end do do j = 1,20 ioff = (j - 1)*10 + 235 do i = 1,10 bufo(i + ioff) = kern(i,j) end do end do do i = 1,10 bufo(i + 435) = nval_s(i) end do do i = 1,13 bufo(i + 445) = tu_a(i) end do bufo(459) = itrc bufo(460) = dref c return end