[Dart-dev] DART/branches Revision: 11370
dart at ucar.edu
dart at ucar.edu
Fri Mar 17 15:58:10 MDT 2017
nancy at ucar.edu
2017-03-17 15:58:10 -0600 (Fri, 17 Mar 2017)
282
adding a version of the assim_tools that supports jon poterjoy's
particle filter. the code needs to be reviewed before integrating
into the default version. updated some status messages in the
standard version to try to make the log info more helpful for users.
no code changes.
Modified: DART/branches/rma_trunk/assimilation_code/modules/assimilation/assim_tools_mod.f90
===================================================================
--- DART/branches/rma_trunk/assimilation_code/modules/assimilation/assim_tools_mod.f90 2017-03-16 22:37:26 UTC (rev 11369)
+++ DART/branches/rma_trunk/assimilation_code/modules/assimilation/assim_tools_mod.f90 2017-03-17 21:58:10 UTC (rev 11370)
@@ -274,21 +274,46 @@
close_obs_caching = .false.
endif
-if (adjust_obs_impact) then
- call allocate_impact_table(obs_impact_table)
- call read_impact_table(obs_impact_filename, obs_impact_table, allow_any_impact_values)
- call error_handler(E_MSG, 'assim_tools_init: ', &
- 'Using observation impact table from file "'//trim(obs_impact_filename)//'"')
-endif
+! log what the user has selected via the namelist choices
+! E_MSG only prints from PE0 by default, but go ahead and only
+! construct the messages on PE0 as well.
+if (do_output()) then
-if (do_output()) then
- write(msgstring, '(A,F18.6)') 'The cutoff namelist value is ', cutoff
- call error_handler(E_MSG,'assim_tools_init:', msgstring)
- write(msgstring, '(A)') 'cutoff is the localization half-width parameter,'
- call error_handler(E_MSG,'assim_tools_init:', msgstring)
- write(msgstring, '(A,F18.6)') 'so the effective localization radius is ', cutoff*2.0_r8
- call error_handler(E_MSG,'assim_tools_init:', msgstring)
+ select case (filter_kind)
+ case (1)
+ msgstring = 'Ensemble Adjustment Kalman Filter (EAKF)'
+ case (2)
+ msgstring = 'Ensemble Kalman Filter (ENKF)'
+ case (3)
+ msgstring = 'Kernel filter'
+ case (4)
+ msgstring = 'observation space particle filter'
+ case (5)
+ msgstring = 'random draw from posterior'
+ case (6)
+ msgstring = 'deterministic draw from posterior with fixed kurtosis'
+ case (7)
+ msgstring = 'Boxcar'
+ case (8)
+ msgstring = 'Rank Histogram Filter'
+ case default
+ call error_handler(E_ERR, 'assim_tools_init:', 'illegal filter_kind value, valid values are 1-8', &
+ source, revision, revdate)
+ end select
+ call error_handler(E_MSG, 'assim_tools_init:', 'Selected filter type is '//trim(msgstring))
+ if (adjust_obs_impact) then
+ call allocate_impact_table(obs_impact_table)
+ call read_impact_table(obs_impact_filename, obs_impact_table, allow_any_impact_values)
+ call error_handler(E_MSG, 'assim_tools_init:', &
+ 'Using observation impact table from file "'//trim(obs_impact_filename)//'"')
+ endif
+
+ write(msgstring, '(A,F18.6)') 'The cutoff namelist value is ', cutoff
+ write(msgstring2, '(A)') 'cutoff is the localization half-width parameter,'
+ write(msgstring3, '(A,F18.6)') 'so the effective localization radius is ', cutoff*2.0_r8
+ call error_handler(E_MSG,'assim_tools_init:', msgstring, text2=msgstring2, text3=msgstring3)
+
if (has_special_cutoffs) then
call error_handler(E_MSG, '', '')
call error_handler(E_MSG,'assim_tools_init:','Observations with special localization treatment:')
@@ -310,11 +335,11 @@
if(adaptive_localization_threshold > 0) then
write(msgstring, '(A,I10,A)') 'Using adaptive localization, threshold ', &
- adaptive_localization_threshold, ' obs'
+ adaptive_localization_threshold, ' obs'
call error_handler(E_MSG,'assim_tools_init:', msgstring)
if(adaptive_cutoff_floor > 0.0_r8) then
write(msgstring, '(A,F18.6)') 'Minimum cutoff will not go below ', &
- adaptive_cutoff_floor
+ adaptive_cutoff_floor
call error_handler(E_MSG,'assim_tools_init:', 'Using adaptive localization cutoff floor.', &
text2=msgstring)
endif
@@ -332,12 +357,12 @@
if (task_count() > 1) then
if(distribute_mean) then
call error_handler(E_MSG,'assim_tools_init:', 'Distributing one copy of the ensemble mean across all tasks', &
- text2='(uses less memory per task but may run slower if doing vertical coordinate conversion,', &
- text3='controlled by namelist item "distribute_mean")')
+ text2='uses less memory per task but may run slower if doing vertical ', &
+ text3='coordinate conversion; controlled by namelist item "distribute_mean"')
else
call error_handler(E_MSG,'assim_tools_init:', 'Replicating a copy of the ensemble mean on every task', &
- text2='(uses more memory per task but may run faster if doing vertical coordinate conversion,', &
- text3='controlled by namelist item "distribute_mean")')
+ text2='(uses more memory per task but may run faster if doing vertical ', &
+ text3='coordinate conversion; controlled by namelist item "distribute_mean"')
endif
endif
endif
Added: DART/branches/rma_trunk/assimilation_code/modules/assimilation/assim_tools_mod.pf.f90
===================================================================
--- DART/branches/rma_trunk/assimilation_code/modules/assimilation/assim_tools_mod.pf.f90 (rev 0)
+++ DART/branches/rma_trunk/assimilation_code/modules/assimilation/assim_tools_mod.pf.f90 2017-03-17 21:58:10 UTC (rev 11370)
@@ -0,0 +1,3920 @@
More information about the Dart-dev
mailing list