Skip to content

Commit 8586b9d

Browse files
committed
Merge branch 'release-v4.0'
This merge introduces v4.0 of all MPAS models. * release-v4.0: (198 commits) Fix an issue realted to core_run failing for the ocean model Move computation of invAreaCell field above first call to atm_compute_solve_diagnostics() Remove unused &io namelist options from init_atmosphere and atmosphere Registry.xml files Don't abort if errors occur when computing the MSLP diagnostic Update the code version to 4.0 in the physics table checkout script Change name of default physics suite from 'wrf' to 'mesoscale_reference' Add missing code for 2nd and 4th order vertical advection of 'u' Only write 'restart_timestamp' file from MPI rank 0 Set default surface update interval to 86400 s during initialization Process input streams individually and write a message to the log for each stream that is read Recompute longitude grid increment for Gaussian input data Set any negative soil moisture values to 0.001 Correctly detect non-isobaric data in real-data initialization Fix two LANDSEA masking errors for real-data cases Avoid writing initial diagnostics output file on restart runs Fix intent for output arguments in interface for xml_stream_get_attributes() Remove tab characters from shared infrastructure code Remove tab characters from Fortran code in init_atmosphere and atmosphere cores * In ./physics_wrf/module_ra_rrtmg_lw.F, in subroutine taugb7, corrected line number 6145 Update version number to 4.0 ...
2 parents 23e4678 + 49d125a commit 8586b9d

227 files changed

Lines changed: 14468 additions & 5500 deletions

File tree

Some content is hidden

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

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ src/operators/*.f90
1818

1919
# Executables
2020
*_model
21-
src/registry/parse
2221

2322
# NetCDF Files
2423
*.nc
@@ -54,3 +53,5 @@ stream_list.*
5453
# Intermediate files that may be produced by Intel compilers
5554
*.i
5655
*.i90
56+
57+
src/core_*/inc

Makefile

Lines changed: 75 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,17 @@ xlf:
88
( $(MAKE) all \
99
"FC_PARALLEL = mpxlf90" \
1010
"CC_PARALLEL = mpcc" \
11+
"CXX_PARALLEL = mpixlcxx" \
1112
"FC_SERIAL = xlf90" \
1213
"CC_SERIAL = xlc" \
14+
"CXX_SERIAL = xlcxx" \
1315
"FFLAGS_OPT = -O3 -qrealsize=8" \
1416
"CFLAGS_OPT = -O3" \
17+
"CXXFLAGS_OPT = -O3" \
1518
"LDFLAGS_OPT = -O3" \
1619
"FFLAGS_DEBUG = -O0 -g -C -qrealsize=8" \
1720
"CFLAGS_DEBUG = -O0 -g" \
21+
"CXXFLAGS_DEBUG = -O0 -g" \
1822
"LDFLAGS_DEBUG = -O0 -g" \
1923
"CORE = $(CORE)" \
2024
"DEBUG = $(DEBUG)" \
@@ -25,10 +29,13 @@ ftn:
2529
( $(MAKE) all \
2630
"FC_PARALLEL = ftn" \
2731
"CC_PARALLEL = cc" \
32+
"CXX_PARALLEL = CC" \
2833
"FC_SERIAL = ftn" \
2934
"CC_SERIAL = cc" \
35+
"CXX_SERIAL = CC" \
3036
"FFLAGS_OPT = -i4 -r8 -gopt -O2 -Mvect=nosse -Kieee -convert big_endian" \
3137
"CFLAGS_OPT = -fast" \
38+
"CXXFLAGS_OPT = -fast" \
3239
"LDFLAGS_OPT = " \
3340
"CORE = $(CORE)" \
3441
"DEBUG = $(DEBUG)" \
@@ -53,13 +60,17 @@ pgi:
5360
( $(MAKE) all \
5461
"FC_PARALLEL = mpif90" \
5562
"CC_PARALLEL = mpicc" \
63+
"CXX_PARALLEL = mpicxx" \
5664
"FC_SERIAL = pgf90" \
5765
"CC_SERIAL = pgcc" \
66+
"CXX_SERIAL = pgc++" \
5867
"FFLAGS_OPT = -r8 -O3 -byteswapio -Mfree" \
5968
"CFLAGS_OPT = -O3" \
69+
"CXXFLAGS_OPT = -O3" \
6070
"LDFLAGS_OPT = -O3" \
6171
"FFLAGS_DEBUG = -r8 -O0 -g -Mbounds -Mchkptr -byteswapio -Mfree -Ktrap=divz,fp,inv,ovf -traceback" \
6272
"CFLAGS_DEBUG = -O0 -g -traceback" \
73+
"CXXFLAGS_DEBUG = -O0 -g -traceback" \
6374
"LDFLAGS_DEBUG = -O0 -g -Mbounds -Mchkptr -Ktrap=divz,fp,inv,ovf -traceback" \
6475
"CORE = $(CORE)" \
6576
"DEBUG = $(DEBUG)" \
@@ -70,10 +81,13 @@ pgi-nersc:
7081
( $(MAKE) all \
7182
"FC_PARALLEL = ftn" \
7283
"CC_PARALLEL = cc" \
84+
"CXX_PARALLEL = CC" \
7385
"FC_SERIAL = ftn" \
7486
"CC_SERIAL = cc" \
87+
"CXX_SERIAL = CC" \
7588
"FFLAGS_OPT = -r8 -O3 -byteswapio -Mfree" \
7689
"CFLAGS_OPT = -O3" \
90+
"CXXFLAGS_OPT = -O3" \
7791
"LDFLAGS_OPT = -O3" \
7892
"CORE = $(CORE)" \
7993
"DEBUG = $(DEBUG)" \
@@ -84,10 +98,13 @@ pgi-llnl:
8498
( $(MAKE) all \
8599
"FC_PARALLEL = mpipgf90" \
86100
"CC_PARALLEL = pgcc" \
101+
"CXX_PARALLEL = mpipgcxx" \
87102
"FC_SERIAL = pgf90" \
88103
"CC_SERIAL = pgcc" \
104+
"CXX_SERIAL = pgc++" \
89105
"FFLAGS_OPT = -i4 -r8 -g -O2 -byteswapio" \
90106
"CFLAGS_OPT = -fast" \
107+
"CXXFLAGS_OPT = -fast" \
91108
"LDFLAGS_OPT = " \
92109
"CORE = $(CORE)" \
93110
"DEBUG = $(DEBUG)" \
@@ -98,13 +115,17 @@ ifort:
98115
( $(MAKE) all \
99116
"FC_PARALLEL = mpif90" \
100117
"CC_PARALLEL = mpicc" \
118+
"CXX_PARALLEL = mpicxx" \
101119
"FC_SERIAL = ifort" \
102120
"CC_SERIAL = icc" \
121+
"CXX_SERIAL = icpc" \
103122
"FFLAGS_OPT = -real-size 64 -O3 -convert big_endian -FR" \
104123
"CFLAGS_OPT = -O3" \
124+
"CXXFLAGS_OPT = -O3" \
105125
"LDFLAGS_OPT = -O3" \
106126
"FFLAGS_DEBUG = -real-size 64 -g -convert big_endian -FR -CU -CB -check all -fpe0 -traceback" \
107127
"CFLAGS_DEBUG = -g -fpe0 -traceback" \
128+
"CXXFLAGS_DEBUG = -g -fpe0 -traceback" \
108129
"LDFLAGS_DEBUG = -g -fpe0 -traceback" \
109130
"CORE = $(CORE)" \
110131
"DEBUG = $(DEBUG)" \
@@ -115,13 +136,17 @@ ifort-gcc:
115136
( $(MAKE) all \
116137
"FC_PARALLEL = mpif90" \
117138
"CC_PARALLEL = mpicc" \
139+
"CXX_PARALLEL = mpicxx" \
118140
"FC_SERIAL = ifort" \
119141
"CC_SERIAL = gcc" \
142+
"CXX_SERIAL = g++" \
120143
"FFLAGS_OPT = -real-size 64 -O3 -convert big_endian -FR" \
121144
"CFLAGS_OPT = -O3" \
145+
"CXXFLAGS_OPT = -O3" \
122146
"LDFLAGS_OPT = -O3" \
123147
"FFLAGS_DEBUG = -real-size 64 -g -convert big_endian -FR -CU -CB -check all -fpe0 -traceback" \
124148
"CFLAGS_DEBUG = -g" \
149+
"CXXFLAGS_DEBUG = -g" \
125150
"LDFLAGS_DEBUG = -g -fpe0 -traceback" \
126151
"CORE = $(CORE)" \
127152
"DEBUG = $(DEBUG)" \
@@ -132,30 +157,17 @@ gfortran:
132157
( $(MAKE) all \
133158
"FC_PARALLEL = mpif90" \
134159
"CC_PARALLEL = mpicc" \
160+
"CXX_PARALLEL = mpicxx" \
135161
"FC_SERIAL = gfortran" \
136162
"CC_SERIAL = gcc" \
163+
"CXX_SERIAL = g++" \
137164
"FFLAGS_OPT = -O3 -m64 -ffree-line-length-none -fdefault-real-8 -fdefault-double-8 -fconvert=big-endian -ffree-form" \
138165
"CFLAGS_OPT = -O3 -m64" \
166+
"CXXFLAGS_OPT = -O3 -m64" \
139167
"LDFLAGS_OPT = -O3 -m64" \
140168
"FFLAGS_DEBUG = -g -m64 -ffree-line-length-none -fdefault-real-8 -fdefault-double-8 -fconvert=big-endian -ffree-form -fbounds-check -fbacktrace -ffpe-trap=invalid,zero,overflow" \
141169
"CFLAGS_DEBUG = -g -m64" \
142-
"LDFLAGS_DEBUG = -g -m64" \
143-
"CORE = $(CORE)" \
144-
"DEBUG = $(DEBUG)" \
145-
"USE_PAPI = $(USE_PAPI)" \
146-
"CPPFLAGS = $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE" )
147-
148-
gfortran-openmpi:
149-
( $(MAKE) all \
150-
"FC_PARALLEL = openmpif90" \
151-
"CC_PARALLEL = openmpicc" \
152-
"FC_SERIAL = gfortran" \
153-
"CC_SERIAL = gcc" \
154-
"FFLAGS_OPT = -O3 -m64 -ffree-line-length-none -fdefault-real-8 -fdefault-double-8 -fconvert=big-endian -ffree-form" \
155-
"CFLAGS_OPT = -O3 -m64" \
156-
"LDFLAGS_OPT = -O3 -m64" \
157-
"FFLAGS_DEBUG = -g -m64 -ffree-line-length-none -fdefault-real-8 -fdefault-double-8 -fconvert=big-endian -ffree-form -fbounds-check -fbacktrace -ffpe-trap=invalid,zero,overflow" \
158-
"CFLAGS_DEBUG = -g -m64" \
170+
"CXXFLAGS_DEBUG = -O3 -m64" \
159171
"LDFLAGS_DEBUG = -g -m64" \
160172
"CORE = $(CORE)" \
161173
"DEBUG = $(DEBUG)" \
@@ -166,10 +178,13 @@ g95:
166178
( $(MAKE) all \
167179
"FC_PARALLEL = mpif90" \
168180
"CC_PARALLEL = mpicc" \
181+
"CXX_PARALLEL = mpicxx" \
169182
"FC_SERIAL = g95" \
170183
"CC_SERIAL = gcc" \
184+
"CXX_SERIAL = g++" \
171185
"FFLAGS_OPT = -O3 -ffree-line-length-huge -r8 -fendian=big" \
172186
"CFLAGS_OPT = -O3" \
187+
"CXXFLAGS_OPT = -O3" \
173188
"LDFLAGS_OPT = -O3" \
174189
"CORE = $(CORE)" \
175190
"DEBUG = $(DEBUG)" \
@@ -180,10 +195,13 @@ pathscale-nersc:
180195
( $(MAKE) all \
181196
"FC_PARALLEL = ftn" \
182197
"CC_PARALLEL = cc" \
198+
"CXX_PARALLEL = CC" \
183199
"FC_SERIAL = ftn" \
184200
"CC_SERIAL = cc" \
201+
"CXX_SERIAL = CC" \
185202
"FFLAGS_OPT = -r8 -O3 -freeform -extend-source" \
186203
"CFLAGS_OPT = -O3" \
204+
"CXXFLAGS_OPT = -O3" \
187205
"LDFLAGS_OPT = -O3" \
188206
"CORE = $(CORE)" \
189207
"DEBUG = $(DEBUG)" \
@@ -194,24 +212,52 @@ cray-nersc:
194212
( $(MAKE) all \
195213
"FC_PARALLEL = ftn" \
196214
"CC_PARALLEL = cc" \
215+
"CXX_PARALLEL = CC" \
197216
"FC_SERIAL = ftn" \
198217
"CC_SERIAL = cc" \
218+
"CXX_SERIAL = CC" \
199219
"FFLAGS_OPT = -default64 -O3 -f free" \
200220
"CFLAGS_OPT = -O3" \
221+
"CXXFLAGS_OPT = -O3" \
201222
"LDFLAGS_OPT = -O3" \
202223
"CORE = $(CORE)" \
203224
"DEBUG = $(DEBUG)" \
204225
"USE_PAPI = $(USE_PAPI)" \
205226
"CPPFLAGS = $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE" )
206227

228+
gnu-nersc:
229+
( $(MAKE) all \
230+
"FC_PARALLEL = ftn" \
231+
"CC_PARALLEL = cc" \
232+
"CXX_PARALLEL = CC" \
233+
"FC_SERIAL = ftn" \
234+
"CC_SERIAL = cc" \
235+
"CXX_SERIAL = CC" \
236+
"FFLAGS_OPT = -O3 -m64 -ffree-line-length-none -fdefault-real-8 -fdefault-double-8 -fconvert=big-endian -ffree-form" \
237+
"CFLAGS_OPT = -O3 -m64" \
238+
"CXXFLAGS_OPT = -O3 -m64" \
239+
"LDFLAGS_OPT = -O3 -m64" \
240+
"FFLAGS_DEBUG = -g -m64 -ffree-line-length-none -fdefault-real-8 -fdefault-double-8 -fconvert=big-endian -ffree-form" \
241+
"CFLAGS_DEBUG = -g -m64" \
242+
"CXXFLAGS_DEBUG = -g -m64" \
243+
"LDFLAGS_DEBUG = -g -m64" \
244+
"CORE = $(CORE)" \
245+
"DEBUG = $(DEBUG)" \
246+
"SERIAL = $(SERIAL)" \
247+
"USE_PAPI = $(USE_PAPI)" \
248+
"CPPFLAGS = $(MODEL_FORMULATION) -DUNDERSCORE -D_MPI $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
249+
207250
intel-nersc:
208251
( $(MAKE) all \
209252
"FC_PARALLEL = ftn" \
210253
"CC_PARALLEL = cc" \
254+
"CXX_PARALLEL = CC" \
211255
"FC_SERIAL = ftn" \
212256
"CC_SERIAL = cc" \
257+
"CXX_SERIAL = CC" \
213258
"FFLAGS_OPT = -real-size 64 -O3 -convert big_endian -FR" \
214259
"CFLAGS_OPT = -O3" \
260+
"CXXFLAGS_OPT = -O3" \
215261
"LDFLAGS_OPT = -O3" \
216262
"CORE = $(CORE)" \
217263
"DEBUG = $(DEBUG)" \
@@ -222,13 +268,17 @@ bluegene:
222268
( $(MAKE) all \
223269
"FC_PARALLEL = mpixlf95_r" \
224270
"CC_PARALLEL = mpixlc_r" \
271+
"CXX_PARALLEL = mpixlcxx_r" \
225272
"FC_SERIAL = bgxlf95_r" \
226273
"CC_SERIAL = bgxlc_r" \
274+
"CXX_SERIAL = bgxlc++_r" \
227275
"FFLAGS_OPT = -O2 -g -qrealsize=8" \
228276
"CFLAGS_OPT = -O2 -g" \
277+
"CXXFLAGS_OPT = -O2 -g" \
229278
"LDFLAGS_OPT = -O2 -g" \
230279
"FFLAGS_DEBUG = -O0 -g -C -qinitalloc -qinitauto -qrealsize=8" \
231280
"CFLAGS_DEBUG = -O0 -g" \
281+
"CXXFLAGS_DEBUG = -O0 -g" \
232282
"LDFLAGS_DEBUG = -O0 -g" \
233283
"CORE = $(CORE)" \
234284
"DEBUG = $(DEBUG)" \
@@ -295,11 +345,13 @@ ifeq "$(DEBUG)" "true"
295345
ifndef FFLAGS_DEBUG
296346
FFLAGS=$(FFLAGS_OPT)
297347
CFLAGS=$(CFLAGS_OPT)
348+
CXXFLAGS=$(CXXFLAGS_OPT)
298349
LDFLAGS=$(LDFLAGS_OPT)
299350
DEBUG_MESSAGE="Debug flags are not defined for this compile group. Defaulting to Optimized flags"
300351
else # FFLAGS_DEBUG IF
301352
FFLAGS=$(FFLAGS_DEBUG)
302353
CFLAGS=$(CFLAGS_DEBUG)
354+
CXXFLAGS=$(CXXFLAGS_DEBUG)
303355
LDFLAGS=$(LDFLAGS_DEBUG)
304356
override CPPFLAGS += -DMPAS_DEBUG
305357
DEBUG_MESSAGE="Debugging is on."
@@ -308,12 +360,14 @@ endif # FFLAGS_DEBUG IF
308360
else # DEBUG IF
309361
FFLAGS=$(FFLAGS_OPT)
310362
CFLAGS=$(CFLAGS_OPT)
363+
CXXFLAGS=$(CXXFLAGS_OPT)
311364
LDFLAGS=$(LDFLAGS_OPT)
312365
DEBUG_MESSAGE="Debugging is off."
313366
endif # DEBUG IF
314367

315368
FC=$(FC_PARALLEL)
316369
CC=$(CC_PARALLEL)
370+
CXX=$(CXX_PARALLEL)
317371
SFC=$(FC_SERIAL)
318372
SCC=$(CC_SERIAL)
319373
PARALLEL_MESSAGE="Parallel version is on."
@@ -428,12 +482,14 @@ mpas_main:
428482
ifeq "$(AUTOCLEAN)" "true"
429483
$(RM) .mpas_core_*
430484
endif
431-
cd src; $(MAKE) -j1 FC="$(FC)" \
485+
cd src; $(MAKE) FC="$(FC)" \
432486
CC="$(CC)" \
487+
CXX="$(CXX)" \
433488
SFC="$(SFC)" \
434489
SCC="$(SCC)" \
435490
LINKER="$(LINKER)" \
436491
CFLAGS="$(CFLAGS)" \
492+
CXXFLAGS="$(CXXFLAGS)" \
437493
FFLAGS="$(FFLAGS)" \
438494
LDFLAGS="$(LDFLAGS)" \
439495
RM="$(RM)" \
@@ -450,11 +506,7 @@ endif
450506

451507
@echo "$(EXE_NAME)" > .mpas_core_$(CORE)
452508
if [ -e src/$(EXE_NAME) ]; then mv src/$(EXE_NAME) .; fi
453-
if [ -e src/inc/namelist.$(NAMELIST_SUFFIX).defaults ]; then mv src/inc/namelist.$(NAMELIST_SUFFIX).defaults .; fi
454-
if [ ! -e namelist.$(NAMELIST_SUFFIX) ]; then cp namelist.$(NAMELIST_SUFFIX).defaults namelist.$(NAMELIST_SUFFIX); fi
455-
if [ -e src/inc/streams.$(NAMELIST_SUFFIX).defaults ]; then mv src/inc/streams.$(NAMELIST_SUFFIX).defaults .; fi
456-
if [ ! -e streams.$(NAMELIST_SUFFIX) ]; then cp streams.$(NAMELIST_SUFFIX).defaults streams.$(NAMELIST_SUFFIX); fi
457-
for f in `find src/inc -name "stream_list.*"`; do mv $$f .; done
509+
( cd src/core_$(CORE); $(MAKE) ROOT_DIR="$(PWD)" post_build )
458510
@echo "*******************************************************************************"
459511
@echo $(DEBUG_MESSAGE)
460512
@echo $(PARALLEL_MESSAGE)
@@ -464,8 +516,6 @@ ifeq "$(AUTOCLEAN)" "true"
464516
@echo $(AUTOCLEAN_MESSAGE)
465517
endif
466518
@echo $(GEN_F90_MESSAGE)
467-
@echo $(NAMELIST_MESSAGE)
468-
@echo $(STREAM_MESSAGE)
469519
@echo "*******************************************************************************"
470520
clean:
471521
cd src; $(MAKE) clean RM="$(RM)" CORE="$(CORE)"

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
MPAS-v3.3
1+
MPAS-v4.0
22
====
33

44
The Model for Prediction Across Scales (MPAS) is a collaborative project for

0 commit comments

Comments
 (0)