Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add SCHISM submodule and build files #44

Merged
106 commits merged into from
Mar 30, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
e02a257
add PaHM as submodule
zacharyburnett May 24, 2021
d0b7a95
add SCHISM submodules
zacharyburnett Jun 3, 2021
bc661fa
Test ground for the inclusion of SCHISM into the NEMS application
pvelissariou1 Jun 3, 2021
ee113af
Added infrastructure for platiform macports
Jun 3, 2021
26c38d6
update submodules
zacharyburnett Jun 3, 2021
4876859
update README.md
zacharyburnett Jun 3, 2021
f8cb68a
Merge pull request #43 from zacharyburnettNOAA/master
zacharyburnett Jun 3, 2021
8d43b56
update submodules (after pushing)
zacharyburnett Jun 4, 2021
1677976
update submodules after amending
zacharyburnett Jun 4, 2021
a203ac6
update submodules after merging / amending
zacharyburnett Jun 4, 2021
037593a
removed `schism-esmf` submodule
zacharyburnett Jun 4, 2021
4cf1ed2
update schism-esmf
zacharyburnett Jun 4, 2021
3d085cd
Merge branch 'master' into feature/schism
zacharyburnett Jun 14, 2021
118f71b
update modulefile for Orion
zacharyburnett Jun 14, 2021
7e21fdd
updated SCHISM submodule pointer to master branch
zacharyburnett Jun 14, 2021
016dbaa
added cmake to some modulefiles
zacharyburnett Jun 14, 2021
67a4dd7
reorder
zacharyburnett Jun 14, 2021
ba4a369
update `schism-esmf` location in `SCHISM`
zacharyburnett Jun 15, 2021
2b2705f
changes to modulefiles
zacharyburnett Jun 21, 2021
338a770
updated modules for Orion
zacharyburnett Jun 21, 2021
7cc5d32
updated PaHM submodule to point to newest commit + changed name to PAHM
zacharyburnett Jun 21, 2021
6bbf65a
Merge branch 'feature/pahm' of https://github.com/noaa-ocs-modeling/A…
pvelissariou1 Jun 24, 2021
fa468b0
updated PaHM sources to include the nuopc folder
pvelissariou1 Jun 24, 2021
ebefcd3
update modulefile to use stable parallel ESMF build
zacharyburnett Jun 24, 2021
e62388e
modules are under emc-nemspara
zacharyburnett Jun 24, 2021
32d79c1
updated build scripts to fix compilation errors
pvelissariou1 Jun 25, 2021
46027d7
added nuopc/Makefile.in and modified distclean.cmake to not delete th…
pvelissariou1 Jun 25, 2021
4899405
Merge branch 'feature/pahm' of https://github.com/noaa-ocs-modeling/A…
pvelissariou1 Jun 25, 2021
b61a7e6
modified the work/cmprflags.mk file for intel
pvelissariou1 Jun 25, 2021
20ac0ba
updated the modulefiles/* files to be more general and mofified the f…
pvelissariou1 Jun 27, 2021
3362622
Merge branch 'feature/pahm' of https://github.com/noaa-ocs-modeling/A…
pvelissariou1 Jun 27, 2021
2fe527f
fixed the bug for use_defaults
pvelissariou1 Jun 27, 2021
7835b24
fixed conf/configure.nems* files to set the NETCDF libraries properly
pvelissariou1 Jun 27, 2021
cf18918
fixed orion compiling issues
pvelissariou1 Jun 27, 2021
1f2acab
fixed MACHINE_ID variables
pvelissariou1 Jun 27, 2021
0109000
switched the hera and orion environment modulefiles to theis sys state
pvelissariou1 Jun 27, 2021
0232903
commended out the LICENSE line in the orion cmake file
pvelissariou1 Jun 27, 2021
d5006be
updated submodule
zacharyburnett Jun 28, 2021
b71f5a3
Merge branch 'feature/pahm'
zacharyburnett Jun 28, 2021
dc59ca3
update submodule
zacharyburnett Jun 28, 2021
4d03361
fixed the missing nemsio issue
pvelissariou1 Jun 29, 2021
ff5ee32
deleted the old build scripts
pvelissariou1 Jun 29, 2021
a7b2ef0
updated the modulefile for intel in orion
pvelissariou1 Jun 29, 2021
6e051bc
updated the build and function scripts
pvelissariou1 Jun 29, 2021
753b95f
modified the build script to find the functions_build file; in some s…
pvelissariou1 Jun 29, 2021
f15e3cf
modified PAHM build scripts
pvelissariou1 Jun 29, 2021
5f9211e
updates PaHM build scripts
pvelissariou1 Jun 29, 2021
0b8687d
update modules
zacharyburnett Jun 29, 2021
6182a70
updated submodules
zacharyburnett Jun 29, 2021
31d39ae
fixed the build script to allow the user to define customized names f…
pvelissariou1 Jun 29, 2021
7e9e395
Merge branch 'feature/pahm' of https://github.com/noaa-ocs-modeling/A…
pvelissariou1 Jun 29, 2021
6eec406
fixed functions_build to remove NEMS/exe/NEMS*.x if requested
pvelissariou1 Jun 30, 2021
d4ab5ab
modified component_ADCIRC.mk so distclean cleans properly the nuopc …
pvelissariou1 Jun 30, 2021
6cd4aac
updated submodule
zacharyburnett Jun 30, 2021
0f41daa
Added environment file for femto/intel (#52)
platipodium Jun 30, 2021
7be503f
updated ESMF to latest parallel build
zacharyburnett Jun 30, 2021
df4570e
Merge remote-tracking branch 'origin/fix/esmf' into feature/pahm
zacharyburnett Jun 30, 2021
1cd93e4
updated the envmodules_*.linux files to load the proper modules
pvelissariou1 Jul 1, 2021
e68ce42
Merge branch 'feature/pahm' of https://github.com/noaa-ocs-modeling/A…
pvelissariou1 Jul 1, 2021
33c172b
fixed the gnu configure file to include the correct compilers and com…
pvelissariou1 Jul 1, 2021
a9e3b6a
fixed make_nuopc.sh to set the compiler variable correctly
pvelissariou1 Jul 1, 2021
4b00454
minor fix of module_EARTH_GRID_COMP.F90 line 2956 to comile with gfor…
pvelissariou1 Jul 1, 2021
8c065d8
fix module_EARTH_GRID_COMP.F90 to compile with gfortran
pvelissariou1 Jul 1, 2021
17d50cb
fix component_ADCIRC.mk to pass the correct compiler option to make_n…
pvelissariou1 Jul 1, 2021
d2e0a24
Merge branch 'feature/pahm' into feature/schism
zacharyburnett Jul 1, 2021
f81ff3d
updated submodules
zacharyburnett Jul 1, 2021
5323965
Support Mac gnu compiler options (#67)
platipodium Jul 2, 2021
e7ec7df
updated ADCIRC to cherry-pick .gitignore organization
zacharyburnett Jul 7, 2021
b3a22cb
make build script executable
zacharyburnett Jul 12, 2021
a0f7529
updated pointer for filename rename
zacharyburnett Jul 13, 2021
daf2fa8
Merge branch 'master' into feature/schism
zacharyburnett Jul 21, 2021
3363c7a
resolved merge conflict
platipodium Sep 28, 2021
994383c
change name to `CoastalApp`
zacharyburnett Jul 9, 2021
fef99e2
updated strand configuration for CoastalApp
platipodium Nov 3, 2021
8c1e0d7
Merge pull request #84 from schism-dev/feature/schism
zacharyburnett Nov 8, 2021
45ab514
Added configure.nems.femto.intel to repo
platipodium Nov 18, 2021
1f69ab7
Added configure.nems.strand.intel
platipodium Nov 18, 2021
baabd7e
Set NETCDF variable for strand/intel
platipodium Nov 18, 2021
acf11b0
update pointer to the latest SCHISM commit
zacharyburnett Dec 3, 2021
f67ac5c
resolve conflicts between `feature/schism` and `master`
zacharyburnett Dec 3, 2021
3218006
Merge branch 'feature/schism' into feature/schism
zacharyburnett Dec 6, 2021
c9a85a6
On `feature/schism` Added configure.nems.femto.intel to repo (#87)
platipodium Dec 6, 2021
756dd6a
Merge branch 'noaa-ocs-modeling:feature/schism' into feature/schism
platipodium Dec 6, 2021
8ec9c62
Merge branch 'master' into feature/schism
zacharyburnett Dec 29, 2021
358cebc
added PaHM submodule
zacharyburnett Dec 29, 2021
1f2f97d
Merge pull request #91 from schism-dev/feature/schism
zacharyburnett Dec 29, 2021
ac1210a
updated pointers for PaHM and NEMS
zacharyburnett Dec 29, 2021
f55acc1
updated NEMS pointer
zacharyburnett Dec 29, 2021
453c106
updated pointers
zacharyburnett Dec 29, 2021
628a7d6
added submodule pointer to `schism-esmf` on the toplevel
zacharyburnett Dec 29, 2021
b96d867
updated SCHISM-ESMF submodule
zacharyburnett Dec 29, 2021
adbd07d
updated SCHISM-ESMF submodule
zacharyburnett Dec 29, 2021
ab60be1
removed submodules
zacharyburnett Dec 29, 2021
3412e6c
changed SCHISM submodule to point to schism-esmf
zacharyburnett Dec 29, 2021
1b9ae90
updated SCHISM submodule to fix URL
zacharyburnett Dec 29, 2021
8b2bb8a
Fixed netcdf c libs on mistral
platipodium Jan 1, 2022
8fa62f4
remove submodule
zacharyburnett Jan 6, 2022
baaae0f
moved SCHISM submodules into shared SCHISM folder in root directory
zacharyburnett Jan 6, 2022
2a72704
Merge branch 'noaa-ocs-modeling:feature/schism' into feature/schism
platipodium Jan 7, 2022
4aaaf84
Disable error checking on gnu/macosx
platipodium Jan 7, 2022
f73b74f
Ignore build directory in SCHISM subdir
platipodium Jan 7, 2022
7df479b
Updated pointer to SCHISM/schism-esmf
platipodium Jan 7, 2022
7e3a45b
Merge pull request #94 from schism-dev/feature/schism
zacharyburnett Jan 8, 2022
90580a2
updated SCHISM and SCHISM-ESMF submodules to point to new multicore code
zacharyburnett Feb 18, 2022
a559471
Added draft envmodules files for levante (#104)
zacharyburnett Mar 27, 2022
b0ca67a
Merge branch 'develop' into feature/schism
zacharyburnett Mar 28, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,9 @@
[submodule "BARDATA"]
path = BARDATA
url = https://github.com/noaa-ocs-modeling/BARDATA
[submodule "SCHISM/schism"]
path = SCHISM/schism
url = https://github.com/schism-dev/schism.git
[submodule "SCHISM/schism-esmf"]
path = SCHISM/schism-esmf
url = https://github.com/schism-dev/schism-esmf.git
2 changes: 1 addition & 1 deletion ADCIRC
2 changes: 1 addition & 1 deletion NEMS
113 changes: 91 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,41 @@
[![build](https://github.com/noaa-ocs-modeling/ADC-WW3-NWM-NEMS/workflows/build/badge.svg)](https://github.com/noaa-ocs-modeling/ADC-WW3-NWM-NEMS/actions?query=workflow%3Abuild)
[![license](https://img.shields.io/github/license/noaa-ocs-modeling/ADC-WW3-NWM-NEMS)](https://creativecommons.org/share-your-work/public-domain/cc0)

ESMF application for building a NUOPC / NEMS application coupling ADCIRC, ATMESH, WW3 / WW3DATA, and NWM.
ESMF application for building a NUOPC / NEMS application coupling
circulation models (ADCIRC, SCHISM) with forcing models (WW3, NWM) or
even file forcings (ATMESH, WW3DATA).

`CoastalApp` is an ESMF application developed as part of the Coastal Act coupling project to determine wind versus water percentage loss caused by a Named Storm Event.
`ADC-WW3-NWM-NEMS` is an ESMF application developed as part of the
Coastal Act coupling project to determine wind versus water percentage
loss caused by a Named Storm Event.

```bash
git clone --recursive https://github.com/noaa-ocs-modeling/CoastalApp
cd CoastalApp
```

## Requirements

#### installing ParMETIS for WW3

Using unstructured WW3 requires an installation of ParMETIS for domain
decomposition.

1. [download the code here](http://glaros.dtc.umn.edu/gkhome/metis/parmetis/download)
2. build ParMETIS
```bash
module purge
module load intel impi
setenv CFLAGS -fPIC
make config cc=mpiicc cxx=mpiicc prefix=/path/to/your/parmetis/ | & tee config.out-rr
make install | & tee make-install.out-rr
```
This adds `libparmetis.a`
under `/path/to/your/parmetis/lib/libparmetis.a`.
3. set the path to ParMETIS
```bash
setenv METIS_PATH /path/to/your/parmetis
```
## Organization / Responsibility

#### `NEMS` application implementing ESMF / NUOPC coupling
Expand Down Expand Up @@ -50,15 +76,39 @@ cd CoastalApp

## Compilation

This section contains some generic instructions of how to build the NEMS
application. The contents of this section will change soon.

```bash
./build.sh --help
```

The following example builds `NEMS.x` with ADCIRC, ATMESH, and WW3DATA,
using variables / modules from the Hera environment, compiling with the
Intel compiler, and cleaning before building.

```bash
./build.sh --component "ADCIRC ATMESH WW3DATA" --plat hera --compiler intel --clean -2
```

### Components

- `--component` can be any combination of
- `ADCIRC`
- `ATMESH`
- `WW3` / `WW3DATA`
- `NWM`

```bash
./build.sh --component "ADCIRC WW3" --plat hera --compiler intel --clean -2
```

```bash
./build.sh --component "SCHISM" --plat orion --compiler intel --clean -2
```

### Platforms

- `--plat` can be one of
- `hera`
- `stampede`
Expand All @@ -69,43 +119,62 @@ cd CoastalApp
- `cheyenne`
- `linux`
- `macosx`
- `macports`

For MacOS running MacPorts, use the `macports` option.

```bash
./build.sh --component "SCHISM" --plat hera --compiler intel --clean -2
```

```bash
./build.sh --component "SCHISM" --plat orion --compiler intel --clean -2
```

### Compiler

- `--compiler` can be one of
- `intel`
- `gnu`
- `pgi`

```bash
./build.sh --component "SCHISM" --compiler gnu --plat macports
```

```bash
./build.sh --component "SCHISM" --compiler intel --plat hera
```

### Clean

- `--clean` is optional, and can be one of
- ` ` (`make clean` and exit)
- `1` (`make clean` and exit)
- `2` (`make clobber` and exit)
- `-1` (`make clean` and build)
- `-2` (`make clobber` and build)

#### adding a new platform / compiler to compilation script
```bash
./build.sh --component "SCHISM" --compiler intel --plat hera --clean
```

Environment files are stored in `modulefiles/` with the filename `envmodules_<COMPILER>.<PLATFORM>`
```bash
./build.sh --component "SCHISM" --compiler intel --plat hera --clean -1
```

To compile in your own system you should create a similar file, then run `build.sh` to compile.
## Contributing

## Requirements
Feel free to fork this repository and create a pull request with
contributions.

#### installing ParMETIS for WW3
#### adding a new platform / compiler to compilation script

Using unstructured WW3 requires an installation of ParMETIS for domain decomposition.
Environment files are stored in `modulefiles/` with the
filename `envmodules_<COMPILER>.<PLATFORM>`

1. [download the code here](http://glaros.dtc.umn.edu/gkhome/metis/parmetis/download)
2. build ParMETIS
```bash
module purge
module load intel impi
setenv CFLAGS -fPIC
make config cc=mpiicc cxx=mpiicc prefix=/path/to/your/parmetis/ | & tee config.out-rr
make install | & tee make-install.out-rr
```
This adds `libparmetis.a` under `/path/to/your/parmetis/lib/libparmetis.a`.
3. set the path to ParMETIS
```bash
setenv METIS_PATH /path/to/your/parmetis
```
To compile in your own system you should create a similar file, then
run `build.sh` to compile.

## Collaboration

Expand Down
1 change: 1 addition & 0 deletions SCHISM/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
build
1 change: 1 addition & 0 deletions SCHISM/schism
Submodule schism added at 1e25ca
1 change: 1 addition & 0 deletions SCHISM/schism-esmf
Submodule schism-esmf added at 92d1af
56 changes: 56 additions & 0 deletions conf/configure.nems.femto.intel
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
## NEMS configuration file
##
## Platform: Hera
## Compiler: Intel with IntelMPI

SHELL = /bin/sh

################################################################################
## Include the common configuration parts
include $(TOP)/conf/configure.nems.NUOPC

################################################################################
## Other settings

NETCDF_INC = -I$(NETCDF)/include
NETCDF_LIB = -L$(NETCDF)/lib -lnetcdf

NEMSIO_INC = -I${LIBDIR}/incmod/nemsio
NEMSIO_LIB = -L${LIBDIR} -lnemsio
SYS_LIB =

EXTLIBS = $(NEMSIO_LIB) \
$(NETCDF_LIB) \
$(ESMF_LIB) \
$(SYS_LIB) -lm

EXTLIBS_POST = $(NEMSIO_LIB) \
$(ESMF_LIB) \
$(NETCDF_LIB) \
$(SYS_LIB)
###
FC = mpifort -g -qopenmp -mkl=sequential -align array32byte -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lpthread -qopenmp -convert big_endian -assume byterecl -mkl=sequential
F77 = mpifort -g -qopenmp -mkl=sequential -align array32byte -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lpthread -qopenmp -convert big_endian -assume byterecl -mkl=sequential
FREE = -free
FIXED = -fixed
R8 = -r8

FINCS = $(ESMF_INC) $(NEMSIO_INC) $(NETCDF_INC)
#TRAPS = -g -fno-inline -no-ip -traceback -ftrapuv -fpe0 -ftz -check all -check noarg_temp_created -fp-stack-check

FFLAGS = $(TRAPS) $(FINCS) -fp-model strict

OPTS_NMM = -g -fno-inline -no-ip -traceback -ftrapuv -fpe0 -ftz -check all -check noarg_temp_created -fp-stack-check $(FREE)

FFLAGM_DEBUG =

FFLAGS_NMM = $(MACROS_NWM) $(OPTS_NMM) $(FFLAGS)

FPP = -fpp
CPP = cpp -P -traditional
CPPFLAGS = -DENABLE_SMP -DCHNK_RRTM=8

AR = ar
ARFLAGS = -r

RM = rm
60 changes: 60 additions & 0 deletions conf/configure.nems.macosx.gnu
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
## NEMS configuration file
##
## Platform: Generic/Linux
## Compiler: GNU with MPI --- needs fixing

SHELL = /bin/sh

################################################################################
## Include the common configuration parts
include $(TOP)/conf/configure.nems.NUOPC

################################################################################
## Other settings
#
CC=mpicc
CXX=mpicxx
FC=mpifort

NETCDF_INC = -I$(NETCDF_INCDIR)
NETCDF_LIB = -L$(NETCDF_LIBDIR) -lnetcdf

NEMSIO_INC = -I${LIBDIR}/incmod/nemsio
NEMSIO_LIB = -L${LIBDIR} -lnemsio
SYS_LIB =

EXTLIBS = $(NEMSIO_LIB) \
$(NETCDF_LIB) \
$(ESMF_LIB) \
$(SYS_LIB) -lm

EXTLIBS_POST = $(NEMSIO_LIB) \
$(ESMF_LIB) \
$(NETCDF_LIB) \
$(SYS_LIB)
###
FC = mpifort -g -ffree-line-length-none -fno-range-check -fbacktrace
F77 = mpifort -g -ffree-line-length-none -fno-range-check -fbacktrace
FREE = -free
FIXED = -fixed
R8 = -r8

FINCS = $(ESMF_INC) $(NEMSIO_INC) $(NETCDF_INC)
#TRAPS = ???

FFLAGS = $(TRAPS) $(FINCS)

OPTS_NMM = -g -ffree-line-length-none -fno-range-check -fbacktrace $(FREE)

FFLAGM_DEBUG =

FFLAGS_NMM = $(MACROS_NWM) $(OPTS_NMM) $(FFLAGS)

FPP = -fpp
CPP = cpp -P -traditional
CPPFLAGS = -DENABLE_SMP -DCHNK_RRTM=8

AR = ar
ARFLAGS = -r

RM = rm
60 changes: 60 additions & 0 deletions conf/configure.nems.macports.gnu
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
## NEMS configuration file
##
## Platform: Generic/Linux
## Compiler: GNU with MPI --- needs fixing

SHELL = /bin/sh

################################################################################
## Include the common configuration parts
include $(TOP)/conf/configure.nems.NUOPC

################################################################################
## Other settings
#
CC=mpicc
CXX=mpicxx
FC=mpifort

NETCDF_INC = -I$(NETCDF_INCDIR)
NETCDF_LIB = -L$(NETCDF_LIBDIR) -lnetcdf

NEMSIO_INC = -I${LIBDIR}/incmod/nemsio
NEMSIO_LIB = -L${LIBDIR} -lnemsio
SYS_LIB =

EXTLIBS = $(NEMSIO_LIB) \
$(NETCDF_LIB) \
$(ESMF_LIB) \
$(SYS_LIB) -lm

EXTLIBS_POST = $(NEMSIO_LIB) \
$(ESMF_LIB) \
$(NETCDF_LIB) \
$(SYS_LIB)
###
FC = mpifort -g -ffree-line-length-none -fno-range-check -fbacktrace -fallow-argument-mismatch
F77 = mpifort -g -ffree-line-length-none -fno-range-check -fbacktrace
FREE = -free
FIXED = -fixed
R8 = -r8

FINCS = $(ESMF_INC) $(NEMSIO_INC) $(NETCDF_INC)
#TRAPS = ???

FFLAGS = $(TRAPS) $(FINCS)

OPTS_NMM = -g -ffree-line-length-none -fno-range-check -fbacktrace $(FREE)

FFLAGM_DEBUG =

FFLAGS_NMM = $(MACROS_NWM) $(OPTS_NMM) $(FFLAGS)

FPP = -fpp
CPP = cpp -P -traditional
CPPFLAGS = -DENABLE_SMP -DCHNK_RRTM=8

AR = ar
ARFLAGS = -r

RM = rm
Loading