Skip to content

Commit 8fad5b5

Browse files
committed
Merge branch 'release/8.3.0' into main
2 parents 5c6ca08 + 86d44b3 commit 8fad5b5

File tree

2,630 files changed

+440054
-221193
lines changed

Some content is hidden

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

2,630 files changed

+440054
-221193
lines changed

.circleci/config.yml

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ jobs:
130130
build-esmf-docs:
131131
docker:
132132
- image: cimg/base:2020.01
133+
resource_class: large
133134
steps:
134135
- setup_remote_docker
135136
- run:
@@ -160,12 +161,16 @@ jobs:
160161
destination: doc-artifacts.zip
161162

162163
publish-esmf-docs:
163-
machine: true
164+
machine:
165+
image: ubuntu-2004:202201-02
164166
resource_class: medium
165167
steps:
166168
- restore_cache:
167169
keys:
168170
- esmf-docs-{{ .Revision }}
171+
- add_ssh_keys:
172+
fingerprints:
173+
- "14:e5:89:bd:fe:9a:28:7e:06:56:f2:0d:93:ff:9a:9c"
169174
- run:
170175
name: Prep Artifacts
171176
command: cd /tmp/artifacts && unzip doc-artifacts.zip
@@ -206,12 +211,16 @@ jobs:
206211
destination: test_coverage-artifacts.zip
207212

208213
publish-test-coverage:
209-
machine: true
214+
machine:
215+
image: ubuntu-2004:202201-02
210216
resource_class: medium
211217
steps:
212218
- restore_cache:
213219
keys:
214220
- test-coverage-{{ .Revision }}
221+
- add_ssh_keys:
222+
fingerprints:
223+
- "4a:f2:d9:dd:d6:2a:4e:fd:79:06:72:29:4c:d9:c0:8c"
215224
- run:
216225
name: Prep Test Coverage
217226
command: cd /tmp/artifacts && unzip test_coverage-artifacts.zip
@@ -238,7 +247,7 @@ jobs:
238247
command: git clone --branch $CIRCLE_BRANCH https://github.com/esmf-org/esmf.git
239248
- run:
240249
name: Docker Run API Changes
241-
command: docker build -t "esmf/api-change:${CIRCLE_BRANCH_NEW}" --file "ESCOMP-Containers/ESMF/API_changes/Dockerfile" --build-arg DOCKER_NAMESPACE="esmf" --build-arg TAG1="ESMF_8_1_0" --build-arg TAG2="${CIRCLE_BRANCH}" --no-cache .
250+
command: docker build -t "esmf/api-change:${CIRCLE_BRANCH_NEW}" --file "ESCOMP-Containers/ESMF/API_changes/Dockerfile" --build-arg DOCKER_NAMESPACE="esmf" --build-arg TAG1="ESMF_8_2_0" --build-arg TAG2="${CIRCLE_BRANCH}" --no-cache .
242251
- run:
243252
name: Extract API Changes
244253
command: bash esmf/.circleci/sh/extract-artifacts.sh "/tmp/artifacts" "/artifacts/api_change-artifacts.zip" "esmf/api-change:${CIRCLE_BRANCH_NEW}"
@@ -252,12 +261,16 @@ jobs:
252261
destination: api_change-artifacts.zip
253262

254263
publish-api-change:
255-
machine: true
264+
machine:
265+
image: ubuntu-2004:202201-02
256266
resource_class: medium
257267
steps:
258268
- restore_cache:
259269
keys:
260270
- api-change-{{ .Revision }}
271+
- add_ssh_keys:
272+
fingerprints:
273+
- "4a:f2:d9:dd:d6:2a:4e:fd:79:06:72:29:4c:d9:c0:8c"
261274
- run:
262275
name: Prep API Changes
263276
command: cd /tmp/artifacts && unzip api_change-artifacts.zip
@@ -315,12 +328,16 @@ jobs:
315328
destination: doc-esmpy.zip
316329

317330
publish-esmpy-docs:
318-
machine: true
331+
machine:
332+
image: ubuntu-2004:202201-02
319333
resource_class: medium
320334
steps:
321335
- restore_cache:
322336
keys:
323337
- esmpy-docs-{{ .Revision }}
338+
- add_ssh_keys:
339+
fingerprints:
340+
- "bd:e1:a6:87:3f:d5:fe:18:88:69:eb:55:bf:f9:e4:3d"
324341
- run:
325342
name: Prep Artifacts
326343
command: cd /tmp/artifacts && unzip doc-esmpy.zip
@@ -482,11 +499,11 @@ workflows:
482499
- publish-esmf-docs:
483500
requires:
484501
- build-esmf-docs
485-
filters:
486-
branches:
487-
only:
488-
- develop
489-
- /^release/.*$/
502+
# filters:
503+
# branches:
504+
# only:
505+
# - develop
506+
# - /^release/.*$/
490507
- build-esmpy-docs
491508
# requires:
492509
# - should-build-docs

