# shr_wv_sat_mod does not need to have better than ~0.1% precision, and benefits
# enormously from a lower precision in the vector functions.
REDUCED_PRECISION_OBJS=\
shr_wv_sat_mod.o

SHR_RANDNUM_FORT_OBJS=\
kissvec_mod.o \
mersennetwister_mod.o \
dSFMT_interface.o \
shr_RandNum_mod.o

SHR_RANDNUM_C_OBJS=\
dSFMT.o \
dSFMT_utils.o \
kissvec.o

# Note: FFLAGS contains flags such as -fp-model consistent (and -fimf-use-svml for intel version 18)
# The -fp-model fast flags below will effectively override other -fp-model settings.

ifeq ($(DEBUG),FALSE)
  $(REDUCED_PRECISION_OBJS): %.o: %.F90
	  $(FC) -c $(INCLDIR) $(INCS) $(FFLAGS) $(FREEFLAGS) -fimf-precision=low -fp-model fast $<
  $(SHR_RANDNUM_FORT_OBJS): %.o: %.F90
	  $(FC) -c $(INCLDIR) $(INCS) $(FFLAGS) $(FREEFLAGS) -O3 -fp-model fast -no-prec-div -no-prec-sqrt -qoverride-limits $<
  $(SHR_RANDNUM_C_OBJS): %.o: %.c
	  $(CC) -c $(INCLDIR) $(INCS) $(CFLAGS) -O3 -fp-model fast $<
endif
