; pro to read MLS data, apply the averaging kernal. flat_0=5 & flat_1=30 ;flat_0=-20 & flat_1=20 ;flat_0=0 & flat_1=30 if(flat_0 ge 0) then $ slat_0='N'+string(flat_0,format='(i2.2)') if(flat_0 lt 0) then $ slat_0='S'+string(abs(flat_0),format='(i2.2)') if(flat_1 ge 0) then $ slat_1='N'+string(flat_1,format='(i2.2)') if(flat_1 lt 0) then $ slat_1='S'+string(abs(flat_1),format='(i2.2)') dlon=2. nlon_g=fix(round(360./dlon)) flon_g=findgen(nlon_g)*2+1 iyear=2008 & syear=string(iyear,format='(i4)') nday_yr=365 & if(iyear mod 4 eq 0) then nday_yr=366 ssp='IWC' & ssp_l=strlowcase(ssp) nday_step=5 nstep=ceil(float(nday_yr)/nday_step) fdoy_g=findgen(nstep)*5+nday_step/2. fdat_avg_g=fltarr(nlon_g) & fdat_avg_g(*)=0. icnt_avg_g=lonarr(nlon_g) & icnt_avg_g(*)=0L fdat_g=fltarr(nlon_g,nstep) & fdat_g(*,*)=0. icnt_g=lonarr(nlon_g,nstep) & icnt_g(*,*)=0L fdat_anm_g=fltarr(nlon_g,nstep) & fdat_anm_g(*,*)=0. sdir='/science/aura/MLS/data/L2/V04/'+ssp_l+'/'+syear+'/' ; readin AK values stext=' text' f6=fltarr(6) ;stop sday0='001' read_mls_v04_doy, syear+sday0, ssp, fdat_in, fpres, flon_in, flat_in, ftime nlev=n_elements(fpres) fpres_sel=100 aa=min(fpres-fpres_sel,/absolute,ilev_sel) spres_sel=string(fpres_sel,format='(i3)')+'hPa' ;stop print, fpres_sel, fpres(ilev_sel) fmissing=-999 for iday=1, nday_yr do begin sday=string(iday,format='(i3.3)') print, sday read_mls_v04_doy, syear+sday, ssp, fdat_in, fpres, flon_in, flat_in, ftime aa=where(flon_in lt 0 and flon_in gt -200) flon_in(aa)=flon_in(aa)+360 ;stop print, max(fdat_in), max(flat_in), max(flon_in),$ max(fpres), max(ftime) nprof=n_elements(flon_in) ; apply averaging kernel. fdat_ak=fdat_in ;& fdat_ak(*,*)=0. for iprof=0, nprof-1 do begin ; for ilev1=0,nlev-1 do begin ; for ilev2=0,nlev-1 do begin ; if (fdat_in(ilev2,iprof) gt fmissing+10) $ ; then begin ; fdat_ak(ilev1,iprof)=fdat_ak(ilev1,iprof)+ $ ; fdat_in(ilev2,iprof)*fak(ilev2,ilev1) ; endif ; endfor ; endfor if(flat_in(iprof) ge flat_0 and flat_in(iprof) le flat_1) then begin aa=min(flon_in(iprof)-flon_g,/absolute,ilon) istep=(iday-1)/nday_step icnt_g(ilon,istep)=icnt_g(ilon,istep)+1 fdat_g(ilon,istep)=fdat_g(ilon,istep)+ $ fdat_ak(ilev_sel,iprof) icnt_avg_g(ilon)=icnt_avg_g(ilon)+1 fdat_avg_g(ilon)=fdat_avg_g(ilon)+ $ fdat_ak(ilev_sel,iprof) endif endfor endfor ;stop for ilon=0, nlon_g-1 do begin if(icnt_avg_g(ilon) gt 0) then begin fdat_avg_g(ilon)=fdat_avg_g(ilon)/icnt_avg_g(ilon) endif for istep=0, nstep-1 do begin if(icnt_g(ilon,istep) gt 0) then begin fdat_g(ilon,istep)=fdat_g(ilon,istep)/icnt_g(ilon,istep) fdat_anm_g(ilon,istep)=fdat_g(ilon,istep)-fdat_avg_g(ilon) endif endfor endfor savfile='MLS_'+ssp+'_'+slat_0+'_'+slat_1+'_'+spres_sel+'_'+syear+'.sav' save, /variables, filename=savfile end