FV3 Bundle
ncdr_types.f90
Go to the documentation of this file.
1 module ncdr_types
2  use ncd_kinds, only: i_long
3 
4  implicit none
5 
6  ! Dimensions type - type for storing all of the dimensions in the
7  ! file
8  ! Allocates to the number of dimensions in the file
9  type ncdr_dim
10  ! Dimension names
11  character(len=:), allocatable :: dim_name
12  ! Dimension IDs
13  integer(i_long) :: dim_id
14  ! Dimension sizes
15  integer(i_long) :: dim_size
16  ! Boolean whether the dimension is unlimited or not!
17  logical :: dim_unlim
18  end type ncdr_dim
19 
20  ! Dimension indicies type - type for storing all of the dimension
21  ! indicies for a single variable
22  ! Allocates to the number of indicies within each variable
23 
24  ! Variables type - type for storing all variables in the file
25  ! Allocates to the number of variables in the file
26  type ncdr_var
27  ! Variable name
28  character(len=:), allocatable :: var_name
29  ! Variable ID
30  integer(i_long) :: var_id
31  ! Variable type
32  integer(i_long) :: var_type
33  ! Variable number of dimensions
34  integer(i_long) :: var_ndims
35  ! Dimension indexes - all of the dimension indicies for a
36  ! single variable
37  integer(i_long), dimension(:), allocatable :: var_dim_inds
38  ! Actual dimensions
39  integer(i_long), dimension(:), allocatable :: var_dim_sizes
40  end type ncdr_var
41 
42  ! File type - type for storing a single file's metadata
43  ! Allocates to the number of files
44  type ncdr_file
45  character(:), allocatable :: filename
46  integer(i_long) :: ncid
47  integer(i_long) :: ndims
48  type(ncdr_dim), dimension(:), allocatable :: dims
49  integer(i_long) :: nvars
50  type(ncdr_var), dimension(:), allocatable :: vars
51  logical :: file_open = .true.
52  end type ncdr_file
53 end module ncdr_types
integer, parameter, public i_long
Definition: ncd_kinds.F90:47