;*************************************************************************** ; read RHB surface flux and related. format: NASA-Ames ; PSD provides this code to make it easier to read the data. We do ; not support NCL and advise those with questions to read NCL webpages ; and/or contact their support staff. ; ; This code reads the RHB Sfc Flux data into arrays and plots a variable. ; See http://www.esrl.noaa.gov/psd/enso/rapid_response/data_pub/ ;*************************************************************************** ; written by CAS 9/29/2017. V1.0 ;*************************************************************************** begin ; --- Read Data ----------------------------------------; filein="psd-sfcflux_ronaldhbrown_ship_20160216_cor1.na" titledate = filein cnlvl=systemfunc("/usr/local/bin/wc "+ filein) nlvl=stringtointeger(cnlvl) head1 = readAsciiHead(filein,1) ; there are two header lines strs = str_split(head1, " ") nheads = stringtointeger(strs(0)) print(nheads+" ") print(nlvl+" obs+"+nheads) skiprows=nheads+1 ncol = 44 nlvl=nlvl-skiprows print(nlvl+" lines of obs") head2=readAsciiHead(filein,12) missingx= str_split(head2(11), " ") missing=stringtointeger(missingx) TestData = readAsciiTable (filein , (/ncol/), "double",skiprows) TestData@_FillValue=9999. TestData@missing_value=9999. time = TestData (:,0) ; time [UTCday) year = TestData (:,1) ; year year@missing_value=missing(0) month = TestData (:,2) ; month month@missing_value=missing(1) day = TestData (:,3) ; day day@missing_value=missing(2) hour = TestData (:,4) ; hour hour@missing_value=missing(3) minute = TestData (:,5) ; minutes minute@missing_value=missing(4) seconds = TestData (:,6) ; seconds seconds@missing_value=missing(5) lat = TestData (:,7) ; latitude (deg) lat@missing_value=missing(6) lon = TestData (:,8) ; longitude (deg) lon@missing_value=missing(7) prs = TestData (:,9) ; pres prs@missing_value=missing(8) SCV = TestData (:,10) ; cloud area fraction SCV@missing_value=missing(9) LWDclr = TestData (:,11) ; downwelling_longwave_flux_in_air_assuming_clear_sky (W m-2) LWDclr@missing_value=missing(10) LWD = TestData (:,12) ; longwave flux clear sky LWD@missing_value=missing(11) LWU = TestData (:,13) ; surface_upwelling_longwave_flux_in_air (W m-2) LWU@missing_value=missing(12) SWD = TestData (:,14) ; downwelling_shortwave_flux_in_air (W m-2) SWD@missing_value=missing(13) SWU = TestData (:,15) ; surface_upwelling_shortwave_flux_in_air (W m-2) SWU@missing_value=missing(14) hlb = TestData (:,16) ; surface_upward_latent_heat_flux (W m-2) hlb@missing_value=missing(15) hsb = TestData (:,17) ; surface_upward_sensible_heat_flux (W m-2) hsb@missing_value=missing(16) hbb = TestData (:,18) ; Bulk buoyancy flux into ocean (W m-2) hbb@missing_value=missing(17) usr = TestData (:,19) ; Friction velocity (m s-1) usr@missing_value=missing(18) tau = TestData (:,20) ; Wind stress (N m-2) tau@missing_value=missing(19) tsr = TestData (:,21) ; Temperature scaling parameter (K) tsr@missing_value=missing(20) qsr = TestData (:,22) ; Specific humidity scaling parameter (g kg-2) qsr@missing_value=missing(21) z0t = TestData (:,23) ; Thermal roughness length (m) z0t@missing_value=missing(22) z0q = TestData (:,24) ; Moisture roughness length (m) z0q@missing_value=missing(23) Cd = TestData (:,25) ; Wind stress transfer coefficient at height=zu () Cd@missing_value=missing(24) Ch = TestData (:,26) ; Sensible heat transfer coefficient at height=zu () Ch@missing_value=missing(25) Ce = TestData (:,27) ; Latent heat transfer coefficient at height=zu () Ce@missing_value=missing(26) L = TestData (:,28) ; Obukhov length scale (m) L@missing_value=missing(27) zet = TestData (:,29) ; Monin-Obukhov stability parameter () zet@missing_value=missing(28) U10 = TestData (:,30) ; wind_speed at height=10m (m s-1) U10@missing_value=missing(29) T10 = TestData (:,31) ; air_temperature at height=10m (C) T10@missing_value=missing(30) Q10 = TestData (:,32) ; specific_humidity at height=10m (g kg-1) Q10@missing_value=missing(31) RH10 = TestData (:,33) ; relative_humidity at height=10m (%) RH10@missing_value=missing(32) UN = TestData (:,34) ; Neutral value of wind speed at height=zu (m s-1) UN@missing_value=missing(33) UN10 = TestData (:,35) ; Neutral value of wind speed at height=10m (m s-1) UN10@missing_value=missing(34) CdN_10 = TestData (:,36) ; Neutral value of drag coefficient at height=10m () CdN_10@missing_value=missing(35) ChN_10 = TestData (:,37) ; Neutral value of Stanton number at height=10m () ChN_10@missing_value=missing(36) CeN_10 = TestData (:,38) ; Neutral value of Dalton number at height=10m () CeN_10@missing_value=missing(37) SST = TestData (:,39) ; sea_surface_temperature (C) SST@missing_value=missing(38) dter = TestData (:,40) ; Cool-skin temperature depression (C) dter@missing_value=missing(39) Qs = TestData (:,41) ; Surface saturation specific humidity (g kg-1) Qs@missing_value=missing(40) Le = TestData (:,42) ; Latent heat of vaporization (J kg-1) Le@missing_value=missing(41) Evap = TestData (:,43) ; Evaporation rate (mm h-1) Evap@missing_value=missing(42) i=0 ;************************* ; create sample plot ;************************* res=True wks = gsn_open_wks ("png", "rhb_sfcflux") res@tiMainString = "Time(UTC day) vs prs(w m-2) RHB 02/16/16-03/17/16" ; add title plot = gsn_csm_xy (wks,time,prs,res) ; create plot max_prs = max(prs) min_prs = min(prs) print(max_prs+" max prs") print(min_prs+" min prs") end