9     use netcdf, 
only: nf90_get_var, nf90_byte, nf90_short, nf90_int, &
    10         nf90_float, nf90_double, nf90_char
    44             integer(i_long), 
intent(in)                :: file_ncdr_id
    45             character(len=*), 
intent(in)               :: var_name
    46             integer(i_byte), 
dimension(:), 
allocatable, 
intent(inout) :: var_stor
    48             integer(i_long)                            :: var_index, var_type, file_ncid
    60                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes), 1)
    63                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes)
    68                     count = (/ 
ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(1) /) ))
    72             character(len=*), 
intent(in)             :: var_name
    73             integer(i_byte), 
dimension(:), 
allocatable, 
intent(inout) :: var_stor
    80             integer(i_long), 
intent(in)                :: file_ncdr_id
    81             character(len=*), 
intent(in)               :: var_name
    82             integer(i_short), 
dimension(:), 
allocatable, 
intent(inout) :: var_stor
    84             integer(i_long)                            :: var_index, var_type, file_ncid
    96                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes), 1)
    99                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes)
   104                     count = (/ 
ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(1) /) ))
   108             character(len=*), 
intent(in)             :: var_name
   109             integer(i_short), 
dimension(:), 
allocatable, 
intent(inout) :: var_stor
   116             integer(i_long), 
intent(in)                :: file_ncdr_id
   117             character(len=*), 
intent(in)               :: var_name
   118             integer(i_long), 
dimension(:), 
allocatable, 
intent(inout) :: var_stor
   120             integer(i_long)                            :: var_index, var_type, file_ncid
   132                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes), 1)
   135                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes)
   140                     count = (/ 
ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(1) /) ))
   144             character(len=*), 
intent(in)             :: var_name
   145             integer(i_long), 
dimension(:), 
allocatable, 
intent(inout) :: var_stor
   152             integer(i_long), 
intent(in)                :: file_ncdr_id
   153             character(len=*), 
intent(in)               :: var_name
   154             real(r_single), 
dimension(:), 
allocatable, 
intent(inout) :: var_stor
   156             integer(i_long)                            :: var_index, var_type, file_ncid
   168                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes), 1)
   171                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes)
   176                     count = (/ 
ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(1) /) ))
   180             character(len=*), 
intent(in)             :: var_name
   181             real(r_single), 
dimension(:), 
allocatable, 
intent(inout) :: var_stor
   188             integer(i_long), 
intent(in)                :: file_ncdr_id
   189             character(len=*), 
intent(in)               :: var_name
   190             real(r_double), 
dimension(:), 
allocatable, 
intent(inout) :: var_stor
   192             integer(i_long)                            :: var_index, var_type, file_ncid
   204                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes), 1)
   207                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes)
   212                     count = (/ 
ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(1) /) ))
   216             character(len=*), 
intent(in)             :: var_name
   217             real(r_double), 
dimension(:), 
allocatable, 
intent(inout) :: var_stor
   224             integer(i_long), 
intent(in)                :: file_ncdr_id
   225             character(len=*), 
intent(in)               :: var_name
   226             character(len=:), 
dimension(:), 
allocatable, 
intent(inout) :: var_stor
   228             integer(i_long)                            :: var_index, var_type, file_ncid
   240                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes), 2)
   243                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes)
   247                     start = (/ 1, 1 /), &
   248                     count = (/ 
ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(1), &
   249                         ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(2) /) ))
   253             character(len=*), 
intent(in)             :: var_name
   254             character(len=:), 
dimension(:), 
allocatable, 
intent(inout) :: var_stor
   261             integer(i_long), 
intent(in)                :: file_ncdr_id
   262             character(len=*), 
intent(in)               :: var_name
   263             integer(i_byte), 
dimension(:,:),
allocatable,
intent(inout) :: var_stor
   265             integer(i_long)                            :: var_index, var_type, file_ncid
   277                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes), 2)
   280                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes)
   285                     count = (/ 
ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(1), &
   286                         ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(2) /) ))
   290             character(len=*), 
intent(in)             :: var_name
   291             integer(i_byte), 
dimension(:,:),
allocatable,
intent(inout) :: var_stor
   298             integer(i_long), 
intent(in)                :: file_ncdr_id
   299             character(len=*), 
intent(in)               :: var_name
   300             integer(i_short), 
dimension(:,:),
allocatable,
intent(inout) :: var_stor
   302             integer(i_long)                            :: var_index, var_type, file_ncid
   314                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes), 2)
   317                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes)
   322                     count = (/ 
ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(1), &
   323                         ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(2) /) ))
   327             character(len=*), 
intent(in)             :: var_name
   328             integer(i_short), 
dimension(:,:),
allocatable,
intent(inout) :: var_stor
   335             integer(i_long), 
intent(in)                :: file_ncdr_id
   336             character(len=*), 
intent(in)               :: var_name
   337             integer(i_long), 
dimension(:,:),
allocatable,
intent(inout) :: var_stor
   339             integer(i_long)                            :: var_index, var_type, file_ncid
   351                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes), 2)
   354                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes)
   359                     count = (/ 
ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(1), &
   360                         ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(2) /) ))
   364             character(len=*), 
intent(in)             :: var_name
   365             integer(i_long), 
