Skip to content

Commit

Permalink
Merge pull request #348 from NCAR/build-system
Browse files Browse the repository at this point in the history
Build tools for DART that do not need mkmf_ and path_names_ files
  • Loading branch information
hkershaw-brown committed May 24, 2022
2 parents b10e8c6 + eb431b3 commit cb7455e
Show file tree
Hide file tree
Showing 1,834 changed files with 7,236 additions and 57,155 deletions.
114 changes: 112 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ _site/
# Nuisance files

# Makefile
Makefile
!developer_tests/time_manager/Makefile
!developer_tests/mpi_utilities/tests/Makefile
build_templates/mkmf.template
dart_log.*
mkmf.template
Expand Down Expand Up @@ -58,6 +61,7 @@ obs_loop
obs_selection
obs_seq_coverage
obs_seq_to_netcdf
radiance_obs_seq_to_netcdf
obs_seq_verify
obs_sequence_tool
obs_total_error
Expand All @@ -67,13 +71,119 @@ perturb_single_instance
preprocess
restart_file_tool
system_simulation
rttov_test
rttov_unit_tests
dart_to_clm
clm_to_dart
wakeup_filter
mpas_dart_obs_preprocess
update_bc
update_mpas_states
advance_cymdh
cice_to_dart
dart_to_cice
column_rand
pert_sounding
dart_to_mit
mit_to_dart
create_ocean_obs
gitm_blocks_to_netcdf
gitm_to_netcdf
netcdf_to_gitm_blocks

# Observation converter exectutables
convert_aviso
level4_to_obs
CHAMP_density_text_to_obs
CNOFS_text_to_obs
CONAGUA_convert_streamflow
COSMOS_development
COSMOS_to_obs
convert_gpspw
convert_daily_grace
gtspp_to_obs
thinned_gtspp_to_obs
convert_madis_acars
convert_madis_marine
convert_madis_mesonet
convert_madis_metar
convert_madis_profiler
convert_madis_rawin
convert_madis_satwnd
MIDAS_to_obs
MOD15A2_to_obs
convert_saber_cdf
SIF_to_obs_netcdf
oi_sst_to_obs
sst_to_obs
convert_f16_edr_dsk
wod_to_obs
cice_to_obs
modis_ist_to_obs_netcdf
seaice_aggre_to_obs_netcdf
gnd_gps_vtec_text_to_obs
create_obs_radar_sequence
snow_to_obs
snow_to_obs_netcdf
tec_to_obs
text_to_obs
text_to_obs
convert_gpspw
convert_tpw
tc_to_obs
id_set_def_stdin
ps_id_stdin
ps_rand_local
convert_roms_obs
create_sphere_obs
convert_ok_mesonet
read_geo
convert_aura
dwl_to_obs
create_real_obs
prepbufr_to_obs
convert_pb_netcdf
cword.x
grabbufr.x
prepbufr.x
prepbufr_03Z.x
bufrlib.a
gsi_to_dart
convert_cosmic_gps_cdf
convert_cosmic_ionosphere
convert_gpsro_bufr
SMAP_L2_to_obs
convert_sat_chl
ssec_satwnd

# Test programs built by developer_tests
rttov_test
rttov_unit_tests
test_cf_conventions
test_diag_structure
test_read_write_restarts
test_read_write_time
test_state_structure
test_corr
test_diff
test_exp
test_gamma
test_gaussian
test_hist
test_inv_gamma
test_random
test_reseed
timetest
PrecisionCheck
error_handler_test
file_utils_test
find_enclosing_indices_test
find_first_occurrence_test
nml_test
parse_args_test
sort_test
stacktest
obs_rwtest
test_quad_irreg_interp
test_quad_reg_interp

# Directories to NOT IGNORE ... same as executable names
# as far as I know, these must be listed after the executables
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@ individual files.

The changes are now listed with the most recent at the top.

**May 24 2022 :: New build tools for DART. Tag: v10.0.0**

- mkmf\_ and path_names\_ files replaced with buildfunctions to collect source code.
- quickbuild.csh replaced with quickbuild.sh
- developer_tests/build_everything for simultaneous runs of every quickbuild.sh
- Several build/compilation related bug fixes


**May 23 2022 :: Bug-fix for RTPS inflation flavor. Tag: v9.16.4**

- Order of operations changed to avoid inadvertent changes to ens
Expand Down
17 changes: 4 additions & 13 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -94,12 +94,12 @@ it out and set $NETCDF in your environment. *This NetCDF library must have been
compiled with the same compiler that you use to compile DART and must include
the F90 interfaces.*

Go into ``models/lorenz_63/work`` and run *quickbuild.csh*.
Go into ``models/lorenz_63/work`` and run *quickbuild.sh nompi*.

.. code-block::
$ cd models/lorenz_63/work
$ ./quickbuild.csh
$ ./quickbuild.sh nompi
If it compiles, run this series of commands to do a very basic test:

Expand All @@ -116,7 +116,7 @@ and doesn’t grow unbounded) you have successfully installed DART and completed
your first assimilation with it.

If you are planning to run one of the larger models and want to use the Lorenz
63 model as a test, run ``./quickbuild.csh -mpi``. It will build filter and any
63 model as a test, run ``./quickbuild.sh``. It will build filter and any
other MPI-capable executables with MPI.

.. important::
Expand Down Expand Up @@ -246,6 +246,7 @@ References
:caption: Run DART with your model

guide/advice-for-new-collaborators
DART build system <guide/quickbuild.rst>
guide/assimilation-complex-model
guide/mpi_intro
guide/filters
Expand Down Expand Up @@ -355,8 +356,6 @@ References
CLM-DART Tutorial <models/clm/tutorial/README>
WRF-DART Tutorial <models/wrf/tutorial/README>

.. toctree::
:maxdepth: 2
.. toctree::
:maxdepth: 2
:caption: Models
Expand Down Expand Up @@ -524,7 +523,6 @@ References
:maxdepth: 2
:caption: Misc

Release Notes <guide/Manhattan_release>
models/CESM/doc/setup_guidelines


Expand All @@ -537,13 +535,6 @@ References
models/NCOMMAS/ncommas_to_dart


.. toctree::
:maxdepth: 2
:caption: Build templates
:hidden:

build_templates/mkmf

.. toctree::
:maxdepth: 2
:caption: Root
Expand Down
2 changes: 1 addition & 1 deletion assimilation_code/modules/observations/obs_kind_mod.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ only support identity forward observation operators.

All of the build scripts in DART remove the existing ``obs_kind_mod.f90`` file and regenerate it using the
``preprocess`` program. Do not add new quantities to ``obs_kind_mod.f90``, because these changes will not be kept when
you run *quickbuild.csh*.
you run *quickbuild.sh*.

Adding additional quantities
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down
7 changes: 3 additions & 4 deletions assimilation_code/modules/utilities/mpi_utilities_mod.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,9 @@ That file contains the same module name and public entry points as this one but
routines. However, to be able to run most larger models with a reasonable number of ensemble members (e.g. 30-100) MPI
will be needed.

The main DART executable ``filter`` can be compiled and run as either a serial program or a parallel program. Most work
directories in the DART distribution source tree have a ``quickbuild.csh`` script which can take a ``-mpi`` or a
``-nompi`` flag. This flag changes the list of files to be compiled to use either the module which uses the MPI library
or the one which makes no MPI calls. No source code changes are required to switch between the two options.
Several DART executables can be compiled and run as either a serial program or a parallel program. Most work
directories in the DART distribution source tree have a ``quickbuild.sh`` script. To build DART without MPI use
``./quickbuild.sh nompi``. No source code changes are required to switch between using mpi or no mpi.

A parallel program generally runs faster and requires less memory per CPU than the serial code. It requires an
implementation of the MPI library and run-time system to pass data between different nodes on a parallel cluster or
Expand Down
12 changes: 0 additions & 12 deletions assimilation_code/programs/compare_states/work/mkmf_compare_states

This file was deleted.

This file was deleted.

39 changes: 0 additions & 39 deletions assimilation_code/programs/compare_states/work/quickbuild.csh

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

0 comments on commit cb7455e

Please sign in to comment.