! ! portable data types ! module kinds implicit none integer, parameter :: INT1 = selected_int_kind(2) ! Single byte integer integer, parameter :: INT2 = selected_int_kind(4) ! Two byte integer integer, parameter :: INT4 = selected_int_kind(9) ! Four byte integer integer, parameter :: REAL4 = selected_real_kind(5) ! Single precision integer, parameter :: REAL8 = selected_real_kind(12) ! Double precision integer, parameter :: COMPLEX8 = REAL4 ! complex kind from components integer, parameter :: COMPLEX16 = REAL8 end module kinds