-
Notifications
You must be signed in to change notification settings - Fork 145
/
machine.F
44 lines (37 loc) · 1.42 KB
/
machine.F
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
!>\file machine.F
!!
module machine
!! \section arg_table_machine
!! \htmlinclude machine.html
!!
implicit none
integer, parameter :: kind_sngl_prec = 4 &
&, kind_dbl_prec = 8 &
# ifdef __PGI
&, kind_qdt_prec = 8 &
# else
&, kind_qdt_prec = 16 &
# endif
&, kind_integer = 4 &
&, kind_logical = 4
&, kind_io4 = kind_sngl_prec &
&, kind_ior = kind_dbl_prec &
&, kind_grid = kind_dbl_prec
! Physics single precision flag
#ifndef SINGLE_PREC
integer, parameter :: kind_phys = kind_dbl_prec
#else
integer, parameter :: kind_phys = kind_sngl_prec
#endif
integer, parameter :: kind_io8 = kind_phys &! Note kind_io8 is not always 8 bytes
! Dynamics single precision flag
#ifdef OVERLOAD_R4
integer, parameter :: kind_dyn = kind_sngl_prec
#else
integer, parameter :: kind_dyn = kind_dbl_prec
#endif
!
real(kind=kind_phys), parameter :: mprec = 1.e-12 ! machine precision to restrict dep
real(kind=kind_phys), parameter :: grib_undef = 9.99e20 ! grib undefine value
!
end module machine