[Dart-dev] DART/branches Revision: 12257
dart at ucar.edu
dart at ucar.edu
Wed Jan 3 11:04:25 MST 2018
thoar at ucar.edu
2018-01-03 11:04:25 -0700 (Wed, 03 Jan 2018)
463
Incorporating changes recommended by the code review.
Renamed model_check_mod.f90 to model_check_utilities_mod.f90,
more flexible handling of the vertical coordinate string in
the find_closest_gridpoint() routines.
The state_structure_mod: domain_type derived variable has
a name change for one of the components - unique_dim_IDs is
now original_dim_IDs. It is only used in the state_structure_info() function
to report on the dimension IDs in the netCDF file.
Modified: DART/branches/mmc/assimilation_code/modules/io/state_structure_mod.f90
===================================================================
--- DART/branches/mmc/assimilation_code/modules/io/state_structure_mod.f90 2018-01-03 18:02:27 UTC (rev 12256)
+++ DART/branches/mmc/assimilation_code/modules/io/state_structure_mod.f90 2018-01-03 18:04:25 UTC (rev 12257)
@@ -223,7 +223,7 @@
integer :: num_unique_dims
character(len=NF90_MAX_NAME), allocatable :: unique_dim_names(:)
integer, allocatable :: unique_dim_length(:)
- integer, allocatable :: unique_dim_IDs(:)
+ integer, allocatable :: original_dim_IDs(:)
integer :: unlimDimId = -1 ! initialize to no unlimited dimension
logical :: has_unlimited = .false.
@@ -431,7 +431,7 @@
state%model_size = state%model_size + domain_size
state%domain(dom_id)%num_unique_dims = 3
-allocate(state%domain(dom_id)%unique_dim_IDs(3))
+allocate(state%domain(dom_id)%original_dim_IDs(3))
allocate(state%domain(dom_id)%unique_dim_names(3))
allocate(state%domain(dom_id)%unique_dim_length(3))
@@ -443,9 +443,9 @@
state%domain(dom_id)%unique_dim_length(2) = 1
state%domain(dom_id)%unique_dim_length(3) = 1
-state%domain(dom_id)%unique_dim_IDs(1) = 1
-state%domain(dom_id)%unique_dim_IDs(2) = 2
-state%domain(dom_id)%unique_dim_IDs(3) = NF90_UNLIMITED
+state%domain(dom_id)%original_dim_IDs(1) = 1
+state%domain(dom_id)%original_dim_IDs(2) = 2
+state%domain(dom_id)%original_dim_IDs(3) = NF90_UNLIMITED
! variable
allocate(state%domain(dom_id)%variable(1))
@@ -700,7 +700,7 @@
allocate(state%domain(dom_id)%unique_dim_names(count_dims))
allocate(state%domain(dom_id)%unique_dim_length(count_dims))
-allocate(state%domain(dom_id)%unique_dim_IDs(count_dims))
+allocate(state%domain(dom_id)%original_dim_IDs(count_dims))
count_dims = 1
@@ -708,7 +708,7 @@
if(unique(jdim_dom)) then
state%domain(dom_id)%unique_dim_names( count_dims) = array_of_names( array_of_indices(jdim_dom))
state%domain(dom_id)%unique_dim_length(count_dims) = array_of_lengths(array_of_indices(jdim_dom))
- state%domain(dom_id)%unique_dim_IDs( count_dims) = array_of_dimids( array_of_indices(jdim_dom))
+ state%domain(dom_id)%original_dim_IDs( count_dims) = array_of_dimids( array_of_indices(jdim_dom))
count_dims = count_dims + 1
endif
enddo
@@ -1083,18 +1083,19 @@
!-------------------------------------------------------------------------------
-!> Return the unique dimension lengths
+!> Return the original dimension ID from the source (blank,file, or spec)
+!> This is intentionally not a public routine and is intended to be used
+!> to summarize what is being used from the source (state_structure_info).
+function get_original_dim_ID(dom_id, jdim)
-function get_io_unique_dim_ID(dom_id, jdim)
-
integer, intent(in) :: dom_id
integer, intent(in) :: jdim
-integer :: get_io_unique_dim_ID
+integer :: get_original_dim_ID
-get_io_unique_dim_ID = state%domain(dom_id)%unique_dim_IDs(jdim)
+get_original_dim_ID = state%domain(dom_id)%original_dim_IDs(jdim)
-end function get_io_unique_dim_ID
+end function get_original_dim_ID
!-------------------------------------------------------------------------------
@@ -1605,7 +1606,7 @@
write(*,'('' unlimdimid : '',I2)') get_unlimited_dimid(dom_id)
do jdim = 1, num_dims
write(*,200) jdim, &
- get_io_unique_dim_ID( dom_id,jdim), &
+ get_original_dim_ID( dom_id,jdim), &
get_io_unique_dim_length(dom_id,jdim), &
trim(get_io_unique_dim_name( dom_id,jdim))
enddo
@@ -1612,6 +1613,7 @@
write(*,*)
200 format(4x,i2,': dim_id =',I2,', length = ',I8,', name = "',A,'"')
+201 format(4x,i2,': ',2x,' length = ',I8,', name = "',A,'"')
! report on each variable in this domain
@@ -1636,7 +1638,7 @@
array_lengths(1:num_dims) = get_dim_lengths(dom_id,ivar)
do jdim = 1, num_dims
dim_name = get_dim_name(dom_id, ivar, jdim)
- write(*,200) jdim, jdim, array_lengths(jdim), trim(dim_name)
More information about the Dart-dev
mailing list