subroutine ld_radlow(wvl, success) c c procedure name: ld_radlow c procedure type: fortran subroutine c version date: 27.vi.97 c c purpose: c loads the lookup table requred to obtain the radiance from the c putative cloud optical thickness (or vice versa). c c the lookup table is stored in common block /radlowcom/. c c note that to construct the radiance at a location (for arbitrary rs), c the formula is c c i = rad(isza_l, iaz, isat, itcl, ipt) + c c rs * tprm(isat,itcl,ipt) * flxd(isza_l,itcl,ipt) c ---------------------------------------------- c 1 - rs * sbar(itcl, ipt) c c calling parameters: c name type i/o units description c -------- ---- --- ----- -------------- c wvl i4 i nm reflectivity channel wavelength c success l o flags successful completion. c c external routines required: c get_lun c unget_lun c c notes & caveats: c c revision history: c 19.vii.98 introduced use of get_lun/unget_lun, rather than static use of lun (eac) c 27.vi.97 documentation added (eac). c c============================================================================ implicit none integer*4 nsza_p, naz_p, nsat_p, ntcl_p, npt_p parameter(nsza_p=11, naz_p=7, nsat_p=9, ntcl_p=5, npt_p=2) c -- calling parameters integer*4 wvl logical success c -- common blocks integer*4 nsza_l, naz_l, nsat_l, ntcl_l, npt_l real*8 sza_l(0:nsza_p-1), az_l(0:naz_p-1), sat_l(0:nsat_p-1), & tcl_l(0:ntcl_p-1), pt_l(0:npt_p-1), & rad_l(0:nsza_p-1, 0:naz_p-1, 0:nsat_p-1, 0:ntcl_p-1, 0:npt_p-1), & tprm_l(0:nsat_p-1, 0:ntcl_p-1, 0:npt_p-1), & flxd_l(0:nsza_p-1, 0:ntcl_p-1, 0:npt_p-1), & sbar_l(0:ntcl_p-1, 0:npt_p-1) common /radlowcom/ sza_l, az_l, sat_l, tcl_l, pt_l, & rad_l, flxd_l, tprm_l, sbar_l, & nsza_l, naz_l, nsat_l, ntcl_l, npt_l save /radlowcom/ c local variables integer*2 nsza_i, naz_i, nsat_i, ntcl_i, npt_i real*4 sza_i(0:nsza_p-1), az_i(0:naz_p-1), sat_i(0:nsat_p-1), & tcl_i(0:ntcl_p-1), pt_i(0:npt_p-1), & rad_i(0:nsza_p-1, 0:naz_p-1, 0:nsat_p-1, 0:ntcl_p-1, 0:npt_p-1), & tprm_i(0:nsat_p-1, 0:ntcl_p-1, 0:npt_p-1), & flxd_i(0:nsza_p-1, 0:ntcl_p-1, 0:npt_p-1), & sbar_i(0:ntcl_p-1, 0:npt_p-1) integer*4 lun integer*4 i, isat, isza, itcl, iaz, ipt character*13 filename /'radlow000.bin'/ write(filename(7:9),'(i3.3)') wvl call get_lun(lun) open(unit=lun,file=filename, form='unformatted', status='old', $ err=900) read(lun) nsza_i if (nsza_i .ne. nsza_p) goto 901 read(lun) sza_i read(lun) naz_i if (naz_i .ne. naz_p) goto 902 read(lun) az_i read(lun) nsat_i if (nsat_i .ne. nsat_p) goto 903 read(lun) sat_i read(lun) ntcl_i if (ntcl_i .ne. ntcl_p) goto 904 read(lun) tcl_i read(lun) npt_i if (npt_i .ne. npt_p) goto 905 read(lun) pt_i read(lun) rad_i read(lun) tprm_i read(lun) flxd_i read(lun) sbar_i close(lun) call unget_lun(lun) nsza_l= nsza_i do i= 0, nsza_l-1 sza_l(i)= sza_i(i) enddo naz_l= naz_i do i= 0, naz_l-1 az_l(i)= az_i(i) en ddo nsat_l= nsat_i do i= 0, nsat_l-1 sat_l(i)= sat_i(i) enddo ntcl_l= ntcl_i do i= 0, ntcl_l-1 tcl_l(i)= tcl_i(i) end do npt_l= npt_i do i= 0, npt_l-1 pt_l(i)= pt_i(i) enddo do isza=0, nsza_p-1 do iaz= 0, naz_p-1 do isat= 0, nsat_p-1 do itcl= 0, ntcl_p-1 do ipt= 0, npt_p-1 rad_l(isza, iaz, isat, itcl, ipt)= & rad_i(isza, iaz, isat, itcl, ipt) enddo enddo enddo enddo enddo do isat= 0, nsat_p-1 do itcl= 0, ntcl_p-1 do ipt= 0, npt_p-1 tprm_l(isat, itcl, ipt)= tprm_i(isat, itcl, ipt) enddo enddo enddo do isza= 0, nsza_p-1 do itcl= 0, ntcl_p-1 do ipt= 0, npt_p-1 flxd_l(isza, itcl, ipt)= flxd_i(isza, itcl, ipt) enddo enddo enddo do itcl= 0, ntcl_p-1 do ipt= 0, npt_p-1 sbar_l(itcl, ipt)= sbar_i(itcl, ipt) enddo enddo success=.true. return 900 continue write(6,90) filename goto 999 901 continue write(6,91) filename, 'sza', nsza_p, nsza_i goto 999 902 continue write(6,91) filename, 'az', naz_p, naz_i goto 999 903 continue write(6,91) filename, 'sat', nsat_p, nsat_i goto 999 904 continue write(6,91) filename, 'tcl', ntcl_p, ntcl_i goto 999 905 continue write(6,91) filename, 'pt', npt_p, npt_i goto 999 999 continue success=.false. return 90 format(' !!! ld_radlow !!! could not open the file ',a20) 91 format(' !!! ld_radlow !!! encountered unexpected value in ', & ' file ',a20/ & t20,'number of values for ',a4,' : expected=',i3,', found=', & i3) end