Update version info for release v4.6.1 (#2122)
[WRF.git] / phys / module_cam_infnan.F
blob3763385b1b07c68eb8c9ed7ef2c1429b5c001cab
1 #define WRF_PORT
2 #define MODAL_AERO
3 ! Updated to CESM1.0.3 (CAM5.1.01) by Balwinder.Singh@pnnl.gov
5 module infnan
6 !-------------------------------------------------------------------------
8 ! Purpose:
10 ! Set parameters for the floating point flags "inf" Infinity
11 ! and "nan" not-a-number. As well as "bigint" the point
12 ! at which integers start to overflow. These values are used
13 ! to initialize arrays with as a way to detect if arrays
14 ! are being used before being set.
16 ! Author: CCM Core group
18 ! $Id$
20 !-------------------------------------------------------------------------
21   use shr_kind_mod, only: r8 => shr_kind_r8
22 #ifdef __PGI
23 ! quiet nan for portland group compilers
24   real(r8), parameter :: inf = O'0777600000000000000000'
25   real(r8), parameter :: nan = O'0777700000000000000000'
26   integer,  parameter :: bigint = O'17777777777'    
27 #elif __GNUC__
28   real(r8), parameter :: inf = 1.e19
29   real(r8), parameter :: nan = 1.e21
30   integer,  parameter :: bigint = O'17777777777'
31 #else
32 ! signaling nan otherwise
33   real(r8), parameter :: inf = O'0777600000000000000000'
34   real(r8), parameter :: nan = O'0777610000000000000000'
35   integer,  parameter :: bigint = O'17777777777'           ! largest possible 32-bit integer
36 #endif
37   real(r8), parameter :: uninit_r8 = inf                   ! uninitialized floating point number
38 end module infnan