[Dart-dev] DART/branches Revision: 12295

dart at ucar.edu dart at ucar.edu
Tue Jan 9 09:32:31 MST 2018


mizzi at ucar.edu
2018-01-09 09:32:31 -0700 (Tue, 09 Jan 2018)
23
Update obs converters




Modified: DART/branches/mizzi/observations/IASI_CO/iasi_ascii_to_obs.f90
===================================================================
--- DART/branches/mizzi/observations/IASI_CO/iasi_ascii_to_obs.f90	2018-01-09 16:31:34 UTC (rev 12294)
+++ DART/branches/mizzi/observations/IASI_CO/iasi_ascii_to_obs.f90	2018-01-09 16:32:31 UTC (rev 12295)
@@ -142,7 +142,7 @@
 real                            :: bin_beg, bin_end
 real                            :: sec, lat, lon, nlevels
 real                            :: pi ,rad2deg, re, wt, corr_err, fac, fac_obs_error
-real                            :: ln_10, xg_sec_avg
+real                            :: ln_10, xg_sec_avg, co_log_max, co_log_min, co_min
 real                            :: irot, nlvls_fix
 real*8, dimension(1000)         :: unif
 real*8, dimension(num_qc)       :: co_qc
@@ -543,10 +543,18 @@
         enddo
 !
 ! Calculate errors for NO ROT RET case
+        co_min=.01
         do j=1,nlvls
 ! (APM: IS THIS CORRECT?)
 !           ret_err(j)=sqrt(ret_cov(j,j)))
-           ret_err(j)=log10(sqrt(raw_cov(j,j)))
+!           ret_err(j)=log10(sqrt(raw_cov(j,j)))
+           co_log_max=log10(ret_x_r(j)+sqrt(raw_cov(j,j)))
+           if(ret_x_r(j)-sqrt(raw_cov(j,j)) .le. 0.) then
+              ret_err(j)=co_log_max-log10(ret_x_r(j)) 
+           else
+              co_log_min=log10(ret_x_r(j)-sqrt(raw_cov(j,j)))
+              ret_err(j)=min(log10(ret_x_r(j))-co_log_min, co_log_max-log10(ret_x_r(j))) 
+           endif
         enddo
 !
 ! Calculate superobs

Modified: DART/branches/mizzi/observations/IASI_CO/native_to_ascii/iasi_extract_no_transform_UA.pro
===================================================================
--- DART/branches/mizzi/observations/IASI_CO/native_to_ascii/iasi_extract_no_transform_UA.pro	2018-01-09 16:31:34 UTC (rev 12294)
+++ DART/branches/mizzi/observations/IASI_CO/native_to_ascii/iasi_extract_no_transform_UA.pro	2018-01-09 16:32:31 UTC (rev 12295)
@@ -330,14 +330,6 @@
 ; DEGREES OF FREEDOM FOR SIGNAL:
    dfs = dofs[k]
 ;
-   if debug eq 1 then begin
-      print, 'DFS: ',dfs, dofs_threshold_low, dofs_threshold_hi
-      print, 'ZAD: ',sza[k], sza_day
-      print, 'LAT: ',lat[k], lat_edge_1, lat_edge_2
-      print, 'SEC: ',obs_time[k], bin_beg_sec, bin_end_sec
-      print, ' '
-   endif
-;
 ; APM: at this point we have full averaging kernal
 ; APM: this is pre-DART QA/QC and may nedd to be revised to get more
 ; obs to DART
@@ -348,7 +340,20 @@
    min=float(fix(obs_time[k]/100)-hr*100)
    scc=float(obs_time[k]-hr*10000-min*100)
    tod_sec=hr*60*60+min*60+scc   
-;   print, 'IDL lon, lat ', lon[k],lat[k]
+;
+   if debug eq 1 then begin
+      print, 'obs_time ',obs_time[k]
+      print, 'hr-mn-sc ',hr,min,scc
+      print, 'DFS: ',dfs, dofs_threshold_low, dofs_threshold_hi
+      print, 'ZAN: ',sza[k], sza_day
+      print, 'LAT: ',lat[k], day_lat_edge_1, day_lat_edge_2
+      print, 'LAT: ',lat[k], nit_lat_edge_1, nit_lat_edge_2
+      print, 'SEC: ',obs_sec[k], bin_beg_sec, bin_end_sec
+      print, 'SEC: ',tod_sec, bin_beg_sec, bin_end_sec
+      print, 'LAT: ',lat[k], lat_min, lat_max
+      print, 'LON: ',lon[k], lon_min, lon_max
+      print, ' '
+   endif
    if( $
 ;      ( dfs ge dofs_threshold_low ) && ( dfs le dofs_threshold_hi ) && $
       ((( sza[k] lt sza_day ) && ( lat[k] gt day_lat_edge_1 ) && ( lat[k] lt day_lat_edge_2 )) || $

Modified: DART/branches/mizzi/observations/IASI_O3/iasi_ascii_to_obs.f90
===================================================================
--- DART/branches/mizzi/observations/IASI_O3/iasi_ascii_to_obs.f90	2018-01-09 16:31:34 UTC (rev 12294)
+++ DART/branches/mizzi/observations/IASI_O3/iasi_ascii_to_obs.f90	2018-01-09 16:32:31 UTC (rev 12295)
@@ -141,7 +141,7 @@
   real                            :: bin_beg, bin_end
   real                            :: sec, lat, lon, dummy, nlevels
   real                            :: pi ,rad2deg, re, wt, corr_err, fac, fac_obs_error
-  real                            :: ln_10, xg_sec_avg
+  real                            :: ln_10, xg_sec_avg, o3_log_max, o3_log_min, o3_min
   real                            :: ias_psf, irot, nlvls_fix
   real*8, dimension(1000)         :: unif
   real*8, dimension(num_qc)       :: o3_qc
@@ -587,10 +587,18 @@
         enddo
 !
 ! Calculate errors for NO ROT RET case
+        o3_min=.01
         do j=1,nlvls
 ! (APM: IS THIS CORRECT?)
 !           ret_err(j)=sqrt(ret_cov(j,j)))
-           ret_err(j)=log10(sqrt(raw_cov(j,j)))
+!           ret_err(j)=log10(sqrt(raw_cov(j,j)))
+           o3_log_max=log10(ret_x_r(j)+sqrt(raw_cov(j,j)))
+           if(ret_x_r(j)-sqrt(raw_cov(j,j)) .le. 0.) then


More information about the Dart-dev mailing list