Compile DART executables in ROMS subdirectory

Setting your mkmf.template

If you haven’t done so already, change directory to the build_templates subdirectory:

cd DART/build-templates
ls mkmf.*
mkmf.template.absoft.osx       mkmf.template.pgi.cray
mkmf.template.g95              mkmf.template.pgi.linux
mkmf.template.gfortran         mkmf.template.pgi.osx
mkmf.template.intel.linux      mkmf.template.rttov.gfortran
mkmf.template.intel.osx        mkmf.template.rttov.intel
mkmf.template.lahey.linux      mkmf.template.sgi.altix
mkmf.template.nag.linux        mkmf.template.xlf.aix
mkmf.template.pathscale.linux

and identify which mkmf.template is suitable for your system. For example NCAR’s Cheyenne supercomputer is built using Intel processors and uses the Linux operating system, so it should use the mkmf.template.intel.linux template.

mv mkmf.template.intel.linux mkmf.template

The $NETCDF environmental variable is already set on this system, so it doesn’t need to be set within the mkmf.template:

echo $NETCDF
/glade/u/apps/ch/opt/netcdf/4.8.1/intel/19.1.1/

If the $NETCDF environmental variable isn’t set on your system, identify the path to your netCDF installation and set it in your mkmf.template.

Compiling the ROMS executables

Next, change directory to the ROMS work subdirectory:

cd ../models/ROMS/work
ls
input.nml           obs_seq_fo.out  ocean.in.template  s4dvar.in.template
input.nml.template  obs_seq.out     quickbuild.sh

The quickbuild.sh script will compile all of the necessary DART executables for ROMS.

./quickbuild.sh
[ ... ]
ls
advance_time              Makefile           obs_seq_verify
closest_member_tool       model_mod_check    ocean.in.template
create_fixed_network_seq  obs_common_subset  perfect_model_obs
create_obs_sequence       obs_diag           perturb_single_instance
dart_log.nml              obs_selection      preprocess
dart_log.out              obs_seq_coverage   quickbuild.sh
fill_inflation_restart    obs_seq_fo.out     s4dvar.in.template
filter                    obs_seq.out        wakeup_filter
input.nml                 obs_seq_to_netcdf
input.nml.template        obs_sequence_tool

If quickbuild.sh ran properly, you should now see the work directory populated with newly built executables.