nc4d (4-dimensional Dataset)

nc4d _ [vdt] _ll [cdt] _t [tdt] _l [ldt] structure is used to declare a 4-dimensional NetCDF dataset. Combinations can be made for the declaration of the structure by replacing [vdt] by one of the data types defined in the FPL library ([byte, short, int, float, double]), [cdt] by a defined suffix for the data type of the coordinates (f for float and d for double), [tdt] by a defined suffix for the datatype of time (i for integer, f for float and d for double) and for a level suffix ((f for float and d for double).

nc4d _ [vdt] _ll [cdt] _t [tdt] _l [ldt]

Type naming:
[vdt]:variable datatype [byte, short, int, float or double]
[cdt]:coordinates datatype(float[f] or double[d]).
[tdt]:time datatype(integer i, float f or double d).
[ldt]:level datatype(integer i or float f).
Name parameters:
 
varname:dataset variable name [character]
lonname:longitude name [character]
latname:latitude name [character]
timename:time name [character]
levelname:level name [character]
long_name:title for dataset [character]
dimname:array of dimension names [character]
Unit parameters:
 
varunits:variable units [character]
lonunits:longitudes units [character]
latunits:latitude units [character]
timeunits:time units [character]
levelunits:level units [character]
dimunits:dimension units array [character]
Dimension parameters:
 
ndims:number of variable dimensions [integer]
dimid:array of dimension IDs [integer]
dims:dimension IDs corresponding to the variable dimensions [integer]
dimsize:array of size of dimensions [integer]
varids:array of variables IDs [integer]
Coordinate parameters:
 
nlons:number of longitudes of the dataset [integer]
nlats:number of latitudes of the dataset [integer]
longitudes(nlons):
 longitude array [float or double]
latitudes(nlats):
 latitude array [float or double]
Time parameters:
 
ntimes:number of times of the dataset [integer]
times(ntimes):time array [integer, float or double]
Level parameters:
 
nlevels:number of levels of the dataset [integer]
levels(nlevels):
 level array [float or double]
Data parameters:
 
data(lon, lat, time, level):
 data array [byte, short, integer, float or double]
vartype:type number for NetCDF-Fortran library [integer]
FillValue:fill value [byte, short, integer, float or doubl]

Example:

Using a 4-dimensional NetCDF dataset with variable declared as integer, coordinates declared as double, time declared as double and level declared as float (nc4d _ int _ll d _t d _l f).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
type :: nc4d_int_lld_td_lf
  sequence
  character(len=100) :: varname, timename, levelname, lonname, latname, &
                        long_name, varunits, lonunits, latunits, &
                        timeunits, levelunits
  character(len=100), dimension(:), allocatable :: dimname, dimunits
  integer(kind=intgr) :: nlons, nlats, ntimes, nlevels, ndims, vartype
  integer(kind=intgr), dimension(:), allocatable :: dimid, dimsize, varids
  integer(kind=intgr), dimension(4) :: dims
  integer(kind=intgr) :: FillValue
  real(kind=float), dimension(:), allocatable :: levels
  real(kind=double), dimension(:), allocatable :: times
  real(kind=double), dimension(:), allocatable :: longitudes, latitudes
  integer(kind=intgr), dimension(:,:,:,:), allocatable :: ncdata
end type nc4d_int_lld_td_lf