20 #ifndef __FMS_PLATFORM_
21 #define __FMS_PLATFORM_
26 use,
intrinsic :: iso_fortran_env, only: real128
27 use,
intrinsic :: iso_c_binding, only: c_double,c_float,c_int64_t, &
28 c_int32_t,c_int16_t,c_intptr_t
29 #define QUAD_KIND real128
30 #define DOUBLE_KIND c_double
31 #define FLOAT_KIND c_float
32 #define LONG_KIND c_int64_t
33 #define INT_KIND c_int32_t
34 #define SHORT_KIND c_int16_t
35 #define POINTER_KIND c_intptr_t
44 #define POINTER_KIND 8
59 #define _ALLOCATABLE pointer
60 #define _NULL =>null()
61 #define _ALLOCATED associated
64 #define _ALLOCATABLE allocatable
66 #define _ALLOCATED allocated
72 #ifdef NO_CRAY_POINTERS
73 #undef use_CRI_pointers
76 #define use_CRI_pointers
81 #ifdef no_8byte_integers
83 #define LONG_KIND INT_KIND
87 #ifndef ENABLE_QUAD_PRECISION
89 #define QUAD_KIND DOUBLE_KIND
93 #ifndef FMS_MAX_PATH_LEN
94 #define FMS_MAX_PATH_LEN 1024
96 #ifndef FMS_MAX_FILE_LEN
97 #define FMS_MAX_FILE_LEN 255