-
Notifications
You must be signed in to change notification settings - Fork 148
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.
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 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 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 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 is also needed to run any coupled model. It is now a sub-module, MOM6-examples/src/ice_param
.
icebergs is also needed to run any coupled model. It is a sub-module, MOM6-examples/src/icebergs
.
SIS2 is needed to run coupled models not using the SIS1 ice model. It is a sub-module, MOM6-examples/src/SIS2
.
SIS is the original version of the GFDL B-grid sea-ice component. From within the src/
directory:
git clone https://gitlab.gfdl.noaa.gov/fms/ice_sis.git SIS
cd SIS; git checkout xanadu
LM3 is the land model used in ESM2M and ESM2G
mkdir -p LM3
(cd LM3; git clone https://gitlab.gfdl.noaa.gov/fms/land_param.git)
(cd LM3/land_param; git checkout xanadu)
(cd LM3; git clone https://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 is the lat-lon atmospheric model used in CM2.1, ESM2M and ESM2G
mkdir -p AM2
(cd AM2; git clone https://gitlab.gfdl.noaa.gov/fms/atmos_fv_dynamics.git)
(cd AM2/atmos_fv_dynamics; git checkout warsaw_201803)
(cd AM2; git clone https://gitlab.gfdl.noaa.gov/fms/atmos_drivers.git)
(cd AM2/atmos_drivers; git checkout warsaw_201803)
(cd AM2; git clone https://gitlab.gfdl.noaa.gov/fms/atmos_shared_am3.git)
(cd AM2/atmos_shared; git checkout warsaw_201803)
git checkout https://gitlab.gfdl.noaa.gov/fms/atmos_param_am3.git
(cd atmos_param_am3; git checkout warsaw_201803)