# PERFOBJS=\ prim_advection_mod.o \ edge_mod.o \ derivative_mod.o \ bndry_mod.o \ prim_advance_mod.o # CLM's SatellitePhenologyMod is compiled incorrectly with intel 15.0.0 at -O2 REDUCED_OPT_OBJS=\ SatellitePhenologyMod.o # 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 PUMAS_MG_OBJS=\ micro_mg1_0.o \ micro_pumas_v1.o \ micro_pumas_data.o \ micro_pumas_utils.o \ wv_sat_methods.o # RRTMGP contains openmp directives for running on GPUs. These directives need to be # disabled to allow building CAM with threading on CPUs enabled. RRTMGP_OBJS=\ mo_fluxes_byband.o mo_rrtmgp_clr_all_sky.o \ mo_zenith_angle_spherical_correction.o mo_gas_concentrations.o \ mo_aerosol_optics_rrtmgp_merra.o mo_cloud_optics_rrtmgp.o \ mo_gas_optics_rrtmgp.o mo_gas_optics_rrtmgp_kernels.o \ mo_rte_sw.o mo_rte_lw.o \ mo_rte_util_array_validation.o mo_rte_util_array.o \ mo_fluxes_broadband_kernels.o ifeq ($(DEBUG),FALSE) $(PERFOBJS): %.o: %.F90 $(FC) -c $(INCLDIR) $(INCS) $(FFLAGS) $(FREEFLAGS) -O3 -no-prec-div $< $(REDUCED_OPT_OBJS): %.o: %.F90 $(FC) -c $(INCLDIR) $(INCS) $(FFLAGS) $(FREEFLAGS) -O1 $< $(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 $< $(PUMAS_MG_OBJS): %.o: %.F90 $(FC) -c $(INCLDIR) $(INCS) $(FFLAGS) $(FREEFLAGS) -O3 -no-fma -ftz -no-prec-sqrt -qoverride-limits -no-inline-max-total-size -inline-factor=200 -qopt-report=5 $< endif $(RRTMGP_OBJS): %.o: %.F90 $(FC) -c $(INCLDIR) $(INCS) $(FFLAGS) $(FREEFLAGS) -qno-openmp $<