subroutine calc_sim_exo( fovdat, fovpos, # numfov, sldc, el_sol, numsol, exo_lockdown, # sim_exo ) implicit none c save c c $Log: calc_sim_exo.f,v $ c Revision 1.1 2007/06/26 19:48:59 deaver c Initial Checkin c c Revision 1.3 2000/01/18 21:23:17 deaver c When called with numfov=0 this routine returns the SLDC value c at the lock down and does not perform an FOV convolution c c Revision 1.2 1997/08/22 18:04:11 deaver c Changed sim_exo to a real*8 variable c c Revision 1.1 1994/02/22 14:25:20 deaver c Initial revision c c c description c This routine calculates the simulated exo atmospheric V signal c for a channel given its FOV data, its SLDC data, and its lockdown c position. ITRAN is currently not used, but it was input just in c case in the future V and DV data are to be calculated seperately.. c Currently only V data is used ie., the V scans, V fov Data and c V lockdown position. c c externals c liner Linear interpolation routine c c constants C INCLUDE 'hal_src:haloretlib_parameters.inc' !VAX c INCLUDE 'haloretlib_parameters.inc' !IBM include 'f77parameters.inc' c input integer*4 & numfov , !Number of points in FOVDAT & numsol !Number of points in SLDC and EL_SOL. real*8 & fovdat(*), !The FOV data for this channel & fovpos(*), & sldc(*), !The Solar Limb Darkening Curve for this channel. & el_sol(*), !The angular position for each SLDC point ! relative to the top edge of the Sun (radians) & exo_lockdown !The exo lockdown position relative to the top ! edge of the Sun (radians) ! output real*8 & sim_exo !The value of the FOV convolved the the SLDC ! at the exo_lockdown position (unitless) ! local integer*4 & i !Loop variable real*8 & solar(MAXFOV) , !SLDC interpolated to each FOVPOS & fovpos_sun(MAXFOV) cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c if(numfov .gt. maxfov) then write(*,*) "number of fov points exceed maxfov ", numfov, maxfov stop "error in calc_sim_exo" endif if(numfov .eq. 0) then call linerd(el_sol, sldc, exo_lockdown, solar, numsol, 1) sim_exo=solar(1) else do i=1,numfov fovpos_sun(i) = fovpos(i) + exo_lockdown enddo c print*, numfov, numsol call linerd(el_sol, sldc, fovpos_sun, solar, numsol, numfov) c sim_exo = 0.00D+00 do 200 i = 1, numfov sim_exo = sim_exo + solar(I) * fovdat(I) 200 continue endif c return end