[Dart-dev] DART/branches Revision: 11592

dart at ucar.edu dart at ucar.edu
Wed May 3 11:07:47 MDT 2017


hendric at ucar.edu
2017-05-03 11:07:46 -0600 (Wed, 03 May 2017)
36
changes from rma_fix_clm_restarts.




Modified: DART/branches/model_mod_changes/models/clm/model_mod.f90
===================================================================
--- DART/branches/model_mod_changes/models/clm/model_mod.f90	2017-05-03 15:04:06 UTC (rev 11591)
+++ DART/branches/model_mod_changes/models/clm/model_mod.f90	2017-05-03 17:07:46 UTC (rev 11592)
@@ -73,16 +73,22 @@
 
  use ensemble_manager_mod, only : ensemble_type, &
                                   map_pe_to_task, &
-                                  get_var_owner_index
+                                  get_var_owner_index, &
+                                  all_copies_to_all_vars, &
+                                  all_vars_to_all_copies
 
 use distributed_state_mod, only : get_state
-use state_structure_mod,   only : add_domain
+use state_structure_mod,   only : add_domain, state_structure_info,   &
+                                  get_index_start, get_index_end,     &
+                                  get_num_domains, get_num_variables, &
+                                  get_num_dims, get_dim_name,         &
+                                  get_dim_length, get_variable_name
 
 use mpi_utilities_mod, only: my_task_id
 
 use    random_seq_mod, only: random_seq_type, init_random_seq, random_gaussian
 
-use default_model_mod,     only : adv_1step, init_time, init_conditions, nc_write_model_vars
+use default_model_mod, only : adv_1step, init_time, init_conditions, nc_write_model_vars
 
 use typesizes
 use netcdf
@@ -173,12 +179,13 @@
 integer, parameter :: VT_ORIGININDX   = 5 ! ... file of origin
 integer, parameter :: VT_STATEINDX    = 6 ! ... update (state) or not
 
+integer :: domain_count = 0
+
 ! things which can/should be in the model_nml
 
 integer            :: assimilation_period_days = 0
 integer            :: assimilation_period_seconds = 60
 real(r8)           :: model_perturbation_amplitude = 0.2
-logical            :: output_state_vector = .false.
 integer            :: debug = 0   ! turn up for more and more debug messages
 character(len=32)  :: calendar = 'Gregorian'
 character(len=256) :: clm_restart_filename = 'clm_restart.nc'
@@ -225,6 +232,7 @@
    character(len=obstypelength) :: kind_string
    character(len=512) :: origin    ! the file it came from
    logical  :: update
+   integer  :: domain
 end type progvartype
 
 type(progvartype), dimension(max_state_variables) :: progvar
@@ -463,6 +471,7 @@
 character(len=obstypelength) :: var_names(max_state_variables)
 real(r8) :: var_ranges(max_state_variables,2)
 integer :: nvars, domid
+logical :: var_update(max_state_variables)
 
 if ( module_initialized ) return ! only need to do this once.
 
@@ -1074,14 +1083,16 @@
 !> @TODO FIXME ... io_filenames_nml:rpointer_file order must somehow match 
 !> - or be insensitive to - the add_domain() calls below (if nvars == 0) ...
 
-call cluster_variables(clm_restart_filename, nvars, var_names,            var_ranges)
-domid =     add_domain(clm_restart_filename, nvars, var_names, clamp_vals=var_ranges)
+call cluster_variables(clm_restart_filename, nvars, var_names, var_ranges, var_update)
+domid =     add_domain(clm_restart_filename, nvars, var_names, clamp_vals=var_ranges, update_list=var_update)
+call state_structure_info(domid)
 
-call cluster_variables(clm_history_filename, nvars, var_names,            var_ranges)
-domid =     add_domain(clm_history_filename, nvars, var_names, clamp_vals=var_ranges)
+call cluster_variables(clm_history_filename, nvars, var_names, var_ranges, var_update)
+domid =     add_domain(clm_history_filename, nvars, var_names, clamp_vals=var_ranges, update_list=var_update)
+call state_structure_info(domid)
 
-call cluster_variables(clm_vector_history_filename, nvars, var_names,            var_ranges)
-domid =     add_domain(clm_vector_history_filename, nvars, var_names, clamp_vals=var_ranges)
+call cluster_variables(clm_vector_history_filename, nvars, var_names, var_ranges, var_update)
+domid =     add_domain(clm_vector_history_filename, nvars, var_names, clamp_vals=var_ranges, update_list=var_update)
 
 end subroutine static_init_model
 
@@ -1136,20 +1147,7 @@
 integer, intent(in) :: ncid      ! netCDF file identifier
 integer, intent(in) :: domain_id
 
-integer :: nDimensions, nVariables, nAttributes, unlimitedDimID
-
 !----------------------------------------------------------------------
-! variables if we just blast out one long state vector
-!----------------------------------------------------------------------
-
-integer :: StateVarDimID   ! netCDF pointer to state variable dimension (model size)
-integer :: MemberDimID     ! netCDF pointer to dimension of ensemble    (ens_size)
-integer :: TimeDimID       ! netCDF pointer to time dimension           (unlimited)
-
-integer :: StateVarVarID   ! netCDF pointer to state variable coordinate array
-integer :: StateVarID      ! netCDF pointer to 3D [state,copy,time] array
-


More information about the Dart-dev mailing list