[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