subroutine rdsbtbl c c*********************************************************************** c c rdsbtbl c c september, 2001 by charlie wellemeyer ssai c c purpose c read in tables for calculation of forward model quantities: c n-value, and dN/dXmsr, the set of 21 standard profiles, and c the priori ozone and temperature profiles c c method c reads parameters directly into common arrays for use by the c algorithm. Parameters have dimensionality of (6,10,21,8,4) c for the n-value tables corresponding to (spacecraft zenith, c solar zenith, profile, wavelength, and pressure) the partial c derivative tables add a dimension of 12 for the unperturbed c case followed by 11 umkehr layers 0-9 and 10, 11, and 12 c combined. The atmospheric backscatter to ground terms, sb, c have no angular dependence, so the dimensionality is reduced. c note that the nvalue tables consist of the uperturbed portion c of the input sensitivity table, hence the equivalence below. c the 21 standard profiles are read in 81 layers. c the a priori profiles are 13 (umkehr layers 12 -0) X 18 (10 c degree latitude zones from south to north) X 12 (months) X c 13 (umkehr layers 12 -0) c c variables c c arguments c none c c internal c lun_tbl i*4 logical unit for table input file c lun_dndx i*4 logical unit for dndx input file c lun_clmo i*4 logical unit for ozone climatology c lun_clmt i*4 logical unit for temperature climatology c lun_p81 i*4 logical unit for 81 layer stand profiles c dxtbl c*60 file name for dndx input file c ozclim c*60 file name for ozone climatology c tmclim c*60 file name for temperature climatology c prf81 c*60 file name for 81 layer stand profiles c ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c implicit none integer*4 lun_tbl, lun_dndx, lun_clmo, lun_clmt, lun_p81, i, j c integer n, nc, ns, nitr, nref parameter (n = 81, nc = 10, ns = 8, nitr = 8, nref = 1410) c include 'table.com' include 'dndxtbl.com' include 'climat.com' include 'prof81.com' include 'flnams.com' character*60 sbtbl, dxtbl, ozclim, tmclim, prf81 equivalence (fname(1),sbtbl),(fname(2),dxtbl), 1 (fname(3),ozclim),(fname(4),tmclim),(fname(12),prf81) c c ad equivalence for debug print c real lgssin(10,21,9,4) equivalence (lgssin,lgssi0) c character*20 hdr c c -- read in n-value tables and store in /table/ c call get_lun(lun_tbl) if (lun_tbl .lt. 0) then print*,'error in getting a logical unit number for the sbuv', 1 ' table.' stop endif c print*,'opening ',sbtbl,lun_tbl open (unit=lun_tbl,file=sbtbl,status='old',form='unformatted') read (lun_tbl) logi0, lgssi0, tti0, sb close (lun_tbl) print*,'10.0**lgssin(5,6,3,1)' print*,10.0**lgssin(5,6,3,1) print*,'10.0**lgssi0(2585)' print*,10.0**lgssi0(2585) c c -- read in dndx tables and store in /dndxtbl/ c call get_lun(lun_dndx) if (lun_dndx .lt. 0) then print*,'error in getting a logical unit number for the sbuv', 1 ' dndx table.' stop endif c print*,'opening ',dxtbl,lun_dndx open (unit=lun_dndx,file=dxtbl,status='old',form='unformatted') read (lun_dndx) dndxlogi0, dndxssi0, dndxti0, dndxsb close (lun_dndx) c c -- read in 21 standard profiles in 81 layers c call get_lun(lun_p81) if (lun_p81 .lt. 0) then print*,'error in getting a logical unit number for the 81', 1 ' layer standard profiles.' stop endif c print*,'opening ',prf81,lun_p81 open (unit=lun_p81,file=prf81,status='old',form='formatted') read (lun_p81,'(a20)') hdr read (lun_p81,'(15x,21f10.4)') sigmas do i=1,81 read (lun_p81,'(f9.6,f7.2,21f10.6)') prs81(i),tmp81(i), 1 (ozp81(i,j),j=1,21) enddo close (lun_p81) c c -- read in ozone climatology for a priori c call get_lun(lun_clmo) if (lun_clmo .lt. 0) then print*,'error in getting a logical unit number for the', 1 ' apriori ozone climatology.' stop endif c print*,'opening ',ozclim,lun_clmo open (unit=lun_clmo,file=ozclim,status='old',form='formatted') read (lun_clmo,'(13f7.3)') climoz close (lun_clmo) c c -- read in temperature climatology c call get_lun(lun_clmt) if (lun_clmt .lt. 0) then print*,'error in getting a logical unit number for the', 1 ' apriori temperature climatology.' stop endif c print*,'opening ',tmclim,lun_clmt open (unit=lun_clmt,file=tmclim,status='old',form='formatted') read (lun_clmt,'(13f7.1)') climtm close (lun_clmt) c return end