diff --git a/README.md b/README.md index 8c51865d..046745ed 100644 --- a/README.md +++ b/README.md @@ -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) | @@ -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) | @@ -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: @@ -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 @@ -267,6 +255,7 @@ each sub-repository. #### Build the Model ##### Load Compiler, MPI Stack, and Baselibs + On tcsh: ``` source @env/g5_modules @@ -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= +-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: @@ -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 ``` diff --git a/components.yaml b/components.yaml index 4486e2ad..48856523 100644 --- a/components.yaml +++ b/components.yaml @@ -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: @@ -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 @@ -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 @@ -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: @@ -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: