From 7f85f6568df2f304376913a3657f27c9865eecfc Mon Sep 17 00:00:00 2001 From: Helen Kershaw <20047007+hkershaw-brown@users.noreply.github.com> Date: Mon, 9 Mar 2026 12:44:01 -0400 Subject: [PATCH 1/5] build programs that are not routinely built with exisiting quickbuild.shs partial fix for #1068. This is the programs not in the system_simulation directory --- .gitignore | 6 +++ .../lonely_quickbuilds/work/input.nml | 13 +++++ .../lonely_quickbuilds/work/quickbuild.sh | 50 +++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 developer_tests/lonely_quickbuilds/work/input.nml create mode 100755 developer_tests/lonely_quickbuilds/work/quickbuild.sh diff --git a/.gitignore b/.gitignore index 2d99d7c84d..c8e8ed2908 100644 --- a/.gitignore +++ b/.gitignore @@ -100,6 +100,12 @@ aether_to_dart dart_to_aether test_aether_grid create_identity_streamflow_obs +create_obs_grid +obs_data_denial +obs_info +obs_remove_dups +obs_sort +obs_timejitter # Observation converter exectutables convert_aviso diff --git a/developer_tests/lonely_quickbuilds/work/input.nml b/developer_tests/lonely_quickbuilds/work/input.nml new file mode 100644 index 0000000000..83525855eb --- /dev/null +++ b/developer_tests/lonely_quickbuilds/work/input.nml @@ -0,0 +1,13 @@ +&utilities_nml + module_details = .false. + / + +&preprocess_nml + input_obs_qty_mod_file = '../../../assimilation_code/modules/observations/DEFAULT_obs_kind_mod.F90' + output_obs_qty_mod_file = '../../../assimilation_code/modules/observations/obs_kind_mod.f90' + input_obs_def_mod_file = '../../../observations/forward_operators/DEFAULT_obs_def_mod.F90' + output_obs_def_mod_file = '../../../observations/forward_operators/obs_def_mod.f90' + obs_type_files = '../../../observations/forward_operators/obs_def_gps_mod.f90' + quantity_files = '../../../assimilation_code/modules/observations/default_quantities_mod.f90' + / + diff --git a/developer_tests/lonely_quickbuilds/work/quickbuild.sh b/developer_tests/lonely_quickbuilds/work/quickbuild.sh new file mode 100755 index 0000000000..3218b2150d --- /dev/null +++ b/developer_tests/lonely_quickbuilds/work/quickbuild.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +# DART software - Copyright UCAR. This open source software is provided +# by UCAR, "as is", without charge, subject to all terms of use at +# http://www.image.ucar.edu/DAReS/DART/DART_download + +main() { + + +export DART=$(git rev-parse --show-toplevel) +source "$DART"/build_templates/buildfunctions.sh + +MODEL="none" +EXTRA="$DART"/models/template/threed_model_mod.f90 +LOCATION="threed_sphere" + +serial_programs=( +obs_info +create_obs_grid +compare_states +gen_sampling_err_table +compute_error +obs_assim_count +obs_timejitter +obs_loop +obs_data_denial +obs_remove_dups +obs_sort +obs_total_error +obs_keep_a_few +) + +# quickbuild arguments +arguments "$@" + +# clean the directory +\rm -f -- *.o *.mod Makefile .cppdefs + +# build and run preprocess before making any other DART executables +buildpreprocess + +# build DART +buildit + +# clean up +\rm -f -- *.o *.mod + +} + +main "$@" From 3e363fdb16ee7daf27c35e77bb750b5d3aa48e8c Mon Sep 17 00:00:00 2001 From: Helen Kershaw <20047007+hkershaw-brown@users.noreply.github.com> Date: Mon, 9 Mar 2026 13:19:23 -0400 Subject: [PATCH 2/5] build for system_simulation directory The quickbuild.sh is in developer tests. This is because the system similution codes do not follow the layout of other dart programs. In addition, I do not think they actually need much of dart (only random sequences). Unclear if they should be using types_mod. So build could be simplified further (no preprocess) see #1068 --- .gitignore | 26 ++++++++ .../system_simulation/work/input.nml | 13 ++++ .../system_simulation/work/quickbuild.sh | 66 +++++++++++++++++++ 3 files changed, 105 insertions(+) create mode 100644 developer_tests/system_simulation/work/input.nml create mode 100755 developer_tests/system_simulation/work/quickbuild.sh diff --git a/.gitignore b/.gitignore index c8e8ed2908..fbdea16165 100644 --- a/.gitignore +++ b/.gitignore @@ -227,6 +227,32 @@ test_kde_dist test_window test_force_bounds test_parse_variables +correl_error +full_error +obs_sampling_err +sampling_error +sys_sim101 +sys_sim101a +sys_sim102 +sys_sim102b +sys_sim103 +sys_sim104 +sys_sim104b +sys_sim105 +sys_sim2 +sys_sim201 +sys_sim202 +sys_sim203 +sys_sim3 +sys_sim301 +sys_sim302 +sys_sim4 +sys_sim401 +sys_sim402 +sys_sim5 +sys_sim501 +sys_sim502 +test_sampling_err_table # Directories to NOT IGNORE ... same as executable names # as far as I know, these must be listed after the executables diff --git a/developer_tests/system_simulation/work/input.nml b/developer_tests/system_simulation/work/input.nml new file mode 100644 index 0000000000..83525855eb --- /dev/null +++ b/developer_tests/system_simulation/work/input.nml @@ -0,0 +1,13 @@ +&utilities_nml + module_details = .false. + / + +&preprocess_nml + input_obs_qty_mod_file = '../../../assimilation_code/modules/observations/DEFAULT_obs_kind_mod.F90' + output_obs_qty_mod_file = '../../../assimilation_code/modules/observations/obs_kind_mod.f90' + input_obs_def_mod_file = '../../../observations/forward_operators/DEFAULT_obs_def_mod.F90' + output_obs_def_mod_file = '../../../observations/forward_operators/obs_def_mod.f90' + obs_type_files = '../../../observations/forward_operators/obs_def_gps_mod.f90' + quantity_files = '../../../assimilation_code/modules/observations/default_quantities_mod.f90' + / + diff --git a/developer_tests/system_simulation/work/quickbuild.sh b/developer_tests/system_simulation/work/quickbuild.sh new file mode 100755 index 0000000000..6e9dd8ca70 --- /dev/null +++ b/developer_tests/system_simulation/work/quickbuild.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash + +# DART software - Copyright UCAR. This open source software is provided +# by UCAR, "as is", without charge, subject to all terms of use at +# http://www.image.ucar.edu/DAReS/DART/DART_download + +main() { + + +export DART=$(git rev-parse --show-toplevel) +source "$DART"/build_templates/buildfunctions.sh + +MODEL="none" +EXTRA="$DART"/models/template/threed_model_mod.f90 +dev_test=1 +LOCATION="threed_sphere" +TEST="../assimilation_code/programs/system_simulation/" + +serial_programs=( +sys_sim103 +sys_sim3 +sys_sim301 +sys_sim2 +sys_sim201 +sys_sim302 +sys_sim102 +sys_sim104 +obs_sampling_err +sys_sim501 +sys_sim402 +full_error +sys_sim202 +sys_sim401 +system_simulation +sys_sim502 +sys_sim105 +sys_sim4 +sys_sim102b +sys_sim5 +sys_sim104b +sampling_error +sys_sim101a +test_sampling_err_table +correl_error +sys_sim101 +sys_sim203 +) + +# quickbuild arguments +arguments "$@" + +# clean the directory +\rm -f -- *.o *.mod Makefile .cppdefs + +# build and run preprocess before making any other DART executables +buildpreprocess + +# build DART +buildit + +# clean up +\rm -f -- *.o *.mod + +} + +main "$@" From e1d37492b3b2c7b9d9c6602a2a6b0fd901acf817 Mon Sep 17 00:00:00 2001 From: Helen Kershaw <20047007+hkershaw-brown@users.noreply.github.com> Date: Mon, 9 Mar 2026 13:22:19 -0400 Subject: [PATCH 3/5] fix: sys_sim401|401 were using _r8 without types_mod so did not compile changed to .d0 to be double precision. see https://github.com/NCAR/DART/issues/1068#issuecomment-4024229949 --- assimilation_code/programs/system_simulation/sys_sim401.f90 | 4 ++-- assimilation_code/programs/system_simulation/sys_sim402.f90 | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/assimilation_code/programs/system_simulation/sys_sim401.f90 b/assimilation_code/programs/system_simulation/sys_sim401.f90 index 48ae1f3c41..dc581ba53a 100644 --- a/assimilation_code/programs/system_simulation/sys_sim401.f90 +++ b/assimilation_code/programs/system_simulation/sys_sim401.f90 @@ -82,8 +82,8 @@ subroutine sub_sim401(sd_ratio, n_samples, alpha) ! Now, draw a single value from this distribution ! This is the revised clean version from 9 Nov., 2003 - sample1(i) = random_gaussian(r, 1.0_r8, sd_ratio) - sample2(i) = random_gaussian(r, 1.0_r8, sd_ratio) + sample1(i) = random_gaussian(r, 1.d0, sd_ratio) + sample2(i) = random_gaussian(r, 1.d0, sd_ratio) end do ! For now, don't know how to really compute this derivative for minimization diff --git a/assimilation_code/programs/system_simulation/sys_sim402.f90 b/assimilation_code/programs/system_simulation/sys_sim402.f90 index de1169fed1..50aeea5994 100644 --- a/assimilation_code/programs/system_simulation/sys_sim402.f90 +++ b/assimilation_code/programs/system_simulation/sys_sim402.f90 @@ -16,7 +16,7 @@ program sys_sim402 ! Loop through a range of values for alpha until alpha is 0.0 do i = 0, 300 - sd_ratio = (i - 1.) / 100.0_r8 + sd_ratio = (i - 1.) / 100.d0 call sub_sim402(sd_ratio, n, n_samples, alpha) write(*, *) 'sd_ratio, alpha ', sd_ratio, alpha !!! if(alpha <= 0.0) stop From fc80fe1b65797a4a2543bb7deb75383eacfa677a Mon Sep 17 00:00:00 2001 From: Helen Kershaw <20047007+hkershaw-brown@users.noreply.github.com> Date: Tue, 10 Mar 2026 13:12:17 -0400 Subject: [PATCH 4/5] obs_timejitter to use assim_model_mod --- assimilation_code/programs/obs_timejitter/obs_timejitter.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assimilation_code/programs/obs_timejitter/obs_timejitter.f90 b/assimilation_code/programs/obs_timejitter/obs_timejitter.f90 index 4c4f31cec8..8e034ae9c0 100644 --- a/assimilation_code/programs/obs_timejitter/obs_timejitter.f90 +++ b/assimilation_code/programs/obs_timejitter/obs_timejitter.f90 @@ -16,7 +16,7 @@ program obs_timejitter get_copy_meta_data, get_qc_meta_data, set_qc_meta_data use time_manager_mod, only : time_type, set_time, get_time, interactive_time, & operator(*), operator(+), operator(-), operator(<) -use model_mod, only : static_init_model +use assim_model_mod, only : static_init_assim_model implicit none @@ -36,7 +36,7 @@ program obs_timejitter call initialize_utilities('obs_timejitter') ! Call the underlying model's static initialization for calendar info -call static_init_model() +call static_init_assim_model() ! Initialize the obs_sequence module call static_init_obs_sequence() From b2b204c16fd61cba865a854be9d8a6a06884bc20 Mon Sep 17 00:00:00 2001 From: Helen Kershaw <20047007+hkershaw-brown@users.noreply.github.com> Date: Tue, 10 Mar 2026 13:51:52 -0400 Subject: [PATCH 5/5] add executables that are also directories to the list of directories to not ignore It would be cooler if dart used an extension for executables --- .gitignore | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index fbdea16165..17cd360287 100644 --- a/.gitignore +++ b/.gitignore @@ -263,6 +263,7 @@ test_sampling_err_table !compute_error/ !create_fixed_network_seq/ !create_obs_sequence/ +!create_obs_grid/ !fill_inflation_restart/ !filter/ !gen_sampling_err_table/ @@ -272,18 +273,23 @@ test_sampling_err_table !obs_common_subset/ !obs_diag/ !obs_impact_tool/ +!obs_info/ !obs_keep_a_few/ !obs_loop/ +!obs_remove_dups/ !obs_selection/ !obs_seq_coverage/ !obs_seq_to_netcdf/ !obs_seq_verify/ !obs_sequence_tool/ +!obs_sort/ +!obs_timejitter/ !obs_total_error/ -!obs_utils/ +!obs_data_denial/ !perfect_model_obs/ !perturb_single_instance/ !preprocess/ +!radiance_obs_seq_to_netcdf/ !restart_file_tool/ !system_simulation/ !wakeup_filter/