[Dart-dev] DART/branches Revision: 12005
dart at ucar.edu
dart at ucar.edu
Wed Oct 18 15:35:22 MDT 2017
mizzi at ucar.edu
2017-10-18 15:35:19 -0600 (Wed, 18 Oct 2017)
171
Update my branch of WRF-Chem/DART to include working IASI O3 forward operator and modify other retrieval profile forward operators' model interpolation near the surface.
Modified: DART/branches/mizzi/models/wrf_chem/WRF_DART_utilities/wrf_dart_obs_preprocess.f90
===================================================================
--- DART/branches/mizzi/models/wrf_chem/WRF_DART_utilities/wrf_dart_obs_preprocess.f90 2017-10-17 23:41:44 UTC (rev 12004)
+++ DART/branches/mizzi/models/wrf_chem/WRF_DART_utilities/wrf_dart_obs_preprocess.f90 2017-10-18 21:35:19 UTC (rev 12005)
@@ -42,6 +42,7 @@
MOPITT_CO_RETRIEVAL, &
IASI_CO_RETRIEVAL, &
IASI_O3_RETRIEVAL, &
+ OMI_NO2_COLUMN, &
AIRNOW_CO, AIRNOW_O3, &
PANDA_CO, PANDA_O3, PANDA_PM25
! APM/JB ---
@@ -72,6 +73,7 @@
mopitt_co_extra = 'obs_seq.mopitt_co', &
iasi_co_extra = 'obs_seq.iasi_co', &
iasi_o3_extra = 'obs_seq.iasi_o3', &
+ omi_no2_extra = 'obs_seq.omi_no2', &
airnow_co_extra = 'obs_seq.airnow_co', &
airnow_o3_extra = 'obs_seq.airnow_o3', &
panda_co_extra = 'obs_seq.panda_co', &
@@ -130,6 +132,11 @@
real(r8) :: iasi_o3_horiz_int = 100.0_r8 ! horizontal interval for super-ob
real(r8) :: iasi_o3_pres_int = 2500.0_r8 ! pressure interval for super-ob
logical :: overwrite_ncep_iasi_o3_qc = .false. ! true to overwrite NCEP QC (see instructions)
+! OMI NO2 specific parameters
+logical :: superob_omi_no2 = .false. ! super-ob sat wind data
+real(r8) :: omi_no2_horiz_int = 100.0_r8 ! horizontal interval for super-ob
+real(r8) :: omi_no2_pres_int = 2500.0_r8 ! pressure interval for super-ob
+logical :: overwrite_ncep_omi_no2_qc = .false. ! true to overwrite NCEP QC (see instructions)
! AIRNOW CO specific parameters
logical :: superob_airnow_co = .false. ! super-ob sat wind data
real(r8) :: airnow_co_horiz_int = 100.0_r8 ! horizontal interval for super-ob
@@ -174,6 +181,7 @@
superob_mopitt_co, mopitt_co_pres_int, mopitt_co_extra, mopitt_co_horiz_int, &
superob_iasi_co, iasi_co_pres_int, iasi_co_extra, iasi_co_horiz_int, &
superob_iasi_o3, iasi_o3_pres_int, iasi_o3_extra, iasi_o3_horiz_int, &
+ superob_omi_no2, omi_no2_pres_int, omi_no2_extra, omi_no2_horiz_int, &
superob_airnow_co, airnow_co_pres_int, airnow_co_extra, airnow_co_horiz_int, &
superob_airnow_o3, airnow_o3_pres_int, airnow_o3_extra, airnow_o3_horiz_int, &
superob_panda_co, panda_co_pres_int, panda_co_extra, panda_co_horiz_int, &
@@ -198,7 +206,7 @@
seq_prof, seq_tc, seq_gpsro, seq_other, &
! APM/JB +++
seq_modis_aod, seq_mopitt_co, seq_iasi_co, seq_iasi_o3, &
- seq_airnow_co, seq_airnow_o3, &
+ seq_omi_no2, seq_airnow_co, seq_airnow_o3, &
seq_panda_co, seq_panda_o3, seq_panda_pm25
! APM/JB ---
@@ -277,6 +285,7 @@
call create_new_obs_seq(num_copies, num_qc, max_num_obs, seq_mopitt_co)
call create_new_obs_seq(num_copies, num_qc, max_num_obs, seq_iasi_co)
call create_new_obs_seq(num_copies, num_qc, max_num_obs, seq_iasi_o3)
+call create_new_obs_seq(num_copies, num_qc, max_num_obs, seq_omi_no2)
call create_new_obs_seq(num_copies, num_qc, max_num_obs, seq_airnow_co)
call create_new_obs_seq(num_copies, num_qc, max_num_obs, seq_airnow_o3)
call create_new_obs_seq(num_copies, num_qc, max_num_obs, seq_panda_co)
@@ -291,7 +300,7 @@
include_sig_data, obs_pressure_top, obs_height_top, sfc_elevation_check, &
sfc_elevation_tol, overwrite_ncep_sfc_qc, overwrite_ncep_satwnd_qc, &
overwrite_obs_time, anal_time, seq_rawin, seq_sfc, seq_acars, seq_satwnd, &
-seq_tc, seq_gpsro, seq_modis_aod, seq_mopitt_co, seq_iasi_co, seq_iasi_o3, &
+seq_tc, seq_gpsro, seq_modis_aod, seq_mopitt_co, seq_iasi_co, seq_iasi_o3, seq_omi_no2, &
seq_airnow_co, seq_airnow_o3, seq_panda_co, seq_panda_o3, seq_panda_pm25, seq_other)
! APM/JB ---
@@ -372,6 +381,11 @@
obs_pressure_top, obs_height_top, sfc_elevation_check, sfc_elevation_tol, &
overwrite_obs_time, anal_time)
!
+call add_supplimental_obs(omi_no2_extra, seq_omi_no2, max_obs_seq, &
+OMI_NO2_COLUMN, nx, ny, obs_boundary, include_sig_data, &
+obs_pressure_top, obs_height_top, sfc_elevation_check, sfc_elevation_tol, &
+overwrite_obs_time, anal_time)
+!
call add_supplimental_obs(airnow_co_extra, seq_airnow_co, max_obs_seq, &
AIRNOW_CO, nx, ny, obs_boundary, include_sig_data, &
obs_pressure_top, obs_height_top, sfc_elevation_check, sfc_elevation_tol, &
@@ -423,12 +437,15 @@
! super-ob IASI_O3 data
! if ( superob_iasi_o3 ) call superob_iasi_o3_data(seq_iasi_o3, anal_time, &
! iasi_o3_horiz_int, iasi_o3_pres_int)
+! super-ob OMI NO2 data
+! if ( superob_omi_no2 ) call superob_omi_no2_data(seq_omi_no2, anal_time, &
+! omi_no2_horiz_int, omi_no2_pres_int)
! super-ob AIRNOW_CO data
! if ( superob_airnow_co ) call superob_airnow_co_data(seq_airnow_co, anal_time, &
! airnow_co_horiz_int, airnow_co_pres_int)
! super-ob AIRNOW_O3 data
! if ( superob_airnow_o3 ) call superob_airnow_o3_data(seq_airnow_o3, anal_time, &
-! iasi_o3_horiz_int, iasi_o3_pres_int)
+! airnow_o3_horiz_int, airnow_o3_pres_int)
! super-ob PANDA_CO data
! if ( superob_panda_co ) call superob_panda_co_data(seq_panda_co, anal_time, &
! panda_co_horiz_int, panda_co_pres_int)
@@ -447,6 +464,7 @@
! APM/JB +++
get_num_obs(seq_modis_aod) + get_num_obs(seq_mopitt_co) + &
get_num_obs(seq_iasi_co) + get_num_obs(seq_iasi_o3) + &
+ get_num_obs(seq_omi_no2) + &
get_num_obs(seq_airnow_co) + get_num_obs(seq_airnow_o3) + &
More information about the Dart-dev
mailing list