Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
89 changes: 48 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,23 @@
| [CICE](https://github.com/GEOS-ESM/CICE) | [geos/v0.2.0](https://github.com/GEOS-ESM/CICE/releases/tag/geos%2Fv0.2.0) |
| [CPLFCST_Etc](https://github.com/GEOS-ESM/CPLFCST_Etc) | [v1.0.1](https://github.com/GEOS-ESM/CPLFCST_Etc/releases/tag/v1.0.1) |
| [ecbuild](https://github.com/GEOS-ESM/ecbuild) | [geos/v1.4.0](https://github.com/GEOS-ESM/ecbuild/releases/tag/geos%2Fv1.4.0) |
| [ESMA_cmake](https://github.com/GEOS-ESM/ESMA_cmake) | [v3.56.0](https://github.com/GEOS-ESM/ESMA_cmake/releases/tag/v3.56.0) |
| [ESMA_env](https://github.com/GEOS-ESM/ESMA_env) | [v4.35.0](https://github.com/GEOS-ESM/ESMA_env/releases/tag/v4.35.0) |
| [ESMA_cmake](https://github.com/GEOS-ESM/ESMA_cmake) | [v3.58.2](https://github.com/GEOS-ESM/ESMA_cmake/releases/tag/v3.58.2) |
| [ESMA_env](https://github.com/GEOS-ESM/ESMA_env) | [v4.36.0](https://github.com/GEOS-ESM/ESMA_env/releases/tag/v4.36.0) |
| [FMS](https://github.com/GEOS-ESM/FMS) | [geos/2019.01.02+noaff.10](https://github.com/GEOS-ESM/FMS/releases/tag/geos%2F2019.01.02%2Bnoaff.10) |
| [FVdycoreCubed_GridComp](https://github.com/GEOS-ESM/FVdycoreCubed_GridComp) | [v2.13.0](https://github.com/GEOS-ESM/FVdycoreCubed_GridComp/releases/tag/v2.13.0) |
| [FVdycoreCubed_GridComp](https://github.com/GEOS-ESM/FVdycoreCubed_GridComp) | [v2.14.0](https://github.com/GEOS-ESM/FVdycoreCubed_GridComp/releases/tag/v2.14.0) |
| [GAAS](https://github.com/GEOS-ESM/GAAS) | [v1.0.0](https://github.com/GEOS-ESM/GAAS/releases/tag/v1.0.0) |
| [geos-chem](https://github.com/GEOS-ESM/geos-chem) | [geos/v13.0.0-rc1](https://github.com/GEOS-ESM/geos-chem/releases/tag/geos%2Fv13.0.0-rc1) |
| [GEOS_OceanGridComp](https://github.com/GEOS-ESM/GEOS_OceanGridComp) | [v2.5.0](https://github.com/GEOS-ESM/GEOS_OceanGridComp/releases/tag/v2.5.0) |
| [GEOS_Util](https://github.com/GEOS-ESM/GEOS_Util) | [v2.1.6](https://github.com/GEOS-ESM/GEOS_Util/releases/tag/v2.1.6) |
| [GEOS_Util](https://github.com/GEOS-ESM/GEOS_Util) | [v2.1.7](https://github.com/GEOS-ESM/GEOS_Util/releases/tag/v2.1.7) |
| [GEOSchem_GridComp](https://github.com/GEOS-ESM/GEOSchem_GridComp) | [v1.16.0](https://github.com/GEOS-ESM/GEOSchem_GridComp/releases/tag/v1.16.0) |
| [GEOSgcm_App](https://github.com/GEOS-ESM/GEOSgcm_App) | [v2.3.10](https://github.com/GEOS-ESM/GEOSgcm_App/releases/tag/v2.3.10) |
| [GEOSgcm_GridComp](https://github.com/GEOS-ESM/GEOSgcm_GridComp) | [v2.7.2](https://github.com/GEOS-ESM/GEOSgcm_GridComp/releases/tag/v2.7.2) |
| [GEOSgcm_App](https://github.com/GEOS-ESM/GEOSgcm_App) | [v2.3.11](https://github.com/GEOS-ESM/GEOSgcm_App/releases/tag/v2.3.11) |
| [GEOSgcm_GridComp](https://github.com/GEOS-ESM/GEOSgcm_GridComp) | [v2.7.3](https://github.com/GEOS-ESM/GEOSgcm_GridComp/releases/tag/v2.7.3) |
| [GEOSradiation_GridComp](https://github.com/GEOS-ESM/GEOSradiation_GridComp) | [v1.12.0](https://github.com/GEOS-ESM/GEOSradiation_GridComp/releases/tag/v1.12.0) |
| [GFDL_atmos_cubed_sphere](https://github.com/GEOS-ESM/GFDL_atmos_cubed_sphere) | [geos/v2.9.1](https://github.com/GEOS-ESM/GFDL_atmos_cubed_sphere/releases/tag/geos%2Fv2.9.1) |
| [gigatraj](https://github.com/GEOS-ESM/gigatraj) | [geos/v1.0.0](https://github.com/GEOS-ESM/gigatraj/releases/tag/geos%2Fv1.0.0) |
| [GMI](https://github.com/GEOS-ESM/GMI) | [v1.3.0](https://github.com/GEOS-ESM/GMI/releases/tag/v1.3.0) |
| [GMAO_perllib](https://github.com/GEOS-ESM/GMAO_perllib) | [v1.0.0](https://github.com/GEOS-ESM/GMAO_perllib/releases/tag/v1.0.0) |
| [GMAO_Shared](https://github.com/GEOS-ESM/GMAO_Shared) | [v2.0.0](https://github.com/GEOS-ESM/GMAO_Shared/releases/tag/v2.0.0) |
| [GMAO_perllib](https://github.com/GEOS-ESM/GMAO_perllib) | [v1.1.0](https://github.com/GEOS-ESM/GMAO_perllib/releases/tag/v1.1.0) |
| [GMAO_Shared](https://github.com/GEOS-ESM/GMAO_Shared) | [v2.1.0](https://github.com/GEOS-ESM/GMAO_Shared/releases/tag/v2.1.0) |
| [GOCART](https://github.com/GEOS-ESM/GOCART) | [v2.3.0](https://github.com/GEOS-ESM/GOCART/releases/tag/v2.3.0) |
| [HEMCO](https://github.com/GEOS-ESM/HEMCO) | [geos/v2.3.0](https://github.com/GEOS-ESM/HEMCO/releases/tag/geos%2Fv2.3.0) |
| [Icepack](https://github.com/GEOS-ESM/Icepack) | [geos/v0.3.0](https://github.com/GEOS-ESM/Icepack/releases/tag/geos%2Fv0.3.0) |
Expand All @@ -42,7 +42,7 @@
| [MITgcm](https://github.com/GEOS-ESM/MITgcm) | [checkpoint68o](https://github.com/GEOS-ESM/MITgcm/releases/tag/checkpoint68o) |
| [MOM5](https://github.com/GEOS-ESM/MOM5) | [geos/5.1.0+1.2.0](https://github.com/GEOS-ESM/MOM5/releases/tag/geos%2F5.1.0%2B1.2.0) |
| [MOM6](https://github.com/GEOS-ESM/MOM6) | [geos/v3.5](https://github.com/GEOS-ESM/MOM6/tree/geos/v3.5) |
| [NCEP_Shared](https://github.com/GEOS-ESM/NCEP_Shared) | [v1.3.0](https://github.com/GEOS-ESM/NCEP_Shared/releases/tag/v1.3.0) |
| [NCEP_Shared](https://github.com/GEOS-ESM/NCEP_Shared) | [v1.4.0](https://github.com/GEOS-ESM/NCEP_Shared/releases/tag/v1.4.0) |
| [QuickChem](https://github.com/GEOS-ESM/QuickChem) | [v1.0.0](https://github.com/GEOS-ESM/QuickChem/releases/tag/v1.0.0) |
| [RRG](https://github.com/GEOS-ESM/RRG) | [v1.1.0](https://github.com/GEOS-ESM/RRG/releases/tag/v1.1.0) |
| [RRTMGP](https://github.com/GEOS-ESM/rte-rrtmgp) | [geos/v1.7+1.0.0](https://github.com/GEOS-ESM/rte-rrtmgp/releases/tag/geos%2Fv1.7%2B1.0.0) |
Expand All @@ -63,26 +63,18 @@ In your `.bashrc` or `.tcshrc` or other rc file add a line:

##### NCCS

NCCS currently has two different OSs. So you'll need to use different modulefiles depending on which OS you are using.

###### SLES 12

```
module use -a /discover/swdev/gmao_SIteam/modulefiles-SLES12
```

###### SLES 15

```
module use -a /discover/swdev/gmao_SIteam/modulefiles-SLES15
```

##### NAS

```
module use -a /nobackup/gmao_SIteam/modulefiles
```

##### GMAO Desktops

On the GMAO desktops, the SI Team modulefiles should automatically be
part of running `module avail` but if not, they are in:

Expand Down Expand Up @@ -180,16 +172,12 @@ This will set up `mepo` to use blobless clones for all future clones by adding a

### Single Step Building of the Model

If all you wish is to build the model, you can run `parallel_build.csh` from a head node. Doing so will checkout all the external repositories of the model and build it. When done, the resulting model build will be found in `build/` and the installation will be found in `install/` with setup scripts like `gcm_setup` and `fvsetup` in `install/bin`.

#### Building at NCCS (Multiple OSs)

In all the examples below, NCCS builds will act differently. Because NCCS currently has two different OSs, when you use
`parallel_build.csh` you will see that the `build` and `install` directories will be appended with `-SLES12` or `-SLES15` depending
on where you submitted to. When NCCS moves to a single OS again, this will be removed.
If all you wish is to build the model, you can run:
```
./parallel_build.csh
```

Note that if you use the `-builddir` and `-installdir` options, you can override this behavior and no OS will be automatically
appended.
from a login node. Doing so will checkout all the external repositories of the model and build it. When done, the resulting model build will be found in `build/` and the installation will be found in `install/` with setup scripts like `gcm_setup` and `fvsetup` in `install/bin`.

#### Develop Version of GEOS GCM

Expand Down Expand Up @@ -267,6 +255,7 @@ each sub-repository.
#### Build the Model

##### Load Compiler, MPI Stack, and Baselibs

On tcsh:
```
source @env/g5_modules
Expand All @@ -277,24 +266,39 @@ source @env/g5_modules.sh
```

##### Create Build Directory
We currently do not allow in-source builds of GEOSgcm. So we must make a directory:
```
mkdir build
```
The advantages of this is that you can build both a Debug and Release version with the same clone if desired.

##### Run CMake
CMake generates the Makefiles needed to build the model.

CMake generates the Makefiles needed to build the model. This command:
```
cd build
cmake .. -DBASEDIR=$BASEDIR/Linux -DCMAKE_Fortran_COMPILER=ifort -DCMAKE_INSTALL_PREFIX=../install
cmake -B build -S . -DCMAKE_INSTALL_PREFIX=install
```
This will install to a directory parallel to your `build` directory. If you prefer to install elsewhere change the path in:

As is, this command assumes you are in the root of the GEOSgcm checkout and will create a `build/` directory in the root of the checkout and install into `install/ parallel to the `build/` directory.

This command has three options:

1. `-B` specifies the build directory.
2. `-S` specifies the source directory (root of the checkout).
3. `-DCMAKE_INSTALL_PREFIX` specifies the installation directory.

If you prefer to install elsewhere change the path in:

```
-DCMAKE_INSTALL_PREFIX=<path>
-DCMAKE_INSTALL_PREFIX=/path/to/install
```
and CMake will install there.

If you prefer your build somewhere else, you can specify that with:
```
-B /path/to/build
```

Finally, if your source is in a different directory than the current one, you can specify that with:
```
-S /path/to/source
```

###### Create and install source tarfile

Note that running with `parallel_build.csh` will create and install a tarfile of the source code at build time. But if CMake is run by hand, this is not the default action (as many who build with CMake by hand are developers and not often running experiments). In order to enable this at install time, add:
Expand All @@ -303,17 +307,20 @@ Note that running with `parallel_build.csh` will create and install a tarfile of
```
to your CMake command.

##### Build and Install with Make
##### Build and Install

```
make -jN install
cmake --build build -j N
cmake --install build
```

where `N` is the number of parallel processes. On discover head nodes, this should only be as high as 2 due to limits on the head nodes. On a compute node, you can set `N` has high as you like, though 8-12 is about the limit of parallelism in our model's make system.

### Run the GCM

Once the model has built successfully, you will have an `install/` directory in your checkout. To run `gcm_setup` go to the `install/bin/` directory and run it there:
```
cd install/bin
cd /path/to/install/bin
./gcm_setup
```

Expand Down
18 changes: 9 additions & 9 deletions components.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ GEOSgcm:
env:
local: ./@env
remote: ../ESMA_env.git
tag: v4.35.0
tag: v4.36.0
develop: main

cmake:
local: ./@cmake
remote: ../ESMA_cmake.git
tag: v3.56.0
tag: v3.58.2
develop: develop

ecbuild:
Expand All @@ -22,27 +22,27 @@ ecbuild:
NCEP_Shared:
local: ./src/Shared/@NCEP_Shared
remote: ../NCEP_Shared.git
tag: v1.3.0
tag: v1.4.0
sparse: ./config/NCEP_Shared.sparse
develop: main

GMAO_Shared:
local: ./src/Shared/@GMAO_Shared
remote: ../GMAO_Shared.git
tag: v2.0.0
tag: v2.1.0
sparse: ./config/GMAO_Shared.sparse
develop: main

GEOS_Util:
local: ./src/Shared/@GMAO_Shared/@GEOS_Util
remote: ../GEOS_Util.git
tag: v2.1.6
tag: v2.1.7
develop: main

GMAO_perllib:
local: ./src/Shared/@GMAO_Shared/@GMAO_perllib
remote: ../GMAO_perllib.git
tag: v1.0.0
tag: v1.1.0
develop: main

# When updating the MAPL version, also update the MAPL version in the
Expand All @@ -62,7 +62,7 @@ FMS:
GEOSgcm_GridComp:
local: ./src/Components/@GEOSgcm_GridComp
remote: ../GEOSgcm_GridComp.git
tag: v2.7.2
tag: v2.7.3
sparse: ./config/GEOSgcm_GridComp.sparse
develop: develop

Expand All @@ -75,7 +75,7 @@ GigaTraj:
FVdycoreCubed_GridComp:
local: ./src/Components/@GEOSgcm_GridComp/GEOSagcm_GridComp/GEOSsuperdyn_GridComp/@FVdycoreCubed_GridComp
remote: ../FVdycoreCubed_GridComp.git
tag: v2.13.0
tag: v2.14.0
develop: develop

fvdycore:
Expand Down Expand Up @@ -239,7 +239,7 @@ umwm:
GEOSgcm_App:
local: ./src/Applications/@GEOSgcm_App
remote: ../GEOSgcm_App.git
tag: v2.3.10
tag: v2.3.11
develop: develop

UMD_Etc:
Expand Down