Skip to content

Obtaining other components for coupled models

Marshall Ward edited this page May 2, 2019 · 42 revisions

Obtaining other components for coupled models

Apology: These instructions only apply to GFDL users who have access to the internal gitlab server. The latest coupled model components are not yet available to external users.

To build and run coupled models you will need the source code for the other components in the coupled system. Some of these are only available from within the GFDL firewall. We place all of these packages under the src/ directory within MOM6-examples; from the MOM6-examples directory execute the commands:

cd src

All of the commands below take place in this src/ directory.

Which components do I need?

Experiment group Components under src/
ocean_only/ MOM6 FMS
ice_ocean_SIS/ MOM6 SIS FMS atmos_null coupler land_null ice_param
ice_ocean_SIS2/ MOM6 SIS2 FMS atmos_null coupler land_null ice_param icebergs
land_ice_ocean_LM3_SIS2 MOM6 SIS2 FMS atmos_null coupler LM3 ice_param icebergs
coupled_AM2_LM3_SIS MOM6 SIS FMS AM2 LM3 coupler ice_param
coupled_AM2_LM3_SIS2 MOM6 SIS2 FMS AM2 LM3 coupler ice_param icebergs

coupler

coupler is needed for any configuration other than ocean-only. The version of coupler on GitHub is now included as a sub-module (ie. src/coupler is obtained when you do a git clone --recursive for MOM6-examples).

atmos_null

atmos_null is a "dummy" set or modules that provide the atmosphere's APIs but do nothing. It is now a sub-module of MOM6-examples/src/atmos_null

land_null

land_null is a "dummy" set or modules that provide the land's APIs but do nothing. It is now a sub-module, MOM6-examples/src/land_null.

ice_param

ice_param is also needed to run any coupled model. It is now a sub-module, MOM6-examples/src/ice_param.

icebergs

icebergs is also needed to run any coupled model. It is a sub-module, MOM6-examples/src/icebergs.

SIS2

SIS2 is needed to run coupled models not using the SIS1 ice model. It is a sub-module, MOM6-examples/src/SIS2.

SIS

SIS is the original version of the GFDL B-grid sea-ice component. From within the src/ directory:

git clone http://gitlab.gfdl.noaa.gov/fms/ice_sis.git SIS
cd SIS; git checkout xanadu

LM3

LM3 is the land model used in ESM2M and ESM2G

mkdir -p LM3
(cd LM3; git clone http://gitlab.gfdl.noaa.gov/fms/land_param.git)
(cd LM3/land_param; git checkout xanadu)
(cd LM3; git clone http://gitlab.gfdl.noaa.gov/fms/land_lad2.git)
(cd LM3/land_lad2; git checkout verona_201701)

LM3 needs some preprocessing. The following expands CPP macros which otherwise causes compile-time errors for the gnu compiler:

find LM3/land_lad2 -type f -name \*.F90 -exec cpp -Duse_libMPI -Duse_netCDF -DSPMD -Duse_LARGEFILE -C -nostdinc -v -I ./FMS/include -o '{}'.cpp {} \;
find LM3/land_lad2 -type f -name \*.F90.cpp -exec rename .F90.cpp .f90 {} \;
find LM3/land_lad2 -type f -name \*.F90 -exec rename .F90 .F90_preCPP {} \;

To use land_null or a "verona" version of land_lad with the "warsaw" coupler, the flag "-D_USE_LEGACY_LAND" needs to be added to the compile script. Another release in the near future will make this flag unnecessary for any "warsaw" land code. Starting with the "warsaw" release, LM3 uses HDF5 file i/o, so it is necessary to make sure that the appropriate library is available from whichever script or shell is used for compilation. This can be done by adding a command like module load cray-hdf5.

AM2

AM2 is the lat-lon atmospheric model used in CM2.1, ESM2M and ESM2G

mkdir -p AM2
(cd AM2; git clone http://gitlab.gfdl.noaa.gov/fms/atmos_fv_dynamics.git)
(cd AM2/atmos_fv_dynamics; git checkout warsaw_201803)
(cd AM2; git clone http://gitlab.gfdl.noaa.gov/fms/atmos_drivers.git)
(cd AM2/atmos_drivers; git checkout warsaw_201803)
(cd AM2; git clone http://gitlab.gfdl.noaa.gov/fms/atmos_shared_am3.git)
(cd AM2/atmos_shared; git checkout warsaw_201803)
git checkout http://gitlab.gfdl.noaa.gov/fms/atmos_param_am3.git
(cd atmos_param_am3; git checkout warsaw_201803)

Back to Getting Started