Skip to content

Commit f100c9f

Browse files
authored
Merge pull request #33 from E3SM-Project/develop
Develop
2 parents ef3a83d + 68ff114 commit f100c9f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+17412
-0
lines changed

methods/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
This directory contains standalone methods-development code for algorithms in
2+
COMPOSE. These codes are not built as part of the COMPOSE library.

methods/slmm/Makefile

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
include make.inc
2+
3+
F90 = gfortran
4+
5+
CXXFLAGS += $(opt) -Wall -pedantic -fopenmp -std=c++11 -I$(SIQK) -I$(PWD) -I$(KOKKOS)/include -DSIQK_TIME -Wno-unused-function -fPIC
6+
LDFLAGS += -fopenmp -L$(KOKKOS)/lib -lkokkos -ldl
7+
8+
OS_NAME := $(shell uname -s)
9+
10+
ifdef NETCDF
11+
CXXFLAGS+=-isystem$(NETCDF)/include -DSLMM_HAVE_NETCDF
12+
LDFLAGS+=-L$(NETCDF)/lib -lnetcdf_c++4 -lnetcdf
13+
ifeq ($(OS_NAME), Linux)
14+
LDFLAGS+=-Wl,-rpath=$(NETCDF)/lib
15+
endif
16+
endif
17+
18+
ifdef BUILD_DIAG
19+
LDFLAGS += -lgfortran
20+
CXXFLAGS += -DSLMMIR_LAURITZEN_DIAG
21+
endif
22+
23+
SLMM_SOURCES=slmm_mesh.cpp slmm_io.cpp slmm_time_int.cpp slmm_gallery.cpp slmm_util.cpp slmm_nla.cpp slmm_spf.cpp slmm_fit_extremum.cpp slmm_basis.cpp slmm_islet_string.cpp slmm_islet.cpp slmm_basis_reduced.cpp slmm_accum.cpp slmm_array_tree.cpp slmm_spf_lqlt.cpp slmm_vis.cpp
24+
25+
SLMM_OBJECTS=$(SLMM_SOURCES:.cpp=.o)
26+
27+
SLMMIR_SRC=slmmir_time_int.cpp slmmir_time_int_exp.cpp slmmir_remap_data.cpp slmmir_mono_data.cpp slmmir_remapper.cpp slmmir_remapper_isl.cpp slmmir_util.cpp slmmir_p_refine.cpp slmmir_lauritzen_diag.cpp slmmir_d2c.cpp slmmir_physgrid.cpp slmmir_snapshot.cpp
28+
29+
ifdef BUILD_DIAG
30+
SLMMIR_F90_SRC=slmmir_lauritzen_diag_f90.f90
31+
else
32+
SLMMIR_F90_SRC=
33+
endif
34+
35+
SLMMIR_OBJ=$(SLMMIR_SRC:.cpp=.o) $(SLMMIR_F90_SRC:.f90=.o)
36+
37+
.SUFFIXES: .cpp .f90 .o
38+
39+
.cpp.o:
40+
$(CXX) $(CFLAGS) $(CXXFLAGS) -c $< -o $@
41+
42+
.f90.o:
43+
$(F90) -c $< -o $@
44+
45+
all: slmm_test slmmir physgrid
46+
47+
slmm_test: $(SLMM_OBJECTS) slmm_test.o
48+
$(CXX) $(SLMM_OBJECTS) slmm_test.o $(LDFLAGS) $(LINK_LAPACK_BLAS) -o slmm_test
49+
50+
slmmir: $(SLMMIR_OBJ) $(SLMM_OBJECTS) slmmir.o
51+
$(CXX) slmmir.o $(SLMMIR_OBJ) $(SLMM_OBJECTS) $(LDFLAGS) $(LINK_LAPACK_BLAS) -o slmmir
52+
53+
physgrid: $(SLMMIR_OBJ) $(SLMM_OBJECTS) physgrid.o
54+
$(CXX) physgrid.o $(SLMMIR_OBJ) $(SLMM_OBJECTS) $(LDFLAGS) $(LINK_LAPACK_BLAS) -o physgrid
55+
56+
libslmm: $(SLMM_OBJECTS) slmm_c_compat.o
57+
$(CXX) $(SLMM_OBJECTS) slmm_c_compat.o $(LDFLAGS) -shared $(LINK_LAPACK_BLAS) -o libslmm.so
58+
59+
clean:
60+
rm -f *.o *.mod slmm_test slmmir libslmm.so *.gcov *.gcda *.gcno
61+
62+
slmm_test.o: slmm_defs.hpp slmm_mesh.hpp slmm_gll.hpp slmm_io.hpp slmm_time_int.hpp slmm_gallery.hpp slmm_islet.hpp $(SIQK)/siqk.hpp $(SIQK)/siqk_sqr.hpp
63+
slmmir.o: slmm_defs.hpp slmm_util.hpp slmm_mesh.hpp slmm_gll.hpp slmm_io.hpp slmm_time_int.hpp slmm_gallery.hpp slmm_nla.hpp slmm_spf.hpp slmm_fit_extremum.hpp slmmir_time_int.hpp $(SIQK)/siqk.hpp $(SIQK)/siqk_quadrature.hpp $(SIQK)/siqk_sqr.hpp slmmir_remapper.hpp slmmir_remap_data.hpp slmmir_mono_data.hpp slmm_islet.hpp slmm_accum.hpp slmm_vis.hpp slmmir_time_int.hpp
64+
slmmir_time_int.o: slmm_gallery.hpp slmm_time_int.hpp slmmir_p_refine.hpp slmmir_time_int.hpp
65+
slmmir_time_int_exp.o: slmm_gallery.hpp slmm_time_int.hpp
66+
slmm_test.o: slmm_defs.hpp slmm_util.hpp slmm_mesh.hpp slmm_gll.hpp slmm_io.hpp slmm_time_int.hpp slmm_gallery.hpp slmm_nla.hpp slmm_spf.hpp $(SIQK)/siqk.hpp $(SIQK)/siqk_sqr.hpp
67+
slmm_mesh.o: slmm_mesh.hpp $(SIQK)/siqk.hpp slmm_array.hpp
68+
slmm_spf.o: slmm_spf.hpp $(SIQK)/siqk.hpp
69+
slmm_io.o: slmm_io.hpp
70+
slmm_nla.o: slmm_nla.hpp
71+
slmm_time_int.o: slmm_time_int.hpp
72+
slmm_gallery.o: slmm_gallery.hpp
73+
slmm_util.o: slmm_util.hpp
74+
slmmir_remap_data.o: slmmir_remap_data.hpp
75+
slmmir_p_refine.o: slmmir_p_refine.hpp
76+
slmmir_mono_data.o: slmmir_mono_data.hpp
77+
slmmir_remapper.o: slmmir_remapper.hpp slmmir_remap_data.hpp slmmir_mono_data.hpp slmmir_util.hpp slmmir.hpp slmmir_physgrid.hpp
78+
slmmir_remapper_isl.o: slmmir_remapper.hpp slmmir_remap_data.hpp slmmir_mono_data.hpp slmmir_p_refine.hpp slmm_islet.hpp slmmir.hpp slmmir_physgrid.hpp slmm_accum.hpp
79+
slmmir_util.o: slmmir_util.hpp
80+
slmmir_p_refine.o: slmmir_p_refine.hpp slmm_islet.hpp
81+
slmm_islet.o: slmm_islet.hpp
82+
slmm_islet_string.o: slmm_islet.hpp
83+
slmm_accum.o: slmm_accum.hpp
84+
slmm_vis.o: slmm_vis.hpp
85+
slmmir_physgrid.o: slmmir_physgrid.hpp
86+
physgrid.o: slmmir_physgrid.hpp
87+
slmm_basis.o: slmm_basis.hpp
88+
slmm_basis_reduced.o: slmm_islet.hpp slmm_basis_reduced.hpp

methods/slmm/make.inc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
opt=-O3 -g
2+
CXX=g++
3+
CXXFLAGS=-DRELAX_TIME -Wstrict-overflow=0 -DSLMM_NP_GT_4 -DSLMM_NP_MAX=16
4+
5+
KOKKOS= # fill in with path to Kokkos installation
6+
# Optional. Comment out if no TPL available.
7+
#NETCDF=
8+
9+
SIQK=../../siqk
10+
LINK_LAPACK_BLAS=-llapack -lblas
11+
BUILD_DIAG=1

0 commit comments

Comments
 (0)