#ifdef HAVE_CONFIG_H #include "config.h" #endif module kinds #ifdef CAM use shr_kind_mod, only : SHR_KIND_I4, SHR_KIND_R8, SHR_KIND_I8, SHR_KIND_CL use cam_logfile, only : iulog ! _EXTERNAL #endif implicit none private ! ! most floating point variables should be of type real_kind = real*8 ! For higher precision, we also have quad_kind = real*16, but this ! is only supported on IBM systems ! #if defined(CAM) integer (kind=4), public, parameter:: & int_kind = SHR_KIND_I4, & log_kind = kind(.true.), & long_kind = SHR_KIND_I8, & real_kind = SHR_KIND_R8, & longdouble_kind = 8 public :: shr_kind_cl, iulog #elif defined(_Linux) || defined (_Darwin) integer (kind=4), public, parameter:: & int_kind = 4, & long_kind = 8, & log_kind = 4, & real_kind = 8, & longdouble_kind = 8, & iulog = 6 ! stderr file handle #else integer (kind=4), public, parameter :: & int_kind = 4, & long_kind = 8, & log_kind = 4, & real_kind = 8, & longdouble_kind = 16, & iulog = 6 ! stderr file handle #endif end module kinds