Obtaining other components for coupled models - adcroft/MOM6-examples GitHub Wiki
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 icebergs ice_ocean_extras |
ice_ocean_SIS2/ | MOM6 SIS2 FMS atmos_null coupler land_null icebergs ice_ocean_extras |
land_ice_ocean_LM3_SIS2 | MOM6 SIS2 FMS atmos_null coupler LM3 icebergs ice_ocean_extras |
coupled_AM2_LM3_SIS | MOM6 SIS FMS AM2 LM3 coupler ice_param icebergs |
coupled_AM2_LM3_SIS2 | MOM6 SIS2 FMS AM2 LM3 coupler ice_param icebergs |
ice_ocean_extras is a stripped down version of ice_param, monin_obukhov and diag_integral components which are included with MOM6-examples.
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 2be67d1a7d54be5da2f7843ee052c2ad76843627
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 warsaw)
(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 -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)
(cd AM2; git clone http://gitlab.gfdl.noaa.gov/fms/atmos_drivers.git)
(cd AM2/atmos_drivers; git checkout warsaw)
(cd AM2; git clone http://gitlab.gfdl.noaa.gov/fms/atmos_shared.git)
(cd AM2/atmos_shared; git checkout warsaw)
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). However, if you need to get a non-released/development version of coupler then do the following. From within the src/
directory type:
git clone http://gitlab.gfdl.noaa.gov/fms/coupler.git
or, if you will be pushing back to the repository use:
git clone [email protected]:fms/coupler.git
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 but only a stripped down version is needed for ice-ocean models. The necessary files for ice-ocean are under of MOM6-examples/ice_ocean_extras/ice_param/
.
For fully coupled models:
git clone [email protected]:fms/ice_param.git
cd ice_param; git clone warsaw