[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