dimension(:,:),
allocatable,
intent(inout) :: var_stor
   372             integer(i_long), 
intent(in)                :: file_ncdr_id
   373             character(len=*), 
intent(in)               :: var_name
   374             real(r_single), 
dimension(:,:),
allocatable,
intent(inout) :: var_stor
   376             integer(i_long)                            :: var_index, var_type, file_ncid
   388                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes), 2)
   391                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes)
   396                     count = (/ 
ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(1), &
   397                         ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(2) /) ))
   401             character(len=*), 
intent(in)             :: var_name
   402             real(r_single), 
dimension(:,:),
allocatable,
intent(inout) :: var_stor
   409             integer(i_long), 
intent(in)                :: file_ncdr_id
   410             character(len=*), 
intent(in)               :: var_name
   411             real(r_double), 
dimension(:,:),
allocatable,
intent(inout) :: var_stor
   413             integer(i_long)                            :: var_index, var_type, file_ncid
   425                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes), 2)
   428                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes)
   433                     count = (/ 
ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(1), &
   434                         ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(2) /) ))
   438             character(len=*), 
intent(in)             :: var_name
   439             real(r_double), 
dimension(:,:),
allocatable,
intent(inout) :: var_stor
   446             integer(i_long), 
intent(in)                :: file_ncdr_id
   447             character(len=*), 
intent(in)               :: var_name
   448             character(len=:), 
dimension(:,:),
allocatable,
intent(inout) :: var_stor
   450             integer(i_long)                            :: var_index, var_type, file_ncid
   462                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes), 3)
   465                 ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes)
   469                     start = (/ 1, 1, 1 /), &
   470                     count = (/ 
ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(1), &
   471                         ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(2), &
   472                         ncdr_files(file_ncdr_id)%vars(var_index)%var_dim_sizes(3) /) ))
   476             character(len=*), 
intent(in)             :: var_name
   477             character(len=:), 
dimension(:,:),
allocatable,
intent(inout) :: var_stor
 subroutine nc_diag_read_id_get_var_1d_long(file_ncdr_id, var_name, var_stor)
 
integer, parameter, public i_byte
 
subroutine nc_diag_read_noid_get_var_1d_byte(var_name, var_stor)
 
integer, parameter, public i_long
 
subroutine nc_diag_read_noid_get_var_1d_float(var_name, var_stor)
 
subroutine nc_diag_read_noid_get_var_2d_byte(var_name, var_stor)
 
subroutine nc_diag_read_id_get_var_1d_byte(file_ncdr_id, var_name, var_stor)
 
subroutine nc_diag_read_noid_get_var_1d_double(var_name, var_stor)
 
subroutine ncdr_nc_check(status)
 
subroutine nc_diag_read_id_get_var_1d_short(file_ncdr_id, var_name, var_stor)
 
subroutine nc_diag_read_noid_get_var_2d_short(var_name, var_stor)
 
subroutine nc_diag_read_id_get_var_1d_float(file_ncdr_id, var_name, var_stor)
 
integer(i_long) current_ncdr_id
 
type(ncdr_file), dimension(:), allocatable ncdr_files
 
subroutine nc_diag_read_noid_get_var_2d_double(var_name, var_stor)
 
subroutine nc_diag_read_noid_get_var_1d_string(var_name, var_stor)
 
subroutine ncdr_check_current_ncdr_id
 
subroutine nc_diag_read_noid_get_var_2d_string(var_name, var_stor)
 
subroutine ncdr_check_ncid(file_ncid)
 
subroutine nc_diag_read_noid_get_var_2d_long(var_name, var_stor)
 
subroutine nc_diag_read_id_get_var_1d_double(file_ncdr_id, var_name, var_stor)
 
integer(i_long) function nc_diag_read_id_assert_var(file_ncdr_id, var_name)
 
subroutine nc_diag_read_noid_get_var_1d_long(var_name, var_stor)
 
subroutine nc_diag_read_id_get_var_2d_short(file_ncdr_id, var_name, var_stor)
 
subroutine ncdr_check_ncdr_id(file_ncdr_id)
 
subroutine nc_diag_read_noid_get_var_2d_float(var_name, var_stor)
 
subroutine nc_diag_read_id_get_var_2d_double(file_ncdr_id, var_name, var_stor)
 
integer, parameter, public i_short
 
subroutine nc_diag_read_id_get_var_2d_long(file_ncdr_id, var_name, var_stor)
 
subroutine nc_diag_read_id_get_var_1d_string(file_ncdr_id, var_name, var_stor)
 
subroutine nc_diag_read_id_get_var_2d_string(file_ncdr_id, var_name, var_stor)
 
subroutine nc_diag_read_id_get_var_2d_byte(file_ncdr_id, var_name, var_stor)
 
integer, parameter, public r_double
 
subroutine nc_diag_read_noid_get_var_1d_short(var_name, var_stor)
 
integer, parameter, public r_single
 
subroutine nc_diag_read_id_get_var_2d_float(file_ncdr_id, var_name, var_stor)
 
subroutine nc_diag_read_assert_var_type(var_type, correct_var_type)
 
subroutine nc_diag_read_assert_var_ndims(var_ndims, correct_var_ndims)