.circleci/sh/doc-push.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ set -Eeuxo pipefail
44
DOC_ARTIFACTS="/tmp/artifacts/artifacts"
55

66
git config --global user.email "dunlap@ucar.edu"
7-
git config --global user.name "esmf-orgbot"
7+
git config --global user.name "esmf-bot"
88

99
cd
1010

.gitignore

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ PET*.ESMF_LogFile
2020
/src/include/
2121
/test/
2222
/examples/
23+
/src/Infrastructure/IO/PIO/Build/
24+
/src/Infrastructure/IO/PIO/Install/
2325

2426
# protex generated files #
2527
##########################
@@ -43,6 +45,8 @@ src/Infrastructure/FieldBundle/src/ESMF_FieldBundle.F90
4345
src/Infrastructure/LocalArray/interface/ESMF_LocalArrayCreate.F90
4446
src/Infrastructure/LocalArray/interface/ESMF_LocalArrayGet.F90
4547
src/Infrastructure/LocalArray/interface/ESMF_LocalArrayWrapperType.F90
48+
src/Infrastructure/Mesh/tests/ESMC_MeshCapGenUTest.C
49+
src/Infrastructure/Mesh/tests/ESMC_MeshCapRegridGenUTest.C
4650
src/Infrastructure/IO/interface/ESMF_IO_NCPutGet.F90
4751
src/Infrastructure/Util/doc/ESMC_ReturnCodes.tex
4852
src/Infrastructure/Util/src/ESMF_FortranWordsize.F90
@@ -101,7 +105,6 @@ src/doc/ESMF_usrdoc.tex.ORIG
101105
src/doc/ESMF_usrdoc.toc
102106
src/doc/.latex2html-init
103107

104-
105108
# special test files that cannot be cleaned after build #
106109
############################################################
107110
src/system_tests/ESMF_ArrayRedistMPMD/ESMF_ArrayRedistSTestA.o
@@ -112,6 +115,8 @@ src/system_tests/ESMF_ArrayRedistMPMD/user_model1.mod
112115
src/system_tests/ESMF_ArrayRedistMPMD/user_model1.o
113116
src/system_tests/ESMF_ArrayRedistMPMD/user_model2.mod
114117
src/system_tests/ESMF_ArrayRedistMPMD/user_model2.o
118+
src/system_tests/ESMF_ArrayRedistSharedObj/user_coupler.so
119+
src/system_tests/ESMF_ArrayRedistSharedObj/user_model1.so
115120

116121
src/Infrastructure/Trace/preload/preload.o
117122
src/Infrastructure/Trace/preload/preload_io.o

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Earth System Modeling Framework
22

3-
Copyright (c) 2002-2021 University Corporation for Atmospheric Research,
3+
Copyright (c) 2002-2022 University Corporation for Atmospheric Research,
44
Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory,
55
University of Michigan, National Centers for Environmental Prediction,
66
Los Alamos National Laboratory, Argonne National Laboratory,

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# Earth System Modeling Framework (ESMF)
44

5-
>Copyright (c) 2002-2021 University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, NASA Goddard Space Flight Center. All rights reserved.
5+
>Copyright (c) 2002-2022 University Corporation for Atmospheric Research, Massachusetts Institute of Technology, Geophysical Fluid Dynamics Laboratory, University of Michigan, National Centers for Environmental Prediction, Los Alamos National Laboratory, Argonne National Laboratory, NASA Goddard Space Flight Center. All rights reserved.
66
77
Hello and welcome to ESMF.
88

@@ -18,7 +18,7 @@ Hello and welcome to ESMF.
1818

1919
## Building ESMF
2020

