[Dart-dev] [5755] DART/branches/development/models/clm/model_mod.f90: Now uses the assimilation_period_[days, seconds] and has the capability for

nancy at ucar.edu nancy at ucar.edu
Sun Jun 10 20:07:09 MDT 2012


Revision: 5755
Author:   thoar
Date:     2012-06-10 20:07:08 -0600 (Sun, 10 Jun 2012)
Log Message:
-----------
Now uses the assimilation_period_[days,seconds] and has the capability for
a much larger set of state variables. Since CLM has so many state variables,
20 was just not enough.

Modified Paths:
--------------
    DART/branches/development/models/clm/model_mod.f90

-------------- next part --------------
Modified: DART/branches/development/models/clm/model_mod.f90
===================================================================
--- DART/branches/development/models/clm/model_mod.f90	2012-06-10 22:12:30 UTC (rev 5754)
+++ DART/branches/development/models/clm/model_mod.f90	2012-06-11 02:07:08 UTC (rev 5755)
@@ -138,7 +138,7 @@
 !------------------------------------------------------------------
 
 integer :: nfields
-integer, parameter :: max_state_variables = 20
+integer, parameter :: max_state_variables = 40
 integer, parameter :: num_state_table_columns = 2
 character(len=obstypelength) :: variable_table(max_state_variables, num_state_table_columns)
 
@@ -1644,6 +1644,8 @@
 integer :: VarID, ncNdims, dimlen
 integer :: ncid
 character(len=256) :: myerrorstring
+integer :: fixme = 7000   ! intentionally declaring here so value
+                          ! persists across calls.
 
 integer, parameter :: LAKE = 3
 
@@ -1749,7 +1751,9 @@
       ! MISSING values so we can test the block that aborts the update
       ! if some or any of the ensemble members have a missing value.
 
- !    data_1d_array(7000) = MISSING_R8
+ !    write(*,*)trim(progvar(ivar)%varname),'replacing ',data_1d_array(fixme),'with',MISSING_R8, 'element',fixme
+ !    data_1d_array(fixme) = MISSING_R8
+ !    fixme = fixme + 1
 
       do i = 1, ni
          state_vector(indx) = data_1d_array(i)
@@ -2106,13 +2110,11 @@
 
 integer  :: ivar, index1, indexN, indexi, counter
 integer  :: gridloni,gridlatj
-real(r8), dimension(3) :: loc
 real(r8) :: loc_lat, loc_lon
 real(r8) :: total, total_area
 real(r8), dimension(1) :: loninds,latinds
+real(r8), dimension(3) :: loc
 
-real(r8), allocatable, dimension(:) :: contributors, depths, myarea
-
 if ( .not. module_initialized ) call static_init_model
 
 ! Let's assume failure.  Set return val to missing, then the code can
@@ -3145,13 +3147,14 @@
 
 function set_model_time_step()
 !------------------------------------------------------------------
-! Since DART does not advance CLM, this is unimportant.
+! This defines the window used for assimilation.
+! all observations +/- half this timestep are assimilated.
 
 type(time_type) :: set_model_time_step
 
 if ( .not. module_initialized ) call static_init_model
 
-set_model_time_step = set_time(0, 1) ! (seconds, days)
+set_model_time_step = set_time(assimilation_period_seconds, assimilation_period_days)
 
 end function set_model_time_step
 
@@ -3193,9 +3196,8 @@
 integer,                          intent(out) :: ngood
 character(len=*), dimension(:,:), intent(out) :: table
 
-integer :: nrows, ncols, i, j, VarID, numdims
-integer, dimension(NF90_MAX_VAR_DIMS) :: dimIDs
-character(len=NF90_MAX_NAME) :: varname, dimname
+integer :: nrows, ncols, i, VarID
+character(len=NF90_MAX_NAME) :: varname
 character(len=NF90_MAX_NAME) :: dartstr
 
 if ( .not. module_initialized ) call static_init_model


More information about the Dart-dev mailing list