SABER
tools_kinds.F90
Go to the documentation of this file.
1 # 1 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/util/tools_kinds.fypp"
2 !----------------------------------------------------------------------
3 ! Module: tools_kinds
4 !> Kinds definition
5 ! Author: Benjamin Menetrier
6 ! Licensing: this code is distributed under the CeCILL-C license
7 ! Copyright 2015-... UCAR, CERFACS, METEO-FRANCE and IRIT
8 !----------------------------------------------------------------------
9 module tools_kinds
10 
11 use iso_c_binding, only: c_int,c_short,c_long,c_signed_char,c_float,c_double
12 use netcdf, only: nf90_double,nf90_int
13 
14 implicit none
15 
16 ! C kinds
17 integer,parameter :: kind_int = c_int !< Integer kind
18 integer,parameter :: kind_short = c_short !< Short integer kind
19 integer,parameter :: kind_long = c_long !< Long integer kind
20 integer,parameter :: kind_signed_char = c_signed_char !< Signed char kind
21 integer,parameter :: kind_float = c_float !< Float kind
22 integer,parameter :: kind_double = c_double !< Double kind
23 
24 ! Real kind alias for the whole code
25 integer,parameter :: kind_real = c_double !< Real kind alias for the whole code
26 
27 ! NetCDF kind alias for the whole code
28 integer,parameter :: nc_kind_int = nf90_int !< NetCDF integer kind alias
29 integer,parameter :: nc_kind_real = nf90_double !< NetCDF real kind alias
30 
31 ! Huge values
32 integer,parameter :: huge_int = huge(0_kind_int) !< Integer huge
33 real(kind_real),parameter :: huge_real = huge(0.0_kind_real) !< Real huge
34 
35 private
37 public :: nc_kind_int,nc_kind_real
38 public :: huge_int,huge_real
39 
40 end module tools_kinds
Kinds definition.
Definition: tools_kinds.F90:9
integer, parameter, public nc_kind_real
NetCDF real kind alias.
Definition: tools_kinds.F90:29
integer, parameter, public nc_kind_int
NetCDF integer kind alias.
Definition: tools_kinds.F90:28
integer, parameter, public kind_short
Short integer kind.
Definition: tools_kinds.F90:18
integer, parameter, public kind_signed_char
Signed char kind
Definition: tools_kinds.F90:20
integer, parameter, public kind_int
Integer kind.
Definition: tools_kinds.F90:17
integer, parameter, public kind_float
Float kind.
Definition: tools_kinds.F90:21
integer, parameter, public kind_double
Double kind.
Definition: tools_kinds.F90:22
integer, parameter, public kind_long
Long integer kind.
Definition: tools_kinds.F90:19
integer, parameter, public kind_real
Real kind alias for the whole code.
Definition: tools_kinds.F90:25
integer, parameter, public huge_int
Integer huge.
Definition: tools_kinds.F90:32
real(kind_real), parameter, public huge_real
Real huge.
Definition: tools_kinds.F90:33