;Jatin: Script to get BOM ppt, tmax, and tmin data over 4 seasons for 2010, to compare later with WRF output 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/wrf/WRFUserARW.ncl" begin ;---------------------------Inputs------------------------------------------------ ;-define start dates ;BOM_ppt_path = "/scratch/partner69/shared2/BOM-GRID-ALL/NC/ppt/" ;BOM_tmax_path = "/scratch/partner69/shared2/BOM-GRID-ALL/NC/tmax/" ;BOM_tmin_path = "/scratch/partner69/shared2/BOM-GRID-ALL/NC/tmin/" BOM_ppt_path = "/group/y98/jatinkala/temp_BOM/ppt/" BOM_tmax_path = "/group/y98/jatinkala/temp_BOM/tmax/" BOM_tmin_path = "/group/y98/jatinkala/temp_BOM/tmin/" start_BOM_DJF = "2009120120091201" end_BOM_DJF = "2010022820100228" start_BOM_MAM = "2010030120100301" end_BOM_MAM = "2010053120100531" start_BOM_JJA = "2010060120100601" end_BOM_JJA = "2010083120100831" start_BOM_SON = "2010090120100901" end_BOM_SON = "2010113020101130" ;-file to save as diro = "BOM-OUT/" filo = "BOM_ppt_tmax_tmin_d01.nc" ;--------------- Get BOM data-------------------------------------------------------- ;first get list of files list_ppt_sys = "ls " + BOM_ppt_path + "*.nc" list_tmax_sys = "ls " + BOM_tmax_path + "*.nc" list_tmin_sys = "ls " + BOM_tmin_path + "*.nc" list_ppt = systemfunc(list_ppt_sys) list_tmax = systemfunc(list_tmax_sys) list_tmin = systemfunc(list_tmin_sys) delete(list_ppt_sys) delete(list_tmax_sys) delete(list_tmin_sys) ;now find index of start and end dates for the 4 seasons do i = 0,dimsizes(list_ppt)-1,1 s_DJF = isStrSubset(list_ppt(i),start_BOM_DJF) e_DJF = isStrSubset(list_ppt(i),end_BOM_DJF) s_MAM = isStrSubset(list_ppt(i),start_BOM_MAM) e_MAM = isStrSubset(list_ppt(i),end_BOM_MAM) s_JJA = isStrSubset(list_ppt(i),start_BOM_JJA) e_JJA = isStrSubset(list_ppt(i),end_BOM_JJA) s_SON = isStrSubset(list_ppt(i),start_BOM_SON) e_SON = isStrSubset(list_ppt(i),end_BOM_SON) if (s_DJF .eq.1) ind_s_DJF = i end if if (e_DJF .eq.1) ind_e_DJF = i end if if (s_MAM .eq. 1) ind_s_MAM = i end if if (e_MAM .eq. 1) ind_e_MAM = i end if if (s_JJA .eq. 1) ind_s_JJA = i end if if (e_JJA .eq. 1) ind_e_JJA = i end if if (s_SON .eq. 1) ind_s_SON = i end if if (e_SON .eq. 1) ind_e_SON = i end if end do ;print(list_ppt(ind_s_DJF)) ;print(list_ppt(ind_e_DJF)) ;print(list_ppt(ind_s_MAM)) ;print(list_ppt(ind_e_MAM)) ;print(list_ppt(ind_s_JJA)) ;print(list_ppt(ind_e_JJA)) ;print(list_ppt(ind_s_SON)) ;print(list_ppt(ind_e_SON)) delete(s_DJF) delete(e_DJF) delete(s_MAM) delete(e_MAM) delete(s_JJA) delete(e_JJA) delete(s_SON) delete(e_SON) ;get data from 4 seasons ;DJF bom_ppt_DJF = new((/(ind_e_DJF-ind_s_DJF+1),691,886/),"float") bom_tmax_DJF = new((/(ind_e_DJF-ind_s_DJF+1),691,886/),"float") bom_tmin_DJF = new((/(ind_e_DJF-ind_s_DJF+1),691,886/),"float") counter = 0 do i = ind_s_DJF,ind_e_DJF,1 file_open_ppt = addfile(list_ppt(i),"r") bom_ppt_DJF(counter,:,:) = file_open_ppt->data_ppt file_open_tmax = addfile(list_tmax(i),"r") bom_tmax_DJF(counter,:,:) = file_open_tmax->data_tmax file_open_tmin = addfile(list_tmin(i),"r") bom_tmin_DJF(counter,:,:) = file_open_tmin->data_tmin counter = counter + 1 delete(file_open_ppt) delete(file_open_tmax) delete(file_open_tmin) end do ;MAM bom_ppt_MAM = new((/(ind_e_MAM-ind_s_MAM+1),691,886/),"float") bom_tmax_MAM = new((/(ind_e_MAM-ind_s_MAM+1),691,886/),"float") bom_tmin_MAM = new((/(ind_e_MAM-ind_s_MAM+1),691,886/),"float") counter = 0 do i = ind_s_MAM,ind_e_MAM,1 file_open_ppt = addfile(list_ppt(i),"r") bom_ppt_MAM(counter,:,:) = file_open_ppt->data_ppt file_open_tmax = addfile(list_tmax(i),"r") bom_tmax_MAM(counter,:,:) = file_open_tmax->data_tmax file_open_tmin = addfile(list_tmin(i),"r") bom_tmin_MAM(counter,:,:) = file_open_tmin->data_tmin counter = counter + 1 delete(file_open_ppt) delete(file_open_tmax) delete(file_open_tmin) end do ;JJA bom_ppt_JJA = new((/(ind_e_JJA-ind_s_JJA+1),691,886/),"float") bom_tmax_JJA = new((/(ind_e_JJA-ind_s_JJA+1),691,886/),"float") bom_tmin_JJA = new((/(ind_e_JJA-ind_s_JJA+1),691,886/),"float") counter = 0 do i = ind_s_JJA,ind_e_JJA,1 file_open_ppt = addfile(list_ppt(i),"r") bom_ppt_JJA(counter,:,:) = file_open_ppt->data_ppt file_open_tmax = addfile(list_tmax(i),"r") bom_tmax_JJA(counter,:,:) = file_open_tmax->data_tmax file_open_tmin = addfile(list_tmin(i),"r") bom_tmin_JJA(counter,:,:) = file_open_tmin->data_tmin counter = counter + 1 delete(file_open_ppt) delete(file_open_tmax) delete(file_open_tmin) end do ;SON bom_ppt_SON = new((/(ind_e_SON-ind_s_SON+1),691,886/),"float") bom_tmax_SON = new((/(ind_e_SON-ind_s_SON+1),691,886/),"float") bom_tmin_SON = new((/(ind_e_SON-ind_s_SON+1),691,886/),"float") counter = 0 do i = ind_s_SON,ind_e_SON,1 file_open_ppt = addfile(list_ppt(i),"r") bom_ppt_SON(counter,:,:) = file_open_ppt->data_ppt file_open_tmax = addfile(list_tmax(i),"r") bom_tmax_SON(counter,:,:) = file_open_tmax->data_tmax file_open_tmin = addfile(list_tmin(i),"r") bom_tmin_SON(counter,:,:) = file_open_tmin->data_tmin counter = counter + 1 delete(file_open_ppt) delete(file_open_tmax) delete(file_open_tmin) end do file_open_ll = addfile(list_ppt(0),"r") bom_lat = file_open_ll->lat_ppt bom_lon = file_open_ll->lon_ppt ; now calc total ppt, and mean tmax and tmin over 4 seasons tot_bom_ppt_DJF = dim_sum_n(bom_ppt_DJF,0) tot_bom_ppt_MAM = dim_sum_n(bom_ppt_MAM,0) tot_bom_ppt_JJA = dim_sum_n(bom_ppt_JJA,0) tot_bom_ppt_SON = dim_sum_n(bom_ppt_SON,0) avg_bom_tmax_DJF = dim_avg_n(bom_tmax_DJF,0) avg_bom_tmax_MAM = dim_avg_n(bom_tmax_MAM,0) avg_bom_tmax_JJA = dim_avg_n(bom_tmax_JJA,0) avg_bom_tmax_SON = dim_avg_n(bom_tmax_SON,0) avg_bom_tmin_DJF = dim_avg_n(bom_tmin_DJF,0) avg_bom_tmin_MAM = dim_avg_n(bom_tmin_MAM,0) avg_bom_tmin_JJA = dim_avg_n(bom_tmin_JJA,0) avg_bom_tmin_SON = dim_avg_n(bom_tmin_SON,0) ;interpolate to wrf grid ;open a standard wrf output file to get wrf lat and lon file_open_wrf = addfile("/group/y98/julia/WRF-SENS/test_nnrp/WRFV3/run/wrfout_d01_2010-01-01_00:00:00.nc","r") wrf_lat2d = file_open_wrf->XLAT(0,:,:) wrf_lon2d = file_open_wrf->XLONG(0,:,:) ;flip bom array upside down size_bom_lat = dimsizes(bom_lat) tot_bom_ppt_DJF_flip = tot_bom_ppt_DJF((size_bom_lat-1):0,:) tot_bom_ppt_MAM_flip = tot_bom_ppt_MAM((size_bom_lat-1):0,:) tot_bom_ppt_JJA_flip = tot_bom_ppt_JJA((size_bom_lat-1):0,:) tot_bom_ppt_SON_flip = tot_bom_ppt_SON((size_bom_lat-1):0,:) avg_bom_tmax_DJF_flip = avg_bom_tmax_DJF((size_bom_lat-1):0,:) avg_bom_tmax_MAM_flip = avg_bom_tmax_MAM((size_bom_lat-1):0,:) avg_bom_tmax_JJA_flip = avg_bom_tmax_JJA((size_bom_lat-1):0,:) avg_bom_tmax_SON_flip = avg_bom_tmax_SON((size_bom_lat-1):0,:) avg_bom_tmin_DJF_flip = avg_bom_tmin_DJF((size_bom_lat-1):0,:) avg_bom_tmin_MAM_flip = avg_bom_tmin_MAM((size_bom_lat-1):0,:) avg_bom_tmin_JJA_flip = avg_bom_tmin_JJA((size_bom_lat-1):0,:) avg_bom_tmin_SON_flip = avg_bom_tmin_SON((size_bom_lat-1):0,:) bom_grid_ppt_DJF = rgrid2rcm(bom_lat,bom_lon,tot_bom_ppt_DJF_flip,wrf_lat2d,wrf_lon2d,0) bom_grid_ppt_MAM = rgrid2rcm(bom_lat,bom_lon,tot_bom_ppt_MAM_flip,wrf_lat2d,wrf_lon2d,0) bom_grid_ppt_JJA = rgrid2rcm(bom_lat,bom_lon,tot_bom_ppt_JJA_flip,wrf_lat2d,wrf_lon2d,0) bom_grid_ppt_SON = rgrid2rcm(bom_lat,bom_lon,tot_bom_ppt_SON_flip,wrf_lat2d,wrf_lon2d,0) bom_grid_tmax_DJF = rgrid2rcm(bom_lat,bom_lon,avg_bom_tmax_DJF_flip,wrf_lat2d,wrf_lon2d,0) bom_grid_tmax_MAM = rgrid2rcm(bom_lat,bom_lon,avg_bom_tmax_MAM_flip,wrf_lat2d,wrf_lon2d,0) bom_grid_tmax_JJA = rgrid2rcm(bom_lat,bom_lon,avg_bom_tmax_JJA_flip,wrf_lat2d,wrf_lon2d,0) bom_grid_tmax_SON = rgrid2rcm(bom_lat,bom_lon,avg_bom_tmax_SON_flip,wrf_lat2d,wrf_lon2d,0) bom_grid_tmin_DJF = rgrid2rcm(bom_lat,bom_lon,avg_bom_tmin_DJF_flip,wrf_lat2d,wrf_lon2d,0) bom_grid_tmin_MAM = rgrid2rcm(bom_lat,bom_lon,avg_bom_tmin_MAM_flip,wrf_lat2d,wrf_lon2d,0) bom_grid_tmin_JJA = rgrid2rcm(bom_lat,bom_lon,avg_bom_tmin_JJA_flip,wrf_lat2d,wrf_lon2d,0) bom_grid_tmin_SON = rgrid2rcm(bom_lat,bom_lon,avg_bom_tmin_SON_flip,wrf_lat2d,wrf_lon2d,0) ; write to an nc file system("/bin/rm -f " + diro + filo) fout = addfile(diro+filo,"c") fout->tot_bom_ppt_DJF = (/tot_bom_ppt_DJF/) fout->tot_bom_ppt_MAM = (/tot_bom_ppt_MAM/) fout->tot_bom_ppt_JJA = (/tot_bom_ppt_JJA/) fout->tot_bom_ppt_SON = (/tot_bom_ppt_SON/) fout->avg_bom_tmax_DJF = (/avg_bom_tmax_DJF/) fout->avg_bom_tmax_MAM = (/avg_bom_tmax_MAM/) fout->avg_bom_tmax_JJA = (/avg_bom_tmax_JJA/) fout->avg_bom_tmax_SON = (/avg_bom_tmax_SON/) fout->avg_bom_tmin_DJF = (/avg_bom_tmin_DJF/) fout->avg_bom_tmin_MAM = (/avg_bom_tmin_MAM/) fout->avg_bom_tmin_JJA = (/avg_bom_tmin_JJA/) fout->avg_bom_tmin_SON = (/avg_bom_tmin_SON/) fout->bom_lat = (/bom_lat/) fout->bom_lon = (/bom_lon/) fout->bom_grid_ppt_DJF = (/bom_grid_ppt_DJF/) fout->bom_grid_ppt_MAM = (/bom_grid_ppt_MAM/) fout->bom_grid_ppt_JJA = (/bom_grid_ppt_JJA/) fout->bom_grid_ppt_SON = (/bom_grid_ppt_SON/) fout->bom_grid_tmax_DJF = (/bom_grid_tmax_DJF/) fout->bom_grid_tmax_MAM = (/bom_grid_tmax_MAM/) fout->bom_grid_tmax_JJA = (/bom_grid_tmax_JJA/) fout->bom_grid_tmax_SON = (/bom_grid_tmax_SON/) fout->bom_grid_tmin_DJF = (/bom_grid_tmin_DJF/) fout->bom_grid_tmin_MAM = (/bom_grid_tmin_MAM/) fout->bom_grid_tmin_JJA = (/bom_grid_tmin_JJA/) fout->bom_grid_tmin_SON = (/bom_grid_tmin_SON/) print("Sucess finished") end