begin infile = "text_file_Damjan_Jelic" ; change input file name nheadL = 4 ; number of header lines delim = "," data = asciiread(infile,-1,"string") nfields = str_fields_count(data(1),delim) vnames = data(1) ; 2nd row as varbiable names units = data(2) ; 3rd row for units varb_names = new(nfields,string) unit_names = new(nfields,string) varb_names1 = varb_names unit_names1 = unit_names ;........ to seperate variable names ................ do i=0,nfields-1 varb_names(i) = str_get_field(vnames,i+1,delim) unit_names(i) = str_get_field(units,i+1,delim) end do delete([/vnames,units/]) ;........ to get rid of double quotes that are attached with strings dq = str_get_dq() varb_names = str_insert(varb_names, dq+",", 1) unit_names = str_insert(unit_names, dq+",", 1) do m=0,nfields-1 stl = strlen(varb_names(m)) unl = strlen(unit_names(m)) varb_names(m) = str_insert(varb_names(m),","+dq,stl-1) unit_names(m) = str_insert(unit_names(m),","+dq,unl-1) end do do m=0,nfields-1 st_tmp = str_split_csv(varb_names, ",", 0) un_tmp = str_split_csv(unit_names, ",", 0) varb_names1(m) = st_tmp(m,1) unit_names1(m) = un_tmp(m,1) end do delete([/varb_names,unit_names,st_tmp,un_tmp,stl,unl/]) ;.............................. get time and data values ................... TIMESTAMP = str_get_field(data(nheadL::),ind(varb_names1.eq."TIMESTAMP")+1,delim) ; TIMESTAMP = str_get_field(data(nheadL::),1,delim) dims=dimsizes(TIMESTAMP) dtime_map = (/1,4,1,2,1,2,1,2,1,2,1,2/) dt = str_split_by_length(TIMESTAMP, dtime_map) ; print(dims) time=new((/dims/),double) time(:) = cd_inv_calendar( tointeger(dt(:,1)), tointeger(dt(:,3)), tointeger(dt(:,5)), tointeger(dt(:,7)), tointeger(dt(:,9)), tointeger(dt(:,11)), "seconds since 2017-06-01 00:00:00", 0 ) time!0 = "time" time@long_name = "time" time@units = "seconds since 2017-06-01 00:00:00" print(time) ;........ write file ................................ outfile = "test_file.nc" if(isfilepresent(outfile))then system("rm test_file.nc") end if a = addfile("test_file.nc","c") do n=0,nfields-2 tmp_varb = stringtofloat(str_get_field(data(nheadL::),n+2,delim)) ; +2 to start from RECORD column tmp_varb!0 = "time" tmp_varb&time = time tmp_varb@units = unit_names1(n+1) a->$varb_names1(n+1)$= tmp_varb delete(tmp_varb) end do end