[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