begin filename="wrfinput_d02.nc" a = addfile(filename,"r") l_obs_old=wrf_user_getvar(a,"L_OBS",0) ; dims_lobs = dimsizes(l_obs_old) printVarSummary(l_obs_old) xlat2d=wrf_user_getvar(a,"XLAT",0) xlon2d=wrf_user_getvar(a,"XLONG",0) dims3d = dimsizes(l_obs_old) l_obs_new=new((/dims3d(0),dims3d(1),dims3d(2)/),float) L_OBS=new((/dims3d(0),dims3d(1),dims3d(2)/),float) print(" dims3d(0) = " + dims3d(0)) print(" dims3d(1) = " + dims3d(1)) print(" dims3d(2) = " + dims3d(2)) ; read lightning data ;;;; ; read ascii file a_asc = (/"lobs_output_4km.txt"/) ;---Read the data in as a giant 1D array ;---Read the data in as a giant 1D array values = asciiread(a_asc,-1,"float") nvals = dimsizes(values) print("nvals = " + nvals) nx=dims3d(1) ny=dims3d(2) print("nx = " + nx) print("ny = " + ny) ;---Calculate ntime based on the number of values we read in. n_l_times = nvals - ((nvals/nx)*ny) print("n_l_times = " + n_l_times) nvars = 10 nxy = nx * ny nblk = nxy * nvars ; create variables to hold the ascii file variables. ; n_t_vars=5 time_array = new((/n_t_vars/),integer) year = new((/n_l_times,ny,nx/),integer) month = new((/n_l_times,ny,nx/),integer) day = new((/n_l_times,ny,nx/),integer) hour = new((/n_l_times,ny,nx/),integer) minute = new((/n_l_times,ny,nx/),integer) lat_a = new((/n_l_times,ny,nx/),float) lon_a = new((/n_l_times,ny,nx/),float) ii = new((/n_l_times,ny,nx/),integer) jj = new((/n_l_times,ny,nx/),integer) total_light = new((/n_l_times,ny,nx/),float) ic_cg = new((/ny,nx/),float) do it=0,n_l_times-1 nstart = it*(nblk+1)+1 nend = nstart+nblk-1 year(it,:,:) = toint(reshape(values(nstart:nend:nvars),(/ny,nx/))) month(it,:,:) = toint(reshape(values(nstart+1:nend:nvars),(/ny,nx/))) day(it,:,:) = toint(reshape(values(nstart+2:nend:nvars),(/ny,nx/))) hour(it,:,:) = toint(reshape(values(nstart+3:nend:nvars),(/ny,nx/))) minute(it,:,:) = toint(reshape(values(nstart+4:nend:nvars),(/ny,nx/))) lat_a(it,:,:) = (reshape(values(nstart+5:nend:nvars),(/ny,nx/))) lon_a(it,:,:) = (reshape(values(nstart+6:nend:nvars),(/ny,nx/))) ii(it,:,:) = toint(reshape(values(nstart+7:nend:nvars),(/ny,nx/))) jj(it,:,:) = toint(reshape(values(nstart+8:nend:nvars),(/ny,nx/))) total_light(it,:,:) = (reshape(values(nstart+9:nend:nvars),(/ny,nx/))) end do ;;;; l_obs_new = 0. do it=0,n_l_times-1 l_obs_new(it,:,:) = total_light(it,:,:) end do l_obs_new@lat2d = xlat2d ; add attributes l_obs_new@lon2d = xlon2d ; add attributes L_OBS@lat2d = xlat2d ; add attributes L_OBS@lon2d = xlon2d ; add attributes ; write new data into same file as read in f = addfile(filename,"w") f->L_OBS := l_obs_new ; f->xlat = xlat2d ; f->xlon = xlon2d ;---Close file. delete(f) end