SUBROUTINE radhigh(sza_v, az_v, sat_v, rs_v, outrad, outtcl, & nout, success) c c PROCEDURE NAME: radhigh c PROCEDURE TYPE: fortran subroutine c VERSION DATE: 27.VI.97 c c PURPOSE: c Use interpolation of the high-radiance table to generate a set c of (cloud optical thickness, radiance) pairs for subsequent use c in determining cloud optical thickness from the radiance. c c CALLING PARAMETERS: c Name Type i/o units Description c -------- ---- --- ----- -------------- c sza_v R8 i deg Solar zenith angle c az_v R8 i deg Solar-FOV-satellite azimuth angle c sat_v R8 i deg Satellite zenith angle c rs_v R8 i frac Surface reflectivity c outrad R8 o I/F radiances at reflectivity wavelength c outtcl R8 o corresponding cloud optical thicknesses c nout I4 o Number of elements in outrad & outtcl c success L o Successful completion flag c c c EXTERNAL ROUTINES REQUIRED: c lagrangeco determine appropriate degree and coefficients c for Lagrange interpolation. c c NOTES & CAVEATS: c c REVISION HISTORY: c 27.VI.97 Documentation added (eac). c c============================================================================ IMPLICIT NONE INTEGER*4 nsza_p, naz_p, nsat_p, ntcl_p, nrs_p PARAMETER(nsza_p=10, naz_p=7, nsat_p=9, ntcl_p=6, nrs_p=5) c----------------------------------------------------------------------- c Calling parameters c REAL*8 sza_v, az_v, sat_v, rs_v REAL*8 outrad(0:ntcl_h-1), outtcl(0:ntcl_h-1) INTEGER*4 nout LOGICAL success c----------------------------------------------------------------------- c Common blocks c INTEGER*4 nsza_h, naz_h, nsat_h, ntcl_h, nrs_h REAL*8 sza_h(0:nsza_p-1), az_h(0:naz_p-1), sat_h(0:nsat_p-1), & tcl_h(0:ntcl_p-1), rs_h(0:nrs_p-1), & rad_h(0:nsza_p-1, 0:naz_p-1, 0:nsat_p-1, 0:ntcl_p-1, 0:nrs_p-1) COMMON /radhighcom/ sza_h, az_h, sat_h, tcl_h, rs_h, rad_h, & nsza_h, naz_h, nsat_h, ntcl_h, nrs_h c----------------------------------------------------------------------- c Local variables c REAL*8 szacoef(0:3), azcoef(0:3), satcoef(0:3), rscoef(0:3) INTEGER*4 sza_0, szadeg, szain INTEGER*4 az_0, azdeg, azin INTEGER*4 sat_0, satdeg, satin INTEGER*4 rs_0, rsdeg, rsin REAL*8 sum INTEGER*4 itcl, isza, iaz, isat, irs d write(6,*)'> radhigh' nout= ntcl_h CALL lagrangeco(sza_v,sza_h,nsza_h,sza_0,szadeg,szacoef,szain) CALL lagrangeco(az_v, az_h, naz_h, az_0, azdeg, azcoef, azin) CALL lagrangeco(sat_v,sat_h,nsat_h,sat_0,satdeg,satcoef,satin) CALL lagrangeco(rs_v,rs_h,nrs_h,rs_0,rsdeg,rscoef,rsin) DO itcl=0, ntcl_h-1 sum=0.d0 DO isza= 0, szadeg DO iaz= 0, azdeg DO isat= 0, satdeg DO irs= 0, rsdeg sum= sum + & ( & szacoef(isza)*azcoef(iaz)*satcoef(isat)*rscoef(irs) & ) * & ( & rad_h(isza+sza_0, iaz+az_0, isat+sat_0, itcl, irs+rs_0) & ) END DO END DO END DO END DO outrad(itcl)= sum outtcl(itcl)= tcl_h(itcl) END DO d write(6,*)outrad success=.TRUE. d write(6,*)'< radhigh' RETURN END