21-
* To build ESMF from source consult the [Building ESMF](http://earthsystemmodeling.org/docs/nightly/develop/ESMF_usrdoc/node9.html) section of the [ESMF User's Guide](http://earthsystemmodeling.org/docs/nightly/develop/ESMF_usrdoc/).
21+
* To build ESMF from source consult the [Building ESMF](http://earthsystemmodeling.org/docs/nightly/develop/ESMF_usrdoc/node10.html) section of the [ESMF User's Guide](http://earthsystemmodeling.org/docs/nightly/develop/ESMF_usrdoc/).
2222
* For testing ESMF, see [Testing makefile targets](http://earthsystemmodeling.org/docs/nightly/develop/ESMF_usrdoc/node11.html).
2323
* Pre-built binaries for ESMF and ESMPy are also available on `conda-forge` (_note Windows is not supported_):
2424
```

build/common.mk

Lines changed: 122 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,11 @@ endif
142142

143143
ifndef ESMF_COMM
144144
export ESMF_COMM = default
145+
else
146+
ifeq ($(ESMF_COMM),mpich3)
147+
export ESMF_COMM = mpich
148+
$(warning !!! For MPICH3 and up, please use ESMF_COMM=mpich !!!)
149+
endif
145150
endif
146151

147152
ifndef ESMF_COMPILER
@@ -744,11 +749,14 @@ ESMF_GREPV = grep -v
744749
# dummies here, expected to be overwritten in platform files if used
745750
ESMF_F90RPATHPREFIX = -L
746751
ESMF_CXXRPATHPREFIX = -L
752+
ESMF_CRPATHPREFIX = -L
747753

748754
ESMF_F90OPTFLAG_X =
749755
ESMF_CXXOPTFLAG_X =
756+
ESMF_COPTFLAG_X =
750757
ESMF_F90OPTFLAG_G = -g
751758
ESMF_CXXOPTFLAG_G = -g
759+
ESMF_COPTFLAG_G = -g
752760

753761
# setting default optimization flags is platform dependent
754762
ifneq ($(origin ESMF_OPTLEVEL), environment)
@@ -763,6 +771,7 @@ else
763771
ESMF_F90OPTFLAG_O = -O$(ESMF_OPTLEVEL)
764772
endif
765773
ESMF_CXXOPTFLAG_O = -O$(ESMF_OPTLEVEL) -DNDEBUG
774+
ESMF_COPTFLAG_O = -O$(ESMF_OPTLEVEL) -DNDEBUG
766775
else
767776
# if NEC, insert option before -O
768777
ifeq ($(ESMF_COMPILER),sxcross)
@@ -771,6 +780,7 @@ else
771780
ESMF_F90OPTFLAG_O = -O
772781
endif
773782
ESMF_CXXOPTFLAG_O = -O2 -DNDEBUG
783+
ESMF_COPTFLAG_O = -O2 -DNDEBUG
774784
endif
775785

776786

@@ -878,6 +888,51 @@ ESMF_CXXCOMPILEPATHSLOCAL += -I$(ESMF_CONFDIR) $(ESMF_INTERNALINCDIRS)
878888
ESMF_CXXCOMPILEPATHS += -I$(ESMF_INCDIR) $(ESMF_CXXCOMPILEPATHSTHIRD)
879889
ESMF_CXXCOMPILECPPFLAGS += $(ESMF_CPPFLAGS) -D__SDIR__='"$(LOCDIR)"'
880890

891+
# - CCOMPILER
892+
ifneq ($(origin ESMF_CCOMPILER), environment)
893+
ifeq ($(origin ESMF_C), environment)
894+
ESMF_CCOMPILER = $(ESMF_C)
895+
else
896+
ESMF_CCOMPILER = $(ESMF_CCOMPILERDEFAULT)
897+
ESMF_CCOMPILERDEFAULT = $(ESMF_CDEFAULT)
898+
endif
899+
endif
900+
ifneq ($(origin ESMF_COPTFLAG), environment)
901+
ESMF_COPTFLAG = $(ESMF_COPTFLAG_X)
902+
ifeq ($(ESMF_BOPT),g)
903+
ESMF_COPTFLAG = $(ESMF_COPTFLAG_G)
904+
endif
905+
ifeq ($(ESMF_BOPT),O)
906+
ESMF_COPTFLAG = $(ESMF_COPTFLAG_O)
907+
endif
908+
endif
909+
# - make sure environment variable gets prepended _once_
910+
ifeq ($(origin ESMF_CCOMPILEOPTS), environment)
911+
export ESMF_CCOMPILEOPTS_ENV := $(ESMF_CCOMPILEOPTS)
912+
unexport ESMF_CCOMPILEOPTS
913+
endif
914+
ifeq ($(origin ESMF_CCOMPILEOPTS_ENV), environment)
915+
ESMF_CCOMPILEOPTS = $(ESMF_CCOMPILEOPTS_ENV)
916+
endif
917+
ESMF_CCOMPILEOPTS += $(ESMF_CSTDFLAG) $(ESMF_COPTFLAG) $(ESMF_SO_CCOMPILEOPTS)
918+
# - make sure environment variable gets prepended _once_
919+
ifeq ($(origin ESMF_CCOMPILEPATHS), environment)
920+
export ESMF_CCOMPILEPATHS_ENV := $(ESMF_CCOMPILEPATHS)
921+
unexport ESMF_CCOMPILEPATHS
922+
endif
923+
ifeq ($(origin ESMF_CCOMPILEPATHS_ENV), environment)
924+
ESMF_CCOMPILEPATHS = $(ESMF_CCOMPILEPATHS_ENV)
925+
endif
926+
ESMF_CCOMPILEPATHS +=
927+
ESMF_CCOMPILEPATHSLOCAL = -I$(ESMF_DIR)/$(LOCDIR)
928+
ESMF_CCOMPILEPATHSLOCAL += -I$(ESMF_DIR)/$(LOCDIR)/../include
929+
ifneq ($(ESMF_SITE),default)
930+
ESMF_CCOMPILEPATHSLOCAL += -I$(ESMF_SITEDIR)
931+
endif
932+
ESMF_CCOMPILEPATHSLOCAL += -I$(ESMF_CONFDIR) $(ESMF_INTERNALINCDIRS)
933+
ESMF_CCOMPILEPATHS += -I$(ESMF_INCDIR) $(ESMF_CCOMPILEPATHSTHIRD)
934+
ESMF_CCOMPILECPPFLAGS += $(ESMF_CPPFLAGS) -D__SDIR__='"$(LOCDIR)"'
935+
881936
# - F90LINKER
882937
ifneq ($(origin ESMF_F90LINKER), environment)
883938
ifeq ($(origin ESMF_F90), environment)
@@ -986,6 +1041,60 @@ endif
9861041
ESMF_CXXLINKLIBS +=
9871042
ESMF_CXXESMFLINKLIBS += -lesmf $(ESMF_CXXLINKLIBS)
9881043

1044+
# - CLINKER
1045+
ifneq ($(origin ESMF_CLINKER), environment)
1046+
ifeq ($(origin ESMF_C), environment)
1047+
ESMF_CLINKER = $(ESMF_C)
1048+
else
1049+
ESMF_CLINKER = $(ESMF_CLINKERDEFAULT)
1050+
ESMF_CLINKERDEFAULT = $(ESMF_CDEFAULT)
1051+
endif
1052+
endif
1053+
# - make sure environment variable gets prepended _once_
1054+
ifeq ($(origin ESMF_CLINKOPTS), environment)
1055+
export ESMF_CLINKOPTS_ENV := $(ESMF_CLINKOPTS)
1056+
unexport ESMF_CLINKOPTS
1057+
endif
1058+
ifeq ($(origin ESMF_CLINKOPTS_ENV), environment)
1059+
ESMF_CLINKOPTS = $(ESMF_CLINKOPTS_ENV)
1060+
else
1061+
ifeq ($(ESMF_BOPT),g)
1062+
ESMF_CLINKOPTS += $(ESMF_LINKOPTFLAG_G)
1063+
endif
1064+
ifeq ($(ESMF_BOPT),O)
1065+
ESMF_CLINKOPTS += $(ESMF_LINKOPTFLAG_O)
1066+
endif
1067+
endif
1068+
ESMF_CLINKOPTS +=
1069+
# - make sure environment variable gets prepended _once_
1070+
ifeq ($(origin ESMF_CLINKPATHS), environment)
1071+
export ESMF_CLINKPATHS_ENV := $(ESMF_CLINKPATHS)
1072+
unexport ESMF_CLINKPATHS
1073+
endif
1074+
ifeq ($(origin ESMF_CLINKPATHS_ENV), environment)
1075+
ESMF_CLINKPATHS = $(ESMF_CLINKPATHS_ENV)
1076+
endif
1077+
ESMF_CLINKPATHS += -L$(ESMF_LDIR) $(ESMF_CLINKPATHSTHIRD)
1078+
# - make sure environment variable gets prepended _once_
1079+
ifeq ($(origin ESMF_CLINKRPATHS), environment)
1080+
export ESMF_CLINKRPATHS_ENV := $(ESMF_CLINKRPATHS)
1081+
unexport ESMF_CLINKRPATHS
1082+
endif
1083+
ifeq ($(origin ESMF_CLINKRPATHS_ENV), environment)
1084+
ESMF_CLINKRPATHS = $(ESMF_CLINKRPATHS_ENV)
1085+
endif
1086+
ESMF_CLINKRPATHS += $(ESMF_CRPATHPREFIX)$(ESMF_LDIR) $(ESMF_CLINKRPATHSTHIRD)
1087+
# - make sure environment variable gets prepended _once_
1088+
ifeq ($(origin ESMF_CLINKLIBS), environment)
1089+
export ESMF_CLINKLIBS_ENV := $(ESMF_CLINKLIBS)
1090+
unexport ESMF_CLINKLIBS
1091+
endif
1092+
ifeq ($(origin ESMF_CLINKLIBS_ENV), environment)
1093+
ESMF_CLINKLIBS = $(ESMF_CLINKLIBS_ENV)
1094+
endif
1095+
ESMF_CLINKLIBS +=
1096+
ESMF_CESMFLINKLIBS += -lesmf $(ESMF_CLINKLIBS)
1097+
9891098
# - tools: AR + RANLIB + ...
9901099
ifneq ($(origin ESMF_AR), environment)
9911100
ESMF_AR = $(ESMF_ARDEFAULT)
@@ -1051,6 +1160,9 @@ ESMF_SO_F90LINKOPTSEXE +=
10511160
ESMF_SO_CXXCOMPILEOPTS +=
10521161
ESMF_SO_CXXLINKOPTS +=
10531162
ESMF_SO_CXXLINKOPTSEXE +=
1163+
ESMF_SO_CCOMPILEOPTS = $(ESMF_SO_CXXCOMPILEOPTS)
1164+
ESMF_SO_CLINKOPTS = $(ESMF_SO_CXXLINKOPTS)
1165+
ESMF_SO_CLINKOPTSEXE = $(ESMF_SO_CXXLINKOPTSEXE)
10541166

10551167
# - OpenMP compiler and linker flags
10561168
ESMF_OPENMP_F90COMPILEOPTS +=
@@ -1563,6 +1675,13 @@ ifeq ($(ESMF_COMM),mpiuni)
15631675
#TODO: but want to allow external PIO or explicit ESMF_PIO setting for developm. #TODO: Eventually this should become unnecessary.
15641676
ESMF_PIO = OFF
15651677
endif
1678+
ifndef ESMF_NETCDF
1679+
# PIO, starting with version 2, depends on NetCDF. Defaulting to internal needs
1680+
# be turned off if there is no NetCDF available. Externally set PIO will be let
1681+
# through, but will trigger the error down when actually attempting to build
1682+
# PIO internally.
1683+
ESMF_PIO = OFF
1684+
endif
15661685
endif
15671686

15681687
endif
@@ -1571,14 +1690,11 @@ ifeq ($(ESMF_PIO),OFF)
15711690
ESMF_PIO=
15721691
endif
15731692

1574-
ifeq ($(ESMF_PIO),external)
1575-
ifneq ($(origin ESMF_PIO_LIBS), environment)
1576-
ESMF_PIO_LIBS = -lpio
1577-
endif
1578-
endif
1579-
15801693
ifdef ESMF_PIO
15811694
ESMF_CPPFLAGS += -DESMF_PIO=1
1695+
ifneq ($(origin ESMF_PIO_LIBS), environment)
1696+
ESMF_PIO_LIBS = -lpioc
1697+
endif
15821698
ifdef ESMF_PIO_INCLUDE
15831699
ESMF_CXXCOMPILEPATHSTHIRD += -I$(ESMF_PIO_INCLUDE)
15841700
ESMF_F90COMPILEPATHSTHIRD += -I$(ESMF_PIO_INCLUDE)
@@ -1597,13 +1713,6 @@ ESMF_F90LINKRPATHSTHIRD += $(ESMF_F90RPATHPREFIX)$(ESMF_PIO_LIBPATH)
15971713
endif
15981714
endif
15991715

1600-
ifneq ($(ESMF_COMM),mpiuni)
1601-
ifneq ($(ESMF_COMM),mvapich)
1602-
export ESMF_MPIIO = supported
1603-
ESMF_CPPFLAGS += -DESMF_MPIIO
1604-
endif
1605-
endif
1606-
16071716
#-------------------------------------------------------------------------------
16081717
# Proj.4
16091718
#-------------------------------------------------------------------------------

0 commit comments

Comments
 (0)