; load libraries, twice for good measure load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/wind_rose.ncl" ;load "/home/torn/ncl/wrf_map_info.ncl" ;load "/home/torn/ncl/array_stat.ncl" ;load "/home/torn/ncl/image_conv.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl" ;load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/wind_rose.ncl" ;load "/home/torn/ncl/wrf_map_info.ncl" ;load "/home/torn/ncl/array_stat.ncl" ;load "/home/torn/ncl/image_conv.ncl" ;load "wrf_dart_util.ncl" begin meta = asciiread("station.txt", -1, "string") print(meta) file1 = "dayone.nc" file2 = "daytwo.nc" ; load data for the two files f1 = addfile(file1,"r") f2 = addfile(file2,"r") stations1 = f1->station tair1 = f1->tair precip1 = f1->precip solar1 = f1->srad size1=dimsizes(stations1) stations2 = f2->station tair2 = f2->tair precip2 = f2->precip solar2 = f2->srad size2=dimsizes(stations2) ;find data for only that station names1 = new((/size1(0)/),"string") do i=0,size1(0)-1,1 names1(i)=chartostring(stations1(i,0))+chartostring(stations1(i,1))+chartostring(stations1(i,2))+chartostring(stations1(i,3)) end do day1temp = (tair1(ind(names1.eq.meta(2)),:)) day1precip=(precip1(ind(names1.eq.meta(2)),:)) day1solar = (solar1(ind(names1.eq.meta(2)),:)) names2 = new((/size2(0)/),"string") do i=0,size2(0)-1,1 names2(i)=chartostring(stations2(i,0))+chartostring(stations2(i,1))+chartostring(stations2(i,2))+chartostring(stations2(i,3)) end do day2temp = (tair2(ind(names2.eq.meta(2)),:)) day2precip=(precip2(ind(names2.eq.meta(2)),:)) day2solar = (solar2(ind(names2.eq.meta(2)),:)) ;combine and create one day alltemps = array_append_record(day1temp,day2temp,0) allsolar = array_append_record(day1solar,day2solar,0) tempday = alltemps(60:348) solarday = allsolar(60:348) tempday@_FillValue = -996 realday = tempday(ind(.not.ismissing(tempday))) solarday@_FillValue = -996 realday = realday*9/5 + 32 if all(ismissing(solarday)) totalsolar = -996 else realsolarday = solarday(ind(.not.ismissing(solarday))) realsolarday=where(realsolarday.lt.0,0,realsolarday) totalsolar = (sum(realsolarday))*(289/dimsizes(realsolarday)) ; guess what incomplete solar data would look like end if if ismissing(day2precip(0)) precip = ((day2precip(1)+day2precip(60))-day1precip(60)) ; the day 2 0 ob has the day 1 total precip = precip*0.0393700787 else precip = ((day2precip(0)+day2precip(60))-day1precip(60)) ; the day 2 0 ob has the day 1 total precip = precip*0.0393700787 end if precip = where(precip.lt.0,0,precip) ; in case of negative values. ;check that most of day is present if dimsizes(realday).ge.260 info = (/max(realday),min(realday),precip(0),totalsolar(0)/) else info = (/-996,-996,-996,-996/) end if ;write out data asciiwrite(meta(2)+meta(1)+meta(0)+".txt",info) end