anchor.diff:              call nc_diag_read_id_get_var_1d_string(current_ncid, var_name, var_stor)
           end subroutine nc_diag_read_noid_get_var_1d_string
           
  -                function nc_diag_read_id_ret_var_2d_byte(file_ncid, var_name) result(var_stor)
  -            integer, intent(in)                        :: file_ncid
  -            character(len=*), intent(in)               :: var_name
  -            
  -            integer(i_byte),dimension(:,:),allocatable :: var_stor
  -            
  -            integer(i_long)                            :: var_index, var_type, file_ind
  -                        
  -            call ncdr_check_ncid(file_ncid)
  -            file_ind = nc_diag_read_get_index_from_ncid(file_ncid)
  -            
  -            var_index = nc_diag_read_id_assert_var(file_ncid, var_name)
  -            var_type  = ncdr_files(file_ind)%vars(var_index)%var_type
  -                        
  -            call nc_diag_read_assert_var_type(var_type, NF90_BYTE)
  -            call nc_diag_read_assert_var_ndims(size( &
  -                ncdr_files(file_ind)%vars(var_index)%var_dim_sizes), 2)
  -            
  -            call nc_diag_read_assert_var_dims(var_stor, & 
  -                ncdr_files(file_ind)%vars(var_index)%var_dim_sizes)
  -            
  -            call check(nf90_get_var(file_ncid, var_index, &
  -                    var_stor, &
  -                    start = (/ 1 /), &
  -                    count = (/ ncdr_files(file_ind)%vars(var_index)%var_dim_sizes(1) /) ))
  -        end function nc_diag_read_id_ret_var_2d_byte
  -        
  -        function nc_diag_read_noid_ret_var_2d_byte(var_name) result(var_stor)
  -            character(len=*), intent(in)                :: var_name
  -            integer(i_byte),dimension(:,:),allocatable :: var_stor
  -            
  -            call ncdr_check_current_ncid
  -            
  -            var_stor = nc_diag_read_id_ret_var_2d_byte(current_ncid, var_name)
  -        end function nc_diag_read_noid_ret_var_2d_byte
  -        
           subroutine nc_diag_read_id_get_var_2d_byte(file_ncid, var_name, var_stor)
               integer, intent(in)                        :: file_ncid
               character(len=*), intent(in)               :: var_name
  
positive.code:             call nc_diag_read_id_get_var_1d_double(current_ncid, var_name, var_stor)
          end subroutine nc_diag_read_noid_get_var_1d_double
          
                  function nc_diag_read_id_ret_var_1d_string(file_ncid, var_name) result(var_stor)
              integer, intent(in)                        :: file_ncid
              character(len=*), intent(in)               :: var_name
              
              character(len=:), dimension(:), allocatable :: var_stor
              
              integer(i_long)                            :: var_index, var_type, file_ind
                          
              call ncdr_check_ncid(file_ncid)
              file_ind = nc_diag_read_get_index_from_ncid(file_ncid)
              file_ind = nc_diag_read_get_index_from_ncid(file_ncid)
              
              var_index = nc_diag_read_id_assert_var(file_ncid, var_name)
              var_type  = ncdr_files(file_ind)%vars(var_index)%var_type
                          
              call nc_diag_read_assert_var_type(var_type, NF90_CHAR)
              call nc_diag_read_assert_var_ndims(size( &
                  ncdr_files(file_ind)%vars(var_index)%var_dim_sizes), 2)
              
              call nc_diag_read_assert_var_dims(var_stor, & 
                  ncdr_files(file_ind)%vars(var_index)%var_dim_sizes)
              
              call check(nf90_get_var(file_ncid, var_index, &
                      var_stor, &
                      start = (/ 1, 1 /), &
                      count = (/ ncdr_files(file_ind)%vars(var_index)%var_dim_sizes(1), &
                          ncdr_files(file_ind)%vars(var_index)%var_dim_sizes(2) /) ))
          end function nc_diag_read_id_ret_var_1d_string
          
          function nc_diag_read_noid_ret_var_1d_string(var_name) result(var_stor)
              character(len=*), intent(in)                :: var_name
              character(len=:), dimension(:), allocatable :: var_stor
              
              call ncdr_check_current_ncid
              
              var_stor = nc_diag_read_id_ret_var_1d_string(current_ncid, var_name)
          end function nc_diag_read_noid_ret_var_1d_string
          
          subroutine nc_diag_read_id_get_var_1d_string(file_ncid, var_name, var_stor)
              integer, intent(in)                        :: file_ncid
              character(len=*), intent(in)               :: var_name
  
negative.code:             call nc_diag_read_id_get_var_1d_long(current_ncid, var_name, var_stor)
          end subroutine nc_diag_read_noid_get_var_1d_long
          
          subroutine nc_diag_read_id_get_var_1d_float(file_ncid, var_name, var_stor)
              integer, intent(in)                        :: file_ncid
              character(len=*), intent(in)               :: var_name
  