-
Notifications
You must be signed in to change notification settings - Fork 12
/
clubb_precision.F90
30 lines (24 loc) · 1.18 KB
/
clubb_precision.F90
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
!-------------------------------------------------------------------------------
! $Id$
!===============================================================================
module clubb_precision
implicit none
public :: stat_nknd, stat_rknd, time_precision, dp, core_rknd
private ! Default scope
! This definition of double precision must use a real type that is 64 bits
! wide, because (at least) the LAPACK routines depend on this definition being
! accurate. Otherwise, LAPACK must be recompiled, or some other trickery must
! be done.
integer, parameter :: &
dp = selected_real_kind( p=12 ) ! double precision
! The precisions below are arbitrary, and could be adjusted as
! needed for long simulations or time averaging. Note that on
! most machines 12 digits of precision will use a data type
! which is 8 bytes long.
integer, parameter :: &
stat_nknd = selected_int_kind( 8 ), &
stat_rknd = selected_real_kind( p=12 ), &
time_precision = selected_real_kind( p=12 ), &
core_rknd = CLUBB_REAL_TYPE ! Value from the preprocessor directive
end module clubb_precision
!-------------------------------------------------------------------------------