pro sofie_read_summary_s3_all2,pat,iver,$ nsea,ver,hem,season,stitle,sea_num,sea_nums,nevent,nz,missing,$ orbit,event,mode,date,time,lat,lon,lst,doy,dfs,$ z,p,t,h2o,o3,ch4,zmes,pmes,tmes, $ ztop,zmax,zbot,zbot2,ice_pres,mxnlay,nlay,ztop_al,zmax_al,zbot_al, $ vice,mice,h2oi,aro,arp,aroi,icet,con,rm,dr,re,vfs,con_s,rm_s,dr_s,re_s, $ iwc,od,waves,oddv,con_od,rm_od,dr_od,re_od, vfs_od,con_s_od,rm_s_od,dr_s_od,re_s_od,$ b2,b3,b4,b8,b9,b10,c2 ;------------------------------------------------------------------------------------------------ ; Read, combine, & return SOFIE summary files (summary version "S3"), for many SOFIE PMC seasons ; File name example: sofie_summary_s3_V1.2_SH_2008-09.nc, sofie_summary_s3_V1.1_test_SH_2007-08.nc, ... ; ; ; This version fills arrays instead of using concatonation which is very slow when the arrays get big! ; ; ; Input: ; pat........path for the directory where the files are, string, e.g., '/users/mhervig/sofie/data/summary/V1.2/' ; routine will get all the "iver" files in pat ; iver.......SOFIE data version, string, e.g., 'V1.2' ; ; Output: ; nsea.......# seasons (files) obtained, scalar ; ver........version, strarr(nsea) ; hem........hemisphere ('NH' or 'SH'), strarr(nsea) ; season.....season year(s) ('e.g., '2010' or '2010-11'), strarr(nsea) ; stitle.....title of season (e.g., 'NH 2011'), strarr(nsea) ; sea_num....# assigned to each season (e.g., NH 2007 is 1), intarr(nsea) ; sea_nums...season # assigned to each event, intarr(nevent) ; nevent.....total # events obtained, scalar ; ; etc... ; ; See "sofie_read_summary_s3.pro" for variable definitions. ; ; Source: Mark Hervig, GATS ;------------------------------------------------------------------------------------------------ ;- Get the file names in "pat" spawn, 'ls ' + pat + 'sofie_summary_s3_' + iver + '_*.nc', files nsea = n_elements(files) stitle = strarr(nsea) sea_num = intarr(nsea) print,'Getting ', nsea, ' seasons' print,' ' rmx = nsea * (140 * 15.) ; # seasons * max records per season (140 days, 15 events per day) nz = 401 ;- sort files into time order psea = strarr(19) psea(0) = ['NH_2007'] psea(1) = ['SH_2007-08'] psea(2) = ['NH_2008'] psea(3) = ['SH_2008-09'] psea(4) = ['NH_2009'] psea(5) = ['SH_2009-10'] psea(6) = ['NH_2010'] psea(7) = ['SH_2010-11'] psea(8) = ['NH_2011'] psea(9) = ['SH_2011-12'] psea(10) = ['NH_2012'] psea(11) = ['SH_2012-13'] psea(12) = ['NH_2013'] psea(13) = ['SH_2013-14'] psea(14) = ['NH_2014'] psea(15) = ['SH_2014-15'] psea(16) = ['NH_2015'] psea(17) = ['SH_2015-16'] psea(18) = ['NH_2016'] ;file name e.g., '/users/mhervig/sofie/data/summary/V1.2/sofie_summary_s3_V1.2_SH_2012-13.nc' ord = intarr(nsea) for i = 0,nsea-1 do begin f = file_basename(files(i)) l = strlen(iver) j = strpos(f,iver) h = strmid(f,j+l+1,2) if (h eq 'NH') then s = strmid(f,j+l+1,7) if (h eq 'SH') then s = strmid(f,j+l+1,10) k = where(psea eq s,n) ord(i) = k ; print,f,' ',h,' ',s,' ',k endfor s = sort(ord) files = files(s) ver = strarr(nsea) hem = strarr(nsea) season = strarr(nsea) nevent = intarr(nsea) orbit = lonarr(rmx) event = lonarr(rmx) mode = lonarr(rmx) sea_nums = intarr(rmx) date = lonarr(rmx) time = fltarr(rmx) lat = fltarr(rmx) lon = fltarr(rmx) lst = fltarr(rmx) doy = fltarr(rmx) dfs = fltarr(rmx) ice_pres = intarr(rmx) nlay = intarr(rmx) ztop = fltarr(rmx) zmax = fltarr(rmx) zbot = fltarr(rmx) zbot2 = fltarr(rmx) zmes = fltarr(rmx) pmes = fltarr(rmx) tmes = fltarr(rmx) p = fltarr(nz,rmx) t = fltarr(nz,rmx) h2o = fltarr(nz,rmx) o3 = fltarr(nz,rmx) ch4 = fltarr(nz,rmx) mice = fltarr(nz,rmx) vice = fltarr(nz,rmx) h2oi = fltarr(nz,rmx) aro = fltarr(nz,rmx) arp = fltarr(nz,rmx) icet = fltarr(nz,rmx) aroi = fltarr(nz,rmx) h2ot = fltarr(nz,rmx) re = fltarr(nz,rmx) con = fltarr(nz,rmx) rm = fltarr(nz,rmx) dr = fltarr(nz,rmx) vfs = fltarr(nz,rmx) con_s = fltarr(nz,rmx) rm_s = fltarr(nz,rmx) dr_s = fltarr(nz,rmx) re_s = fltarr(nz,rmx) iwc = fltarr(rmx) con_od = fltarr(rmx) rm_od = fltarr(rmx) dr_od = fltarr(rmx) re_od = fltarr(rmx) od = fltarr(8,rmx) oddv = fltarr(rmx) vfs_od = fltarr(rmx) con_s_od = fltarr(rmx) rm_s_od = fltarr(rmx) dr_s_od = fltarr(rmx) re_s_od = fltarr(rmx) b2 = fltarr(nz,rmx) b3 = fltarr(nz,rmx) b4 = fltarr(nz,rmx) b8 = fltarr(nz,rmx) b9 = fltarr(nz,rmx) b10 = fltarr(nz,rmx) c2 = fltarr(nz,rmx) ;- Loop over files (seasons) nr = 0 for i = 0,nsea-1 do begin sea_num(i) = i+1 file = files(i) print, file sofie_read_summary_s3,file,0,$ ver1,remarks,hem1,season1,nr1,nz,missing, $ orbit1,event1,mode1,date1,time1,lat1,lon1,lst1,doy1,dfs1,los_head1, $ z,p1,t1,h2o1,o31,ch41,zmes1,pmes1,tmes1, $ ztop1,zmax1,zbot1,zbot21,ice_pres1,nlay_al1,ztop_al1,zmax_al1,zbot_al1, $ vice1,mice1,h2oi1,aro1,arp1,aroi1,icet1,con1,rm1,dr1,re1,vfs1,con_s1,rm_s1,dr_s1,re_s1, $ iwc1,od1,waves,oddv1,con_od1,rm_od1,dr_od1,re_od1, vfs_od1,con_s_od1,rm_s_od1,dr_s_od1,re_s_od1,$ ex_b21,ex_b31,ex_b41,ex_b81,ex_b91,ex_b101,ex_c21 od1 = transpose(od1) h2ot1 = h2o1 + h2oi1 stitle(i) = hem1 + ' ' + strmid(season1,2,99) i1 = nr i2 = nr + nr1 - 1 nr = nr + nr1 ;- store the variables ver(i) = ver1 hem(i) = hem1 season(i) = season1 nevent(i) = nr1 orbit(i1:i2) = orbit1 event(i1:i2) = event1 mode(i1:i2) = mode1 sea_nums(i1:i2) = intarr(nr1) + sea_num(i) date(i1:i2) = date1 time(i1:i2) = time1 lat(i1:i2) = lat1 lon(i1:i2) = lon1 lst(i1:i2) = lst1 doy(i1:i2) = doy1 dfs(i1:i2) = dfs1 ice_pres(i1:i2) = ice_pres1 nlay(i1:i2) = nlay_al1 ztop(i1:i2) = ztop1 zmax(i1:i2) = zmax1 zbot(i1:i2) = zbot1 zbot2(i1:i2) = zbot21 zmes(i1:i2) = zmes1 pmes(i1:i2) = pmes1 tmes(i1:i2) = tmes1 p(*,i1:i2) = p1 t(*,i1:i2) = t1 h2o(*,i1:i2) = h2o1 o3(*,i1:i2) = o31 ch4(*,i1:i2) = ch41 mice(*,i1:i2) = mice1 vice(*,i1:i2) = vice1 h2oi(*,i1:i2) = h2oi1 aro(*,i1:i2) = aro1 arp(*,i1:i2) = arp1 icet(*,i1:i2) = icet1 aroi(*,i1:i2) = aroi1 h2ot(*,i1:i2) = h2ot1 con(*,i1:i2) = con1 rm(*,i1:i2) = rm1 dr(*,i1:i2) = dr1 re(*,i1:i2) = re1 vfs(*,i1:i2) = vfs1 con_s(*,i1:i2) = con_s1 rm_s(*,i1:i2) = rm_s1 dr_s(*,i1:i2) = dr_s1 re_s(*,i1:i2) = re_s1 iwc(i1:i2) = iwc1 con_od(i1:i2) = con_od1 rm_od(i1:i2) = rm_od1 dr_od(i1:i2) = dr_od1 re_od(i1:i2) = re_od1 od(*,i1:i2) = od1 oddv(i1:i2) = oddv1 vfs_od(i1:i2) = vfs_od1 con_s_od(i1:i2) = con_s_od1 rm_s_od(i1:i2) = rm_s_od1 dr_s_od(i1:i2) = dr_s_od1 re_s_od(i1:i2) = re_s_od1 b2(*,i1:i2) = ex_b21 b3(*,i1:i2) = ex_b31 b4(*,i1:i2) = ex_b41 b8(*,i1:i2) = ex_b81 b9(*,i1:i2) = ex_b91 b10(*,i1:i2) = ex_b101 c2(*,i1:i2) = ex_c21 endfor ; over files ;- Trim arrays k = where(date gt 0) orbit = orbit(k) event = event(k) mode = mode(k) sea_nums = sea_nums(k) date = date(k) time = time(k) lat = lat(k) lon = lon(k) lst = lst(k) doy = doy(k) dfs = dfs(k) ice_pres = ice_pres(k) nlay = nlay(k) ztop = ztop(k) zmax = zmax(k) zbot = zbot(k) zbot2 = zbot2(k) zmes = zmes(k) pmes = pmes(k) tmes = tmes(k) p = p(*,k) t = t(*,k) h2o = h2o(*,k) o3 = o3(*,k) ch4 = ch4(*,k) mice = mice(*,k) vice = vice(*,k) h2oi = h2oi(*,k) aro = aro(*,k) arp = arp(*,k) icet = icet(*,k) aroi = aroi(*,k) h2ot = h2ot(*,k) con = con(*,k) rm = rm(*,k) dr = dr(*,k) re = re(*,k) vfs = vfs(*,k) con_s = con_s(*,k) rm_s = rm_s(*,k) dr_s = dr_s(*,k) re_s = re_s(*,k) iwc = iwc(k) con_od = con_od(k) rm_od = rm_od(k) dr_od = dr_od(k) re_od = re_od(k) od = od(*,k) oddv = oddv(k) vfs_od = vfs_od(k) con_s_od = con_s_od(k) rm_s_od = rm_s_od(k) dr_s_od = dr_s_od(k) re_s_od = re_s_od(k) b2 = b2(*,k) b3 = b3(*,k) b4 = b4(*,k) b8 = b8(*,k) b9 = b9(*,k) b10 = b10(*,k) c2 = c2(*,k) nevent = nr print,rmx,' events allowed' print,nevent,' events obtained' ;- done return end