Skip to content

Commit

Permalink
Merge pull request #20 from noaa-ocs-modeling/feature/adcirc_v55
Browse files Browse the repository at this point in the history
ADCIRC v55
  • Loading branch information
saeed-moghimi-noaa committed May 14, 2021
2 parents 1a18cce + fa8c331 commit 4b7dafe
Show file tree
Hide file tree
Showing 66 changed files with 3,864 additions and 247 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,13 @@
*.a
*.lib

# intermediate build files
*_INSTALL/

# Executables
*.exe
*.out
*.app

# Editor
.idea
12 changes: 6 additions & 6 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
[submodule "ATMESH"]
path = ATMESH
url = https://github.com/moghimis/ATMESH
url = https://github.com/noaa-ocs-modeling/ATMESH.git
branch = master
[submodule "WW3DATA"]
path = WW3DATA
url = https://github.com/moghimis/WW3DATA
url = https://github.com/noaa-ocs-modeling/WW3DATA.git
branch = master
[submodule "WW3"]
path = WW3
url = https://github.com/awest-noaa/WW3.git
url = https://github.com/noaa-ocs-modeling/WW3.git
branch = nuopc_unstruc
[submodule "NEMS"]
path = NEMS
url = https://github.com/moghimis/NEMS
url = https://github.com/noaa-ocs-modeling/NEMS.git
branch = develop
[submodule "ADCIRC"]
path = ADCIRC
url = https://github.com/moghimis/adcirc-cg.git
url = https://github.com/adcirc/adcirc-cg.git
branch = master
[submodule "NWM"]
path = NWM
url = https://github.com/trimbleava/nwm_public_nuopc.git
url = https://github.com/noaa-ocs-modeling/nwm_public_nuopc.git
branch = master
2 changes: 1 addition & 1 deletion ADCIRC
2 changes: 1 addition & 1 deletion ATMESH
Submodule ATMESH updated 3 files
+116 −0 LICENSE
+5 −0 README.md
+2 −2 makefile.atmesh.nuopc
3 changes: 2 additions & 1 deletion HOWTO
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
Modified: Panagiotis Velissariou - 12/05/2020

==================================
Coastal Act Team - 9/13/2019

Expand Down Expand Up @@ -591,7 +593,6 @@ build_NWM: $(nwm_mk)


env_file=$(NWM_SRCDIR)/setEnvar.sh
esmf_env=$(NWM_SRCDIR)/esmf-impi-env.sh
comp_opt=3

# HOW to source env here??
Expand Down
2 changes: 1 addition & 1 deletion NWM
Submodule NWM updated 47 files
+4 −1 trunk/NDHMS/CMakeLists.txt
+3 −3 trunk/NDHMS/CPL/CLM_cpl/Makefile
+1 −1 trunk/NDHMS/CPL/CLM_cpl/bat2.csh
+1 −1 trunk/NDHMS/CPL/CLM_cpl/cesm_cpl_compiling.csh
+2 −2 trunk/NDHMS/CPL/LIS_cpl/Makefile
+3 −1 trunk/NDHMS/CPL/NUOPC_cpl/CMakeLists.txt
+2 −2 trunk/NDHMS/CPL/NUOPC_cpl/Makefile
+2 −2 trunk/NDHMS/CPL/NUOPC_cpl/Makefile.IO_code.nuopc
+2 −2 trunk/NDHMS/CPL/NUOPC_cpl/Makefile.mainApp
+3 −12 trunk/NDHMS/CPL/NUOPC_cpl/Readme.NWM
+8 −22 trunk/NDHMS/CPL/NUOPC_cpl/Readme.mainApp
+2 −1 trunk/NDHMS/CPL/NUOPC_cpl/Readme.nuopc
+1 −1 trunk/NDHMS/CPL/NoahMP_cpl/Makefile
+1 −1 trunk/NDHMS/CPL/Noah_cpl/Makefile
+1 −1 trunk/NDHMS/CPL/WRF_cpl/Makefile
+1 −1 trunk/NDHMS/Land_models/Noah/Run/Makefile
+2 −2 trunk/NDHMS/Land_models/Noah/user_build_options
+1 −1 trunk/NDHMS/Land_models/Noah/user_build_options.bak
+2 −2 trunk/NDHMS/Land_models/Noah/user_build_options.gfort
+3 −3 trunk/NDHMS/Land_models/NoahMP/IO_code/Makefile
+2 −2 trunk/NDHMS/Land_models/NoahMP/IO_code/Makefile.IO_code.nuopc
+1 −1 trunk/NDHMS/Land_models/NoahMP/hydro/Makefile_run
+1 −1 trunk/NDHMS/Land_models/NoahMP/hydro/user_build_options.bak
+1 −1 trunk/NDHMS/Land_models/NoahMP/run/Makefile
+3 −3 trunk/NDHMS/Land_models/NoahMP/user_build_options
+2 −2 trunk/NDHMS/Rapid_routing/makefile
+229 −0 trunk/NDHMS/Rapid_routing/makefile-orig
+2 −2 trunk/NDHMS/Rapid_routing/makefile.cpl
+1 −0 trunk/NDHMS/Readme.beheen
+1 −1 trunk/NDHMS/Routing/Reservoirs/Level_Pool/Makefile
+1 −1 trunk/NDHMS/Routing/Reservoirs/Makefile
+1 −1 trunk/NDHMS/Routing/Reservoirs/Persistence_Level_Pool_Hybrid/Makefile
+1 −1 trunk/NDHMS/Routing/Reservoirs/RFC_Forecasts/Makefile
+1 −1 trunk/NDHMS/Routing/Subsurface/Makefile
+1 −1 trunk/NDHMS/arc/macros.mpp.IBM.xlf90_r
+2 −2 trunk/NDHMS/arc/macros.mpp.ifort
+3 −3 trunk/NDHMS/arc/macros.mpp.ifort.luna
+2 −2 trunk/NDHMS/arc/macros.mpp.ifort.omp
+2 −2 trunk/NDHMS/arc/macros.mpp.ifort.summit_has
+3 −3 trunk/NDHMS/arc/macros.mpp.intel.cray_xc
+1 −1 trunk/NDHMS/arc/macros.mpp.linux
+1 −1 trunk/NDHMS/arc/macros.mpp.mpiifort
+1 −1 trunk/NDHMS/arc/macros.seq.IBM.xlf90_r
+2 −2 trunk/NDHMS/arc/macros.seq.ifort
+2 −2 trunk/NDHMS/arc/macros.seq.linux
+128 −74 trunk/NDHMS/compile_nuopc_NoahMP.sh
+127 −0 trunk/NDHMS/compile_nuopc_NoahMP.sh-orig
203 changes: 110 additions & 93 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,101 +1,118 @@
## ADC-WW3-NWM-NEMS

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.

## Cloning
git clone --recursive https://github.com/noaa-ocs-modeling/ADC-WW3-NWM-NEMS.git
# ADC-WW3-NWM-NEMS

ESMF application for building a NUOPC / NEMS application coupling ADCIRC, ATMESH, WW3 / WW3DATA, and NWM.

`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/ADC-WW3-NWM-NEMS
cd ADC-WW3-NWM-NEMS
```

## Compilation

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

- `--component` can be any combination of
- `ADCIRC`
- `ATMESH`
- `WW3` / `WW3DATA`
- `NWM`
- `--plat` can be any combination of
- `hera`
- `stampede`
- `wcoss`
- `orion`
- `jet`
- `gaea`
- `cheyenne`
- `linux`
- `macosx`
- `--compiler` can be one of
- `intel`
- `gnu`
- `pgi`
- `--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

Environment files are stored in `modulefiles/` with the filename `envmodules_<COMPILER>.<PLATFORM>`

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

## Requirements

### Install ParMETIS

Unstructured WW3 requires an installation of ParMETIS for domain decomposition. Download the code from this [link](http://glaros.dtc.umn.edu/gkhome/metis/parmetis/download)

To build ParMETIS:

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`

Set the path to ParMETIS:

setenv METIS_PATH /path/to/your/parmetis

### Set module files based on your HPC

For a list of additional requirements and versions, see:

modulefiles/hera/ESMF_NUOPC


## Compile

Set the following environment variable:

- `ROOTDIR`: The directory of your choice where the repository has been cloned

In the build script `build.sh`, select desired components for which to build the app, e.g.:

make -f GNUmakefile build COMPONENTS="ADCIRC WW3 ATMESH"

Execute the build script:

./build.sh

#### 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
```

## Collaboration

To collaborate and contribute to this repository follow below instructions:

While in github GUI, https://github.com/noaa-ocs-modeling/ADC-WW3-NWM-NEMS.git:

1) Hit the "Fork" button located on the upper right corner of the GUI in order
to have your own copy of this repository into your own github repository.
2) Your github username displays with a message "Where should we fork ..." .
Click on your username to fork it into your account.
3) You should see the source codes in your own github repository with the same
name as the forked reopsitory.

Next you should create your local version of your forked repository.
Go to your local directoy and clone the the repository:

1) git clone --recursive https://github.com/<your_github_repo_name>/ADC-WW3-NWM-NEMS
2) do your collaboration edition and when finished
3) git add .
4) git commit -m "describe what you changed"
5) git push origin master - to push your changes into your github
6) enter your github username/password if asked

While in your github repository GUI:

1) push the "New pull request" button
2) hit the "Create pull request" button
3) the request goes to originated repository, where your changes are reviewed and
merged or rejected.

### Setup and compilation

This application contains a module file tailored for the intended computer system.
To compile in your own system you should create a similar file. The setup module
file, is located at modulefile/hera/ESMF_NUOPC. Also, for your convenience there
is a "HOWTO" that explains in detail about the usage of this application.


## Cite

Moghimi, S.; Van der Westhuysen, A.; Abdolali, A.; Myers, E.; Vinogradov, S.; Ma, Z.; Liu, F.; Mehra, A.; Kurkowski, N. Development of an ESMF Based Flexible Coupling Application of ADCIRC and WAVEWATCH III for High Fidelity Coastal Inundation Studies. J. Mar. Sci. Eng. 2020, 8, 308. https://doi.org/10.3390/jmse8050308

Development of a Flexible Coupling Framework for Coastal Inundation Studies, 2020 S Moghimi, A van der Westhuysen, A Abdolali, E Myers, S Vinogradov
https://arxiv.org/abs/2003.12652

Development of a Flexible Coupling Interface for ADCIRC Model for Coastal Inundation Studies, 2019 Saeed Moghimi, Sergey Vinogradov, Edward P Myers, Yuji Funakoshi, Andre J Van der Westhuysen, Ali Abdolali, Zaizhong Ma, Fei Liu https://repository.library.noaa.gov/view/noaa/20609/
1. go to https://github.com/noaa-ocs-modeling/ADC-WW3-NWM-NEMS
2. create a fork (click `Fork` on the upper right corner), and fork to your account.
3. clone your forked repository
```bash
git clone --recursive https://github.com/<ACCOUNT>/ADC-WW3-NWM-NEMS
```
4. edit the files locally
```bash
git status
```
5. commit changes
```bash
git commit -a -m "describe what you changed"
```
6. push your changes to GitHub
```bash
git push
```
7. enter your GitHub username/password if asked
8. create a pull request with descriptions of changes at
```
https://github.com/noaa-ocs-modeling/ADC-WW3-NWM-NEMS/compare/<BRANCH>...<ACCOUNT>:<BRANCH>
```

## Citations

```
Moghimi, S., Van der Westhuysen, A., Abdolali, A., Myers, E., Vinogradov, S.,
Ma, Z., Liu, F., Mehra, A., & Kurkowski, N. (2020). Development of an ESMF
Based Flexible Coupling Application of ADCIRC and WAVEWATCH III for High
Fidelity Coastal Inundation Studies. Journal of Marine Science and
Engineering, 8(5), 308. https://doi.org/10.3390/jmse8050308
Moghimi, S., Vinogradov, S., Myers, E. P., Funakoshi, Y., Van der Westhuysen,
A. J., Abdolali, A., Ma, Z., & Liu, F. (2019). Development of a Flexible
Coupling Interface for ADCIRC model for Coastal Inundation Studies. NOAA
Technical Memorandum, NOS CS(41).
https://repository.library.noaa.gov/view/noaa/20609/
Moghimi, S., Westhuysen, A., Abdolali, A., Myers, E., Vinogradov, S., Ma, Z.,
Liu, F., Mehra, A., & Kurkowski, N. (2020). Development of a Flexible
Coupling Framework for Coastal Inundation Studies.
https://arxiv.org/abs/2003.12652
```
2 changes: 1 addition & 1 deletion WW3
2 changes: 1 addition & 1 deletion WW3DATA
Submodule WW3DATA updated 3 files
+116 −21 LICENSE
+4 −0 README.md
+2 −2 makefile.ww3data.nuopc
43 changes: 0 additions & 43 deletions build.sh

This file was deleted.

1 change: 1 addition & 0 deletions build.sh
25 changes: 25 additions & 0 deletions compile-NEMS.x.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
Patch usage: patch -p1 < patch_name
example: patch -p1 < ADC-WW3-NWM-NEMS.patch
to reverse it:
example: patch -p1 -R < ADC-WW3-NWM-NEMS.patch

1) Run the build.sh script as:
build.sh -h or, build.sh --help
to get the list of all options available to script.

2) Example: Run the build.sh script as:
build.sh
to use the default settings

3) Example: Run the build.sh script as:
build.sh -plat stampede -component "ADCIRC ATMESH
to use customized settings

3) Example: Run the build.sh script as:
build.sh -c --component="ADCIRC ATMESH
to clean a previous compilation using "make clean"
build.sh -c 2 --component="ADCIRC ATMESH
to clean a previous compilation using "make distclean"

Panagiotis Velissariou - 12/04/2020

Loading

0 comments on commit 4b7dafe

Please sign in to comment.