[Dart-dev] DART/branches Revision: 11748

dart at ucar.edu dart at ucar.edu
Thu Jun 15 17:12:12 MDT 2017


thoar at ucar.edu
2017-06-15 17:12:11 -0600 (Thu, 15 Jun 2017)
333
pmo runs without throwing an error ... the forward operator fails, but the
rest continues.  The state vector variable names are hardcoded at this point,
and we don't know how to get the forecast 'tau' (length in hours) to add
to the date-time-group to get the model time. It is possible that we don't want
to use the last forecast.




Modified: DART/branches/coamps/models/coamps_nest/coamps_statevec_mod.f90
===================================================================
--- DART/branches/coamps/models/coamps_nest/coamps_statevec_mod.f90	2017-06-15 23:11:08 UTC (rev 11747)
+++ DART/branches/coamps/models/coamps_nest/coamps_statevec_mod.f90	2017-06-15 23:12:11 UTC (rev 11748)
@@ -359,34 +359,56 @@
 
     ! construct_domain_info
     ! -----------------
-    subroutine construct_domain_info(state, varnames, kindlist, clampvals, updatelist)
+    subroutine construct_domain_info(state, varnames, kindlist, clampvals, updatelist, nvars)
         type(state_vector), intent(in)  :: state
         character(len=*),   intent(out) :: varnames(:)
         integer,            intent(out) :: kindlist(:)
         real(r8),           intent(out) :: clampvals(:,:)
         logical,            intent(out) :: updatelist(:)
+        integer,            intent(out) :: nvars
 
         type(state_iterator) :: iterator
         type(state_variable) :: var
-        integer :: varindex
+        integer :: varindex, ivar
 
         clampvals(:,:) = MISSING_R8
 
-        varindex = 1
+        nvars = 1
         iterator = get_iterator(state)    
         do while (has_next(iterator))
 
             var = get_next(iterator)
 
-            varnames(  varindex) = get_var_name(var)
-            kindlist(  varindex) = get_var_kind(var)
-            updatelist(varindex) = gets_update( var)
-            if (is_nonnegative(var)) clampvals(varindex,1) = 0.0_r8
+!>@todo generate_flat_file_name() has format to generate full variable name
+!>@todo generate_all_flat_file_name() has format to generate full variable name
+!>@todo coamps_statevar_mod.f90 set_var_stagger() has accessor use
 
-            varindex = varindex + 1
+            varnames(  nvars) = get_var_name(var)
+            kindlist(  nvars) = get_var_kind(var)
+            updatelist(nvars) = gets_update( var)
+            if (is_nonnegative(var)) clampvals(nvars,1) = 0.0_r8
 
+            nvars = nvars + 1
+
         enddo
 
+!>@todo  dummy block to move past this ...
+        varnames(1) =  'uuwind_sig_028030_000010_1a0201x0201_2013011000_00000000_fcstfld'
+        varnames(2) =  'vvwind_sig_028030_000010_1a0201x0201_2013011000_00000000_fcstfld'
+        varnames(3) =  'slpres_msl_000000_000000_1a0201x0201_2013011000_00000000_analfld'
+        
+        kindlist(1) =  QTY_U_WIND_COMPONENT
+        kindlist(2) =  QTY_V_WIND_COMPONENT
+        kindlist(3) =  QTY_SURFACE_PRESSURE
+
+        clampvals = MISSING_R8
+        updatelist = .true.
+        nvars = 3
+
+        do ivar = 1,nvars
+           write(*,*)'variable ',ivar, ' is "'//trim(varnames(ivar))//'"'
+        enddo
+
     end subroutine construct_domain_info
 
     !------------------------------

Modified: DART/branches/coamps/models/coamps_nest/coamps_translate_mod.f90
===================================================================
--- DART/branches/coamps/models/coamps_nest/coamps_translate_mod.f90	2017-06-15 23:11:08 UTC (rev 11747)
+++ DART/branches/coamps/models/coamps_nest/coamps_translate_mod.f90	2017-06-15 23:12:11 UTC (rev 11748)
@@ -122,6 +122,10 @@
 
   public :: print_dart_diagnostics
 
+  !>@todo these are needed for model_mod to generate the hdf5 variable names
+  public :: get_coamps_filename_count
+  public :: get_coamps_filename
+
   !FIX ONLY FOR TESTING
   public :: dart_state
 
@@ -955,6 +959,25 @@
 300 format( 5(I3,","),I3 )
   end subroutine write_pickup_file
 
+
+  function get_coamps_filename_count()
+  integer :: get_coamps_filename_count
+
+     get_coamps_filename_count = total_coamps_files
+
+  end function get_coamps_filename_count
+
+
+  function get_coamps_filename(myindex)
+  integer, intent(in) :: myindex
+  character(len=64) :: get_coamps_filename


More information about the Dart-dev mailing list