[Dart-dev] DART/branches Revision: 11189

dart at ucar.edu dart at ucar.edu
Fri Mar 3 15:46:45 MST 2017


mizzi at ucar.edu
2017-03-03 15:46:45 -0700 (Fri, 03 Mar 2017)
36
fix model_mod.f90 add_emiss switch.



Modified: DART/branches/mizzi/models/wrf_chem/model_mod.f90
===================================================================
--- DART/branches/mizzi/models/wrf_chem/model_mod.f90	2017-03-03 22:16:35 UTC (rev 11188)
+++ DART/branches/mizzi/models/wrf_chem/model_mod.f90	2017-03-03 22:46:45 UTC (rev 11189)
@@ -190,7 +190,7 @@
 character(len=129) :: wrf_state_bounds(num_bounds_table_columns,max_state_variables) = 'NULL'
 !
 ! LXL/APM +++
-character(len=129) :: conc_state_variables(num_state_table_columns,max_state_variables) = 'NULL'
+character(len=129) :: conv_state_variables(num_state_table_columns,max_state_variables) = 'NULL'
 character(len=129) :: emiss_chemi_variables(num_state_table_columns,max_state_variables) = 'NULL'
 character(len=129) :: emiss_firechemi_variables(num_state_table_columns,max_state_variables) = 'NULL'
 ! LXL/APM ---
@@ -246,7 +246,7 @@
                      center_search_half_length, center_spline_grid_scale, &
                      circulation_pres_level, circulation_radius, polar, &
                      periodic_x, periodic_y, scm, &
-                     conc_state_variables, emiss_chemi_variables, &
+                     conv_state_variables, emiss_chemi_variables, &
                      emiss_firechemi_variables,add_emiss, &
                      use_varloc,use_indep_chem_assim
 ! LXL/APM ---
@@ -338,7 +338,7 @@
    integer :: type_e_o3, type_e_co, type_e_no, type_ebu_in_co, type_ebu_in_no, &
               type_ebu_in_oc, type_ebu_in_bc, &
               type_ebu_in_c2h4, type_ebu_in_ch2o, type_ebu_in_ch3oh       
-   integer :: number_of_conc_variables, number_of_emiss_chemi_variables, &
+   integer :: number_of_conv_variables, number_of_emiss_chemi_variables, &
               number_of_emiss_firechemi_variables
 ! APM/AFAJ/LXL --
 
@@ -393,10 +393,16 @@
 
 character (len=1)     :: idom
 logical, parameter    :: debug = .false.
-integer               :: ind, i, j, k, id, dart_index
+integer               :: ind, ind_str,ind_end, i, j, k, id, dart_index
 integer               :: my_index
 integer               :: var_element_list(max_state_variables)
+integer               :: var_element_list_conv(max_state_variables)
+integer               :: var_element_list_chemi(max_state_variables)
+integer               :: var_element_list_firechemi(max_state_variables)
 logical               :: var_update_list(max_state_variables)
+logical               :: var_update_list_conv(max_state_variables)
+logical               :: var_update_list_chemi(max_state_variables)
+logical               :: var_update_list_firechemi(max_state_variables)
 !
 
 character(len=256) :: wrf_filename, chem_filename, fire_filename
@@ -451,6 +457,10 @@
 
 num_obs_kinds = get_num_raw_obs_kinds()
 allocate(in_state_vector(num_obs_kinds))
+
+
+
+
 call fill_dart_kinds_table(wrf_state_variables, in_state_vector)
 
 
@@ -599,26 +609,53 @@
 !-------------------------------------------------------
 !
 ! LXL/APM +++
-! get the number of conc/emiss variables wanted in this domain's state
+! get the number of conv/emiss variables wanted in this domain's state
+      wrf%dom(id)%number_of_conv_variables = get_number_of_wrf_variables(id,conv_state_variables,var_element_list_conv, var_update_list_conv)
+!
    if ( add_emiss ) then
-      wrf%dom(id)%number_of_conc_variables = get_number_of_wrf_variables(id,conc_state_variables,var_element_list, var_update_list)
+      wrf%dom(id)%number_of_emiss_chemi_variables = get_number_of_wrf_variables(id,emiss_chemi_variables,var_element_list_chemi, var_update_list_chemi)
 !
-      wrf%dom(id)%number_of_emiss_chemi_variables = get_number_of_wrf_variables(id,emiss_chemi_variables,var_element_list, var_update_list)
-!
-      wrf%dom(id)%number_of_emiss_firechemi_variables = get_number_of_wrf_variables(id,emiss_firechemi_variables,var_element_list, var_update_list)
+      wrf%dom(id)%number_of_emiss_firechemi_variables = get_number_of_wrf_variables(id,emiss_firechemi_variables,var_element_list_firechemi, var_update_list_firechemi)
    endif
 ! LXL/APM ---
 !
 ! get the number of wrf variables wanted in this domain's state (must follow mods because var_element_list is needed and overwritten with each call)
-   wrf%dom(id)%number_of_wrf_variables = get_number_of_wrf_variables(id,wrf_state_variables,var_element_list, var_update_list)
+!   wrf%dom(id)%number_of_wrf_variables = get_number_of_wrf_variables(id,wrf_state_variables,var_element_list, var_update_list)
 !
 ! LXL/APM +++
    if ( add_emiss ) then
-      if(debug) write(*,*) ' number of wrf variables is',wrf%dom(id)%number_of_wrf_variables
-      if(debug) write(*,*) ' number of conc variables is',wrf%dom(id)%number_of_conc_variables
+!      if(debug) write(*,*) ' number of wrf variables is',wrf%dom(id)%number_of_wrf_variables
+      if(debug) write(*,*) ' number of conv variables is',wrf%dom(id)%number_of_conv_variables
       if(debug) write(*,*) ' number of emiss chemi variables is',wrf%dom(id)%number_of_emiss_chemi_variables
       if(debug) write(*,*) ' number of emiss firechemi variables is',wrf%dom(id)%number_of_emiss_firechemi_variables
    endif
+!
+  if ( add_emiss ) then
+      wrf%dom(id)%number_of_wrf_variables=wrf%dom(id)%number_of_conv_variables + &
+      wrf%dom(id)%number_of_emiss_chemi_variables + wrf%dom(id)%number_of_emiss_firechemi_variables
+      do ind=1,wrf%dom(id)%number_of_wrf_variables
+         if(ind .ge. 1 .and. ind .le. wrf%dom(id)%number_of_conv_variables) then
+            var_element_list(ind)=var_element_list_conv(ind)
+            var_update_list(ind)=var_update_list_conv(ind)
+         elseif (ind .ge. wrf%dom(id)%number_of_conv_variables+1 .and. ind .le. & 


More information about the Dart-dev mailing list