[Dart-dev] DART/branches Revision: 12911
dart at ucar.edu
dart at ucar.edu
Wed Oct 24 11:37:42 MDT 2018
thoar at ucar.edu
2018-10-24 11:37:42 -0600 (Wed, 24 Oct 2018)
194
Now uses the DART_params.csh for variable specification.
Tested with perfect_model_obs and sourcemods for SIF.
Using DART_params.csh means the perfect_model.csh script is no longer a template.
Modified: DART/branches/cesm_clm/assimilation_code/programs/perfect_model_obs/perfect_model_obs.f90
===================================================================
--- DART/branches/cesm_clm/assimilation_code/programs/perfect_model_obs/perfect_model_obs.f90 2018-10-24 16:40:07 UTC (rev 12910)
+++ DART/branches/cesm_clm/assimilation_code/programs/perfect_model_obs/perfect_model_obs.f90 2018-10-24 17:37:42 UTC (rev 12911)
@@ -177,7 +177,7 @@
type(file_info_type) :: file_info_true
character(len=256), allocatable :: input_filelist(:), output_filelist(:), true_state_filelist(:)
-integer :: nfilesin, nfilesout
+integer :: nfilesin, nfilesout, ipos
! Initialize all modules used that require it
call perfect_initialize_modules_used()
@@ -550,9 +550,15 @@
! If observation is not being evaluated or assimilated, skip it
! Ends up setting a 1000 qc field so observation is not used again.
if( qc_ens_handle%vars(i, 1) == 0 ) then
- obs_value(1) = random_gaussian(random_seq, true_obs(1), &
- sqrt(get_obs_def_error_variance(obs_def)))
+ ! TJH Emergency ... want soil moisture obs to be positive
+ POSITIVE : do ipos = 1,100
+ obs_value(1) = random_gaussian(random_seq, true_obs(1), &
+ sqrt(get_obs_def_error_variance(obs_def)))
+ if (obs_value(1) > 0.0_r8) exit POSITIVE
+ obs_value(1) = true_obs(1) ! in case it goes past 100 cycles
+ enddo POSITIVE
+
! FIX ME SPINT: if the foward operater passed can we directly set the
! qc status?
@@ -569,7 +575,7 @@
endif
- ! true obs is fowrard op
+ ! true obs is forward op
! obs value is forward op plus noise
call set_obs_values(obs, obs_value, 1)
call set_obs_values(obs, true_obs, 2)
Modified: DART/branches/cesm_clm/models/clm/model_mod.f90
===================================================================
--- DART/branches/cesm_clm/models/clm/model_mod.f90 2018-10-24 16:40:07 UTC (rev 12910)
+++ DART/branches/cesm_clm/models/clm/model_mod.f90 2018-10-24 17:37:42 UTC (rev 12911)
@@ -72,6 +72,7 @@
QTY_DEAD_STEM_CARBON, &
QTY_LEAF_AREA_INDEX, &
QTY_WATER_TABLE_DEPTH, &
+ QTY_STEM_CARBON, &
QTY_GEOPOTENTIAL_HEIGHT, &
QTY_VEGETATION_TEMPERATURE, &
QTY_FRAC_PHOTO_AVAIL_RADIATION, &
@@ -80,6 +81,8 @@
QTY_FPAR_SHADED_DIRECT, &
QTY_FPAR_SHADED_DIFFUSE, &
QTY_SOLAR_INDUCED_FLUORESCENCE, &
+ QTY_LATENT_HEAT_FLUX, &
+ QTY_LEAF_NITROGEN, &
QTY_LANDMASK, &
get_index_for_quantity, &
get_name_for_quantity
@@ -97,7 +100,7 @@
get_num_domains, get_num_variables, &
get_num_dims, get_dim_name, &
get_dim_length, get_variable_name, &
- do_io_update
+ do_io_update, get_variable_size
use obs_def_utilities_mod, only : track_status
@@ -708,13 +711,12 @@
! call state_structure_info(dom_vector_history)
!---------------------------------------------------------------
-! Create the metadata arrays that are the same shape as the state vector.
-! The metadata arrays will provide the ability to determine what grid cell is the parent
-! of the state vector index in question ... as well as the actual surface area.
-! This MUST stride through the state vector the same way the state vector is filled.
+!> Create the metadata arrays that are the same shape as the state vector.
+!> The metadata arrays will provide the ability to determine what grid cell is the parent
+!> of the state vector index in question ... as well as the actual surface area.
+!> This MUST stride through the state vector the same way the state vector is filled.
+!>@todo remove these huge allocations
-!@todo BAD BAD BAD
-
allocate(lonixy(model_size), latjxy(model_size), levels(model_size), landarea(model_size))
! Initialize all levels to surface. If there is a level, we will explicitly specify it.
@@ -1573,9 +1575,7 @@
!------------------------------------------------------------------
-!> Reads the current time and state variables from a clm restart
-!> file and packs them into a dart state vector. Except none of
-!> that is true for the rma version.
+!>
subroutine mark_missing_r8_values(clm_file, restart_time)
More information about the Dart-dev
mailing list