SABER
tools_kinds.F90
Go to the documentation of this file.
1 # 1 "/Users/miesch/JEDI/code/working_copy/internal/mpas-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_byte,nf90_double,nf90_float,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 ! NetCDF kind alias for the whole code
25 integer,parameter :: nc_kind_byte = nf90_byte !< NetCDF byte kind alias
26 integer,parameter :: nc_kind_int = nf90_int !< NetCDF integer kind alias
27 integer,parameter :: nc_kind_float = nf90_float !< NetCDF float kind alias
28 integer,parameter :: nc_kind_double = nf90_double !< NetCDF double kind alias
29 
30 ! Real kind alias for the whole code
31 integer,parameter :: kind_real = c_double !< Real kind alias for the whole code
32 integer,parameter :: nc_kind_real = nc_kind_double !< NetCDF real kind alias for the whole code
33 
34 ! Huge values
35 integer,parameter :: huge_int = huge(0_kind_int) !< Integer huge
36 real(kind_real),parameter :: huge_real = huge(0.0_kind_real) !< Real huge
37 
38 private
41 public :: huge_int,huge_real
42 
43 end module tools_kinds
Kinds definition.
Definition: tools_kinds.F90:9
integer, parameter, public nc_kind_real
NetCDF real kind alias for the whole code.
Definition: tools_kinds.F90:32
integer, parameter, public nc_kind_int
NetCDF integer kind alias.
Definition: tools_kinds.F90:26
integer, parameter, public nc_kind_float
NetCDF float kind alias.
Definition: tools_kinds.F90:27
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 nc_kind_byte
NetCDF byte kind alias.
Definition: tools_kinds.F90:25
integer, parameter, public nc_kind_double
NetCDF double kind alias.
Definition: tools_kinds.F90:28
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:31
integer, parameter, public huge_int
Integer huge.
Definition: tools_kinds.F90:35
real(kind_real), parameter, public huge_real
Real huge.
Definition: tools_kinds.F90:36