-
Notifications
You must be signed in to change notification settings - Fork 29
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
14 changed files
with
505 additions
and
242 deletions.
There are no files selected for viewing
Submodule WW3
updated
36 files
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,188 @@ | ||
## NEMS configuration file | ||
## | ||
## Platform: Orion | ||
## Compiler: Intel with IntelMPI | ||
|
||
SHELL=/bin/sh | ||
|
||
################################################################################ | ||
## Include the common configuration parts | ||
|
||
ifdef InNemsMakefile | ||
include $(TOP)/conf/configure.nems.NUOPC | ||
endif | ||
|
||
############ | ||
# commands # | ||
############ | ||
FC = mpiifort | ||
CC = mpiicc | ||
CXX = mpiicpc | ||
LD = mpiifort -mkl=sequential | ||
|
||
######### | ||
# flags # | ||
######### | ||
# default is 64-bit OpenMP non-hydrostatic build using AVX2 | ||
DEBUG = | ||
REPRO = | ||
VERBOSE = | ||
OPENMP = Y | ||
AVX2 = Y | ||
HYDRO = N | ||
CCPP = N | ||
STATIC = N | ||
QUAD_PRECISION = Y | ||
MULTI_GASES = N | ||
|
||
include $(ESMFMKFILE) | ||
ESMF_INC = $(ESMF_F90COMPILEPATHS) | ||
|
||
NEMSIOINC = -I$(NEMSIO_INC) | ||
NCEPLIBS = $(POST_LIB) $(NEMSIO_LIB) $(G2_LIB4) $(G2TMPL_LIB) $(BACIO_LIB4) $(SP_LIBd) $(W3EMC_LIBd) $(W3NCO_LIBd) $(CRTM_LIB) $(JASPER_ROOT)/lib64/libjasper.a -lpng -lz | ||
|
||
############################################## | ||
# Need to use at least GNU Make version 3.81 # | ||
############################################## | ||
need := 3.81 | ||
ok := $(filter $(need),$(firstword $(sort $(MAKE_VERSION) $(need)))) | ||
ifneq ($(need),$(ok)) | ||
$(error Need at least make version $(need). Load module gmake/3.81) | ||
endif | ||
|
||
NETCDF_ROOT = $(NETCDF) | ||
INCLUDE = -I$(NETCDF_ROOT)/include | ||
NETCDF_INC = -I$(NETCDF_ROOT)/include | ||
ifneq ($(findstring netcdf/4,$(LOADEDMODULES)),) | ||
NETCDF_LIB += -L$(NETCDF)/lib -lnetcdff -lnetcdf | ||
else | ||
NETCDF_LIB = -L$(NETCDF)/lib -lnetcdff -lnetcdf | ||
endif | ||
|
||
FPPFLAGS := -fpp -Wp,-w $(INCLUDE) | ||
CFLAGS := $(INCLUDE) | ||
|
||
FFLAGS := $(INCLUDE) -fno-alias -auto -safe-cray-ptr -save-temps -ftz -assume byterecl -nowarn -sox -align array64byte | ||
|
||
CPPDEFS += -Duse_libMPI -Duse_netCDF -DSPMD -DUSE_LOG_DIAG_FIELD_INFO -DUSE_GFSL63 -DGFS_PHYS -Duse_WRTCOMP | ||
CPPDEFS += -DNEW_TAUCTMAX -DINTERNAL_FILE_NML | ||
|
||
ifeq ($(HYDRO),Y) | ||
CPPDEFS += | ||
else | ||
CPPDEFS += -DMOIST_CAPPA -DUSE_COND | ||
endif | ||
|
||
ifeq ($(32BIT),Y) | ||
CPPDEFS += -DOVERLOAD_R4 -DOVERLOAD_R8 | ||
FFLAGS += -i4 -real-size 32 | ||
else | ||
ifeq ($(REPRO),Y) | ||
FFLAGS += -i4 -real-size 64 | ||
else | ||
FFLAGS += -i4 -real-size 64 -no-prec-div -no-prec-sqrt | ||
endif | ||
endif | ||
|
||
ifeq ($(REPRO),Y) | ||
FFLAGS += -qno-opt-dynamic-align | ||
CFLAGS += -qno-opt-dynamic-align | ||
else | ||
ifeq ($(AVX2),Y) | ||
# Don't use the AVX512 flags yet on hera | ||
#FFLAGS += -axSSE4.2,AVX,CORE-AVX2,CORE-AVX512 -qno-opt-dynamic-align | ||
#CFLAGS += -axSSE4.2,AVX,CORE-AVX2,CORE-AVX512 -qno-opt-dynamic-align | ||
FFLAGS += -xCORE-AVX2 -qno-opt-dynamic-align | ||
CFLAGS += -xCORE-AVX2 -qno-opt-dynamic-align | ||
else | ||
FFLAGS += -qno-opt-dynamic-align | ||
CFLAGS += -qno-opt-dynamic-align | ||
endif | ||
endif | ||
|
||
ifeq ($(MULTI_GASES),Y) | ||
CPPDEFS += -DMULTI_GASES | ||
endif | ||
|
||
ifeq ($(QUAD_PRECISION),Y) | ||
CPPDEFS += -DENABLE_QUAD_PRECISION | ||
endif | ||
|
||
FFLAGS_OPT = -O2 -debug minimal -fp-model source -qoverride-limits -qopt-prefetch=3 | ||
FFLAGS_REPRO = -O2 -debug minimal -fp-model consistent -qoverride-limits -g -traceback | ||
FFLAGS_DEBUG = -g -O0 -check all -check noarg_temp_created -check nopointer -warn -warn noerrors -fp-stack-check -fstack-protector-all -fpe0 -debug -traceback -ftrapuv -link_mpi=dbg | ||
|
||
TRANSCENDENTALS := -fast-transcendentals | ||
FFLAGS_OPENMP = -qopenmp | ||
FFLAGS_VERBOSE = -v -V -what | ||
|
||
CFLAGS += -D__IFC -sox -fp-model source | ||
|
||
CFLAGS_OPT = -O2 -debug minimal | ||
CFLAGS_REPRO = -O2 -debug minimal | ||
CFLAGS_OPENMP = -qopenmp | ||
CFLAGS_DEBUG = -O0 -g -ftrapuv -traceback | ||
|
||
# Optional Testing compile flags. Mutually exclusive from DEBUG, REPRO, and OPT | ||
# *_TEST will match the production if no new option(s) is(are) to be tested. | ||
FFLAGS_TEST = -O3 -debug minimal -fp-model source -qoverride-limits | ||
CFLAGS_TEST = -O2 | ||
|
||
LDFLAGS := | ||
LDFLAGS_OPENMP := -qopenmp | ||
LDFLAGS_VERBOSE := -Wl,-V,--verbose,-cref,-M | ||
|
||
# start with blank LIBS | ||
LIBS := | ||
|
||
ifeq ($(REPRO),Y) | ||
CPPDEFS += -DREPRO | ||
CFLAGS += $(CFLAGS_REPRO) | ||
FFLAGS += $(FFLAGS_REPRO) | ||
FAST := | ||
else ifeq ($(DEBUG),Y) | ||
CPPDEFS += -DDEBUG | ||
CFLAGS += $(CFLAGS_DEBUG) | ||
FFLAGS += $(FFLAGS_DEBUG) | ||
FAST := | ||
else ifeq ($(TEST),Y) | ||
CFLAGS += $(CFLAGS_TEST) | ||
FFLAGS += $(FFLAGS_TEST) | ||
FAST := | ||
else | ||
CFLAGS += $(CFLAGS_OPT) | ||
FFLAGS += $(FFLAGS_OPT) | ||
FAST := $(TRANSCENDENTALS) | ||
endif | ||
|
||
ifeq ($(OPENMP),Y) | ||
CPPDEFS += -DOPENMP | ||
CFLAGS += $(CFLAGS_OPENMP) | ||
FFLAGS += $(FFLAGS_OPENMP) | ||
LDFLAGS += $(LDFLAGS_OPENMP) | ||
endif | ||
|
||
ifeq ($(VERBOSE),Y) | ||
CFLAGS += $(CFLAGS_VERBOSE) | ||
FFLAGS += $(FFLAGS_VERBOSE) | ||
LDFLAGS += $(LDFLAGS_VERBOSE) | ||
endif | ||
|
||
ifeq ($(CCPP),Y) | ||
CPPDEFS += -DCCPP | ||
CFLAGS += -I$(PATH_CCPP)/include | ||
FFLAGS += -I$(PATH_CCPP)/include | ||
LDFLAGS += -L$(PATH_CCPP)/lib -lccppphys -lccpp $(NCEPLIBS) -lxml2 | ||
endif | ||
|
||
ifeq ($(CMEPS),Y) | ||
CPPDEFS += -DCMEPS | ||
endif | ||
|
||
LDFLAGS += $(LIBS) | ||
|
||
ifdef InNemsMakefile | ||
FFLAGS += $(ESMF_INC) | ||
CPPFLAGS += -traditional | ||
EXTLIBS = $(NCEPLIBS) $(ESMF_F90LINKPATHS) $(ESMF_LIB) $(LDFLAGS) $(NETCDF_LIB) | ||
endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
#%Module###################################################################### | ||
## | ||
## NEMS FV3 Prerequisites: Hera/Intel | ||
|
||
proc ModulesHelp {} { | ||
puts stderr "\tcit - loads modules required for building and running FV3 under NEMS on Hera/Intel" | ||
} | ||
|
||
module-whatis "loads NEMS FV3 prerequisites for Hera/Intel" | ||
|
||
## | ||
## load contrib environment | ||
## load slurm utils (arbitrary.pl layout.pl) | ||
## | ||
#module use -a /contrib/sutils/modulefiles | ||
#module load sutils | ||
|
||
|
||
## | ||
## NCEP libraries | ||
## | ||
module load cmake/3.16.1 | ||
setenv CMAKE_C_COMPILER mpiicc | ||
setenv CMAKE_CXX_COMPILER mpiicpc | ||
setenv CMAKE_Fortran_COMPILER mpiifort | ||
#setenv CMAKE_Platform hera.intel | ||
module use /work/07738/kgerheis/stampede2/hpc-stack/v1.0.0-beta1/modulefiles/stack | ||
module load hpc/1.0.0-beta1 | ||
module load hpc-intel/18.0.2 | ||
module load hpc-impi/18.0.2 | ||
|
||
module load bacio/2.4.1 | ||
module load crtm/2.3.0 | ||
module load g2/3.4.1 | ||
module load g2tmpl/1.9.1 | ||
module load ip/3.3.3 | ||
module load nceppost/dceca26 | ||
module load nemsio/2.5.2 | ||
module load sp/2.3.3 | ||
module load w3emc/2.7.3 | ||
module load w3nco/2.4.1 | ||
|
||
module load gfsio/1.4.1 | ||
module load sfcio/1.4.1 | ||
module load sigio/2.3.2 | ||
|
||
module load gfsio/1.4.1 | ||
module load sfcio/1.4.1 | ||
module load sigio/2.3.2 | ||
|
||
module load jasper/2.0.15 | ||
module load png/1.6.35 | ||
module load zlib/1.2.11 | ||
|
||
## | ||
## load ESMF library for above compiler / MPI combination | ||
## use pre-compiled EMSF library for above compiler / MPI combination | ||
## | ||
module load hdf5/1.10.6 | ||
module load netcdf/4.7.4 | ||
module load pio/2.5.1 | ||
module load esmf/8_1_0_beta_snapshot_27 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.