set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Mpreprocess")

if(DEBUG)
    message("DEBUG is       ENABLED")
    set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -g -O0 -Ktrap=fp -Mbounds -traceback")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g -traceback")
else()
    message("DEBUG is       disabled (optimized build)")
    set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -O2")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
    set(FAST "-fast-transcendentals")
endif()


if(REPRO)
    message("REPRO is       ENABLED")
    set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -O1 -g -traceback")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
else()
    message("REPRO is       disabled")
endif()


if(32BIT)
    message("32BIT is       ENABLED")
    set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -i4 -r4")
    add_definitions(-DOVERLOAD_R4)
    add_definitions(-DOVERLOAD_R8)
else()
    message("32BIT is       disabled")
    set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -i4 -r8 -Mfprelaxed=div -Mfprelaxed=sqrt")
endif()


if(OPENMP)
    message("OPENMP is      ENABLED")
    set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -mp")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mp")
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mp")
    add_definitions(-DOPENMP)
else()
    message("OPENMP is      disabled")
endif()


if(AVX2)
    message("AVX2 is        ENABLED")
    set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -tp=haswell")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -tp=haswell")
else()
    message("AVX2 is        disabled")
    set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -tp=x64")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -tp=x64")
endif()


if(INLINE_POST)
    message("INLINE_POST is ENABLED")
else()
    message("INLINE_POST is disabled")
endif()