;load fortran WRAPIT subroutine>> external EX "./test.so" ;************************************************ begin model="CanCM3" mon=03 mon1=01 mon2=28 mon3=31 ;************************************************ ;&& loop through the days and hours reg=(/"10","1","2","3","4","5","6","7","8","9"/) print(reg(0)) do yr = 1981,2013-1 do i = 0,9 indat=(yr*100)+(mon*1) indate=(yr*10000)+(mon*100)+(mon1*1) o=((yr+1)*10000)+((mon-1)*100)+(mon2) o1=((yr+1)*10000)+((mon-1)*100)+(mon3) in=reg(i) print(indat+" ") print(indate+" ") print(o+" ") print(o1+" ") print(in+" ") ;prlr_day_CanCM3_198103_r10i1p1_19810301-19820228.nc4 a = addfile("/center1/w/dz/BUIcomp/CanCM3/lwe_precipitation_rate/prlr_day_CanCM3_"+indat+"_r"+in+"i1p1_"+indate+"-"+o+".nc4","r") print(a) pre = a->prlr(:,15:40,180:255) pre=pre*86400000 ;convert m/sec to mm/day printVarSummary(pre) ;print out structure/basic info of the data r=a->time printVarSummary(r) ;print out structure/basic info of the data print(r) ;print(r) date = cd_calendar(r, -3) print(date) printVarSummary(date) ;p ;;;Once confirm this with peter-------------------- ii1 = str_match_ind(date,"040100") print(ii1) ii2 = str_match_ind(date,"093000") print(ii2) print(date(ii1)) print(date(ii2)) ;;;;;;;;;;;;;; precp=pre(ii1:ii2,:,:) printVarSummary(precp) ;print out structure/basic info of the data dsize=dimsizes(precp) tsize=dsize(0) print(tsize) delete(a) a = addfile("/center1/w/dz/BUIcomp/CanCM3/air_temperature/tas_day_CanCM3_"+indat+"_r"+in+"i1p1_"+indate+"-"+o+".nc4","r") t2 = a->tas(ii1:ii2,15:40,180:255) t2=t2-273.15 ;convert K to C printVarSummary(t2) ;print out structure/basic info of the data delete(a) a=addfile("/center1/w/dz/BUIcomp/CanCM3/specifichumidity/hus10_day_CanCM3_"+indat+"_r"+in+"i1p1_"+indate+"-"+o1+".nc4","r") print(a) q2 = a->hus(ii1:ii2,15:40,180:255) printVarSummary(q2) ;print out structure/basic info of the data delete(a) a = addfile("/center1/w/dz/BUIcomp/CanCM3/airpressure@sealevel/psl_day_CanCM3_"+indat+"_r"+in+"i1p1_"+indate+"-"+o+".nc4","r") press = a->psl(ii1:ii2,15:40,180:255) press=press/100.0 ;convert Pa to hPa printVarSummary(press) ;print out structure/basic info of the data delete(a) a = addfile("/center1/w/dz/BUIcomp/CanCM3/eastwardwind/uas_day_CanCM3_"+indat+"_r"+in+"i1p1_"+indate+"-"+o+".nc4","r") ua = a->uas(ii1:ii2,15:40,180:255) printVarSummary(ua) ;print out structure/basic info of the data delete(a) a = addfile("/center1/w/dz/BUIcomp/CanCM3/northwardwind/vas_day_CanCM3_"+indat+"_r"+in+"i1p1_"+indate+"-"+o+".nc4","r") va = a->vas(ii1:ii2,15:40,180:255) printVarSummary(va) ;print out structure/basic info of the data delete(a) ;;;;m/s to km/h w2=(sqrt(ua^2+va^2))*3.6 copy_VarCoords(q2,w2) printVarSummary(w2) ;print out structure/basic info of the data ;print("done reading data") ;************************************************ ;Compute BUI using fortran ;************************************************ bui=new((/183,26,76/),float) fm=new((/183,26,76/),float) isi=new((/183,26,76/),float) fwi=new((/183,26,76/),float) dmcc=new((/183,26,76/),float) dcc=new((/183,26,76/),float) ;;;;********************************************** bui(0,:,:)=t2(0,:,:) ;transfer lat/lon coordinates for later... fm(0,:,:)=t2(0,:,:) ;transfer lat/lon coordinates for later... isi(0,:,:)=t2(0,:,:) ;transfer lat/lon coordinates for later... fwi(0,:,:)=t2(0,:,:) ;transfer lat/lon coordinates for later... dmcc(0,:,:)=t2(0,:,:) ;transfer lat/lon coordinates for later... dcc(0,:,:)=t2(0,:,:) ;transfer lat/lon coordinates for later... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; delete_VarAtts(bui, -1) ;clean up invalid attributes... delete_VarAtts(fm, -1) ;clean up invalid attributes... delete_VarAtts(isi, -1) ;clean up invalid attributes... delete_VarAtts(fwi, -1) ;clean up invalid attributes... delete_VarAtts(dmcc, -1) ;clean up invalid attributes... delete_VarAtts(dcc, -1) ;clean up invalid attributes... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; delete(bui&time) delete(fm&time) delete(isi&time) delete(fwi&time) delete(dmcc&time) delete(dcc&time) ;run BUI code :::::::::::::> EX:: firecodes(t2,precp,q2,press,w2,tsize,bui,fm,isi,fwi,dmcc,dcc) return