diff --git a/cime_config/testdefs/testlist_cam.xml b/cime_config/testdefs/testlist_cam.xml
index f96786c8..eb195073 100644
--- a/cime_config/testdefs/testlist_cam.xml
+++ b/cime_config/testdefs/testlist_cam.xml
@@ -52,7 +52,7 @@
-
+
diff --git a/cime_config/testdefs/testmods_dirs/cam/outfrq_hack_shallow_derecho/user_nl_cam b/cime_config/testdefs/testmods_dirs/cam/outfrq_hack_shallow_derecho/user_nl_cam
index a831db5a..60ade726 100644
--- a/cime_config/testdefs/testmods_dirs/cam/outfrq_hack_shallow_derecho/user_nl_cam
+++ b/cime_config/testdefs/testmods_dirs/cam/outfrq_hack_shallow_derecho/user_nl_cam
@@ -29,5 +29,5 @@ hkconv_c0 = 1.0e-4
! history fields for CAM4 Hack shallow convection
hist_output_frequency;h1: 1*nsteps
hist_max_frames;h1: 1
-hist_add_inst_fields;h1: CMFDT,CMFDQ,CMFDLIQ,CMFDICE,CMFDQR,DQP,ICWMRSH,CMFSL,CMFLQ,FREQSH,EVAPTCM,FZSNTCM,EVSNTCM,HKNTPRPD,HKNTSNPD,HKFLXPRC,HKFLXSNW,HKEIHEAT,EVAPQCM,PRECSH,CMFMCSH,CMFMC,CLDTOP,CLDBOT,PCLDTOP,PCLDBOT,ZMDLF,SHDLF
+hist_add_inst_fields;h1: CMFDT,CMFDQ,CMFDLIQ,CMFDICE,CMFDQR,DQP,ICWMRSH,CMFSL,CMFLQ,FREQSH,EVAPTCM,FZSNTCM,EVSNTCM,HKNTPRPD,HKNTSNPD,HKFLXPRC,HKFLXSNW,HKEIHEAT,EVAPQCM,PRECSH,CMFMCSH
hist_precision;h1: REAL64
diff --git a/src/data/write_init_files.py b/src/data/write_init_files.py
index 2c6fadcd..314859d5 100644
--- a/src/data/write_init_files.py
+++ b/src/data/write_init_files.py
@@ -1133,16 +1133,7 @@ def write_phys_read_subroutine(outfile, host_dict, host_vars, host_imports,
outfile.write("if (constituent_errflg /= 0) then", 4)
outfile.write("call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)", 5)
outfile.write("end if", 4)
- outfile.write("if (constituent_has_default) then", 4)
- outfile.write("call const_props(constituent_idx)%default_value(constituent_default_value, constituent_errflg, constituent_errmsg)", 5)
- outfile.write("if (constituent_errflg /= 0) then", 5)
- outfile.write("call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)", 6)
- outfile.write("end if", 5)
- outfile.write("field_data_ptr(:,:,constituent_idx) = constituent_default_value", 5)
- outfile.write("if (masterproc) then", 5)
- outfile.write("write(iulog,*) 'Constituent ', trim(std_name), ' initialized to default value: ', constituent_default_value", 6)
- outfile.write("end if", 5)
- outfile.write("else", 4)
+ outfile.write("if (.not. constituent_has_default) then", 4)
outfile.comment("Intialize to constituent's configured minimum value", 5)
outfile.write("call const_props(constituent_idx)%minimum(constituent_min_value, constituent_errflg, constituent_errmsg)", 5)
outfile.write("field_data_ptr(:,:,constituent_idx) = constituent_min_value", 5)
diff --git a/test/unit/python/sample_files/write_init_files/physics_inputs_4D.F90 b/test/unit/python/sample_files/write_init_files/physics_inputs_4D.F90
index f7b78f09..b88b2584 100644
--- a/test/unit/python/sample_files/write_init_files/physics_inputs_4D.F90
+++ b/test/unit/python/sample_files/write_init_files/physics_inputs_4D.F90
@@ -204,16 +204,7 @@ subroutine physics_read_data(file, suite_names, timestep, read_initialized_varia
if (constituent_errflg /= 0) then
call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
end if
- if (constituent_has_default) then
- call const_props(constituent_idx)%default_value(constituent_default_value, constituent_errflg, constituent_errmsg)
- if (constituent_errflg /= 0) then
- call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
- end if
- field_data_ptr(:,:,constituent_idx) = constituent_default_value
- if (masterproc) then
- write(iulog,*) 'Constituent ', trim(std_name), ' initialized to default value: ', constituent_default_value
- end if
- else
+ if (.not. constituent_has_default) then
! Intialize to constituent's configured minimum value
call const_props(constituent_idx)%minimum(constituent_min_value, constituent_errflg, constituent_errmsg)
field_data_ptr(:,:,constituent_idx) = constituent_min_value
diff --git a/test/unit/python/sample_files/write_init_files/physics_inputs_bvd.F90 b/test/unit/python/sample_files/write_init_files/physics_inputs_bvd.F90
index de773cc5..363d26cc 100644
--- a/test/unit/python/sample_files/write_init_files/physics_inputs_bvd.F90
+++ b/test/unit/python/sample_files/write_init_files/physics_inputs_bvd.F90
@@ -204,16 +204,7 @@ subroutine physics_read_data(file, suite_names, timestep, read_initialized_varia
if (constituent_errflg /= 0) then
call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
end if
- if (constituent_has_default) then
- call const_props(constituent_idx)%default_value(constituent_default_value, constituent_errflg, constituent_errmsg)
- if (constituent_errflg /= 0) then
- call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
- end if
- field_data_ptr(:,:,constituent_idx) = constituent_default_value
- if (masterproc) then
- write(iulog,*) 'Constituent ', trim(std_name), ' initialized to default value: ', constituent_default_value
- end if
- else
+ if (.not. constituent_has_default) then
! Intialize to constituent's configured minimum value
call const_props(constituent_idx)%minimum(constituent_min_value, constituent_errflg, constituent_errmsg)
field_data_ptr(:,:,constituent_idx) = constituent_min_value
diff --git a/test/unit/python/sample_files/write_init_files/physics_inputs_cnst.F90 b/test/unit/python/sample_files/write_init_files/physics_inputs_cnst.F90
index b7897809..b76746a6 100644
--- a/test/unit/python/sample_files/write_init_files/physics_inputs_cnst.F90
+++ b/test/unit/python/sample_files/write_init_files/physics_inputs_cnst.F90
@@ -204,16 +204,7 @@ subroutine physics_read_data(file, suite_names, timestep, read_initialized_varia
if (constituent_errflg /= 0) then
call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
end if
- if (constituent_has_default) then
- call const_props(constituent_idx)%default_value(constituent_default_value, constituent_errflg, constituent_errmsg)
- if (constituent_errflg /= 0) then
- call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
- end if
- field_data_ptr(:,:,constituent_idx) = constituent_default_value
- if (masterproc) then
- write(iulog,*) 'Constituent ', trim(std_name), ' initialized to default value: ', constituent_default_value
- end if
- else
+ if (.not. constituent_has_default) then
! Intialize to constituent's configured minimum value
call const_props(constituent_idx)%minimum(constituent_min_value, constituent_errflg, constituent_errmsg)
field_data_ptr(:,:,constituent_idx) = constituent_min_value
diff --git a/test/unit/python/sample_files/write_init_files/physics_inputs_ddt.F90 b/test/unit/python/sample_files/write_init_files/physics_inputs_ddt.F90
index db732939..b5854591 100644
--- a/test/unit/python/sample_files/write_init_files/physics_inputs_ddt.F90
+++ b/test/unit/python/sample_files/write_init_files/physics_inputs_ddt.F90
@@ -204,16 +204,7 @@ subroutine physics_read_data(file, suite_names, timestep, read_initialized_varia
if (constituent_errflg /= 0) then
call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
end if
- if (constituent_has_default) then
- call const_props(constituent_idx)%default_value(constituent_default_value, constituent_errflg, constituent_errmsg)
- if (constituent_errflg /= 0) then
- call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
- end if
- field_data_ptr(:,:,constituent_idx) = constituent_default_value
- if (masterproc) then
- write(iulog,*) 'Constituent ', trim(std_name), ' initialized to default value: ', constituent_default_value
- end if
- else
+ if (.not. constituent_has_default) then
! Intialize to constituent's configured minimum value
call const_props(constituent_idx)%minimum(constituent_min_value, constituent_errflg, constituent_errmsg)
field_data_ptr(:,:,constituent_idx) = constituent_min_value
diff --git a/test/unit/python/sample_files/write_init_files/physics_inputs_ddt2.F90 b/test/unit/python/sample_files/write_init_files/physics_inputs_ddt2.F90
index ad60820f..6cd57f99 100644
--- a/test/unit/python/sample_files/write_init_files/physics_inputs_ddt2.F90
+++ b/test/unit/python/sample_files/write_init_files/physics_inputs_ddt2.F90
@@ -204,16 +204,7 @@ subroutine physics_read_data(file, suite_names, timestep, read_initialized_varia
if (constituent_errflg /= 0) then
call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
end if
- if (constituent_has_default) then
- call const_props(constituent_idx)%default_value(constituent_default_value, constituent_errflg, constituent_errmsg)
- if (constituent_errflg /= 0) then
- call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
- end if
- field_data_ptr(:,:,constituent_idx) = constituent_default_value
- if (masterproc) then
- write(iulog,*) 'Constituent ', trim(std_name), ' initialized to default value: ', constituent_default_value
- end if
- else
+ if (.not. constituent_has_default) then
! Intialize to constituent's configured minimum value
call const_props(constituent_idx)%minimum(constituent_min_value, constituent_errflg, constituent_errmsg)
field_data_ptr(:,:,constituent_idx) = constituent_min_value
diff --git a/test/unit/python/sample_files/write_init_files/physics_inputs_ddt_array.F90 b/test/unit/python/sample_files/write_init_files/physics_inputs_ddt_array.F90
index 0f6795c3..d5d46fc6 100644
--- a/test/unit/python/sample_files/write_init_files/physics_inputs_ddt_array.F90
+++ b/test/unit/python/sample_files/write_init_files/physics_inputs_ddt_array.F90
@@ -204,16 +204,7 @@ subroutine physics_read_data(file, suite_names, timestep, read_initialized_varia
if (constituent_errflg /= 0) then
call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
end if
- if (constituent_has_default) then
- call const_props(constituent_idx)%default_value(constituent_default_value, constituent_errflg, constituent_errmsg)
- if (constituent_errflg /= 0) then
- call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
- end if
- field_data_ptr(:,:,constituent_idx) = constituent_default_value
- if (masterproc) then
- write(iulog,*) 'Constituent ', trim(std_name), ' initialized to default value: ', constituent_default_value
- end if
- else
+ if (.not. constituent_has_default) then
! Intialize to constituent's configured minimum value
call const_props(constituent_idx)%minimum(constituent_min_value, constituent_errflg, constituent_errmsg)
field_data_ptr(:,:,constituent_idx) = constituent_min_value
diff --git a/test/unit/python/sample_files/write_init_files/physics_inputs_host_var.F90 b/test/unit/python/sample_files/write_init_files/physics_inputs_host_var.F90
index e15415d8..7bae2748 100644
--- a/test/unit/python/sample_files/write_init_files/physics_inputs_host_var.F90
+++ b/test/unit/python/sample_files/write_init_files/physics_inputs_host_var.F90
@@ -201,16 +201,7 @@ subroutine physics_read_data(file, suite_names, timestep, read_initialized_varia
if (constituent_errflg /= 0) then
call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
end if
- if (constituent_has_default) then
- call const_props(constituent_idx)%default_value(constituent_default_value, constituent_errflg, constituent_errmsg)
- if (constituent_errflg /= 0) then
- call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
- end if
- field_data_ptr(:,:,constituent_idx) = constituent_default_value
- if (masterproc) then
- write(iulog,*) 'Constituent ', trim(std_name), ' initialized to default value: ', constituent_default_value
- end if
- else
+ if (.not. constituent_has_default) then
! Intialize to constituent's configured minimum value
call const_props(constituent_idx)%minimum(constituent_min_value, constituent_errflg, constituent_errmsg)
field_data_ptr(:,:,constituent_idx) = constituent_min_value
diff --git a/test/unit/python/sample_files/write_init_files/physics_inputs_initial_value.F90 b/test/unit/python/sample_files/write_init_files/physics_inputs_initial_value.F90
index 69de0a2a..cc367a4f 100644
--- a/test/unit/python/sample_files/write_init_files/physics_inputs_initial_value.F90
+++ b/test/unit/python/sample_files/write_init_files/physics_inputs_initial_value.F90
@@ -204,16 +204,7 @@ subroutine physics_read_data(file, suite_names, timestep, read_initialized_varia
if (constituent_errflg /= 0) then
call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
end if
- if (constituent_has_default) then
- call const_props(constituent_idx)%default_value(constituent_default_value, constituent_errflg, constituent_errmsg)
- if (constituent_errflg /= 0) then
- call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
- end if
- field_data_ptr(:,:,constituent_idx) = constituent_default_value
- if (masterproc) then
- write(iulog,*) 'Constituent ', trim(std_name), ' initialized to default value: ', constituent_default_value
- end if
- else
+ if (.not. constituent_has_default) then
! Intialize to constituent's configured minimum value
call const_props(constituent_idx)%minimum(constituent_min_value, constituent_errflg, constituent_errmsg)
field_data_ptr(:,:,constituent_idx) = constituent_min_value
diff --git a/test/unit/python/sample_files/write_init_files/physics_inputs_mf.F90 b/test/unit/python/sample_files/write_init_files/physics_inputs_mf.F90
index 88b30b1a..48ec363f 100644
--- a/test/unit/python/sample_files/write_init_files/physics_inputs_mf.F90
+++ b/test/unit/python/sample_files/write_init_files/physics_inputs_mf.F90
@@ -205,16 +205,7 @@ subroutine physics_read_data(file, suite_names, timestep, read_initialized_varia
if (constituent_errflg /= 0) then
call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
end if
- if (constituent_has_default) then
- call const_props(constituent_idx)%default_value(constituent_default_value, constituent_errflg, constituent_errmsg)
- if (constituent_errflg /= 0) then
- call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
- end if
- field_data_ptr(:,:,constituent_idx) = constituent_default_value
- if (masterproc) then
- write(iulog,*) 'Constituent ', trim(std_name), ' initialized to default value: ', constituent_default_value
- end if
- else
+ if (.not. constituent_has_default) then
! Intialize to constituent's configured minimum value
call const_props(constituent_idx)%minimum(constituent_min_value, constituent_errflg, constituent_errmsg)
field_data_ptr(:,:,constituent_idx) = constituent_min_value
diff --git a/test/unit/python/sample_files/write_init_files/physics_inputs_no_horiz.F90 b/test/unit/python/sample_files/write_init_files/physics_inputs_no_horiz.F90
index 2b76aaa3..f72f8416 100644
--- a/test/unit/python/sample_files/write_init_files/physics_inputs_no_horiz.F90
+++ b/test/unit/python/sample_files/write_init_files/physics_inputs_no_horiz.F90
@@ -204,16 +204,7 @@ subroutine physics_read_data(file, suite_names, timestep, read_initialized_varia
if (constituent_errflg /= 0) then
call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
end if
- if (constituent_has_default) then
- call const_props(constituent_idx)%default_value(constituent_default_value, constituent_errflg, constituent_errmsg)
- if (constituent_errflg /= 0) then
- call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
- end if
- field_data_ptr(:,:,constituent_idx) = constituent_default_value
- if (masterproc) then
- write(iulog,*) 'Constituent ', trim(std_name), ' initialized to default value: ', constituent_default_value
- end if
- else
+ if (.not. constituent_has_default) then
! Intialize to constituent's configured minimum value
call const_props(constituent_idx)%minimum(constituent_min_value, constituent_errflg, constituent_errmsg)
field_data_ptr(:,:,constituent_idx) = constituent_min_value
diff --git a/test/unit/python/sample_files/write_init_files/physics_inputs_noreq.F90 b/test/unit/python/sample_files/write_init_files/physics_inputs_noreq.F90
index f8f1c0fd..93607a57 100644
--- a/test/unit/python/sample_files/write_init_files/physics_inputs_noreq.F90
+++ b/test/unit/python/sample_files/write_init_files/physics_inputs_noreq.F90
@@ -197,16 +197,7 @@ subroutine physics_read_data(file, suite_names, timestep, read_initialized_varia
if (constituent_errflg /= 0) then
call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
end if
- if (constituent_has_default) then
- call const_props(constituent_idx)%default_value(constituent_default_value, constituent_errflg, constituent_errmsg)
- if (constituent_errflg /= 0) then
- call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
- end if
- field_data_ptr(:,:,constituent_idx) = constituent_default_value
- if (masterproc) then
- write(iulog,*) 'Constituent ', trim(std_name), ' initialized to default value: ', constituent_default_value
- end if
- else
+ if (.not. constituent_has_default) then
! Intialize to constituent's configured minimum value
call const_props(constituent_idx)%minimum(constituent_min_value, constituent_errflg, constituent_errmsg)
field_data_ptr(:,:,constituent_idx) = constituent_min_value
diff --git a/test/unit/python/sample_files/write_init_files/physics_inputs_param.F90 b/test/unit/python/sample_files/write_init_files/physics_inputs_param.F90
index 3bbe1e48..0f8fdaa5 100644
--- a/test/unit/python/sample_files/write_init_files/physics_inputs_param.F90
+++ b/test/unit/python/sample_files/write_init_files/physics_inputs_param.F90
@@ -207,16 +207,7 @@ subroutine physics_read_data(file, suite_names, timestep, read_initialized_varia
if (constituent_errflg /= 0) then
call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
end if
- if (constituent_has_default) then
- call const_props(constituent_idx)%default_value(constituent_default_value, constituent_errflg, constituent_errmsg)
- if (constituent_errflg /= 0) then
- call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
- end if
- field_data_ptr(:,:,constituent_idx) = constituent_default_value
- if (masterproc) then
- write(iulog,*) 'Constituent ', trim(std_name), ' initialized to default value: ', constituent_default_value
- end if
- else
+ if (.not. constituent_has_default) then
! Intialize to constituent's configured minimum value
call const_props(constituent_idx)%minimum(constituent_min_value, constituent_errflg, constituent_errmsg)
field_data_ptr(:,:,constituent_idx) = constituent_min_value
diff --git a/test/unit/python/sample_files/write_init_files/physics_inputs_protect.F90 b/test/unit/python/sample_files/write_init_files/physics_inputs_protect.F90
index ffdaa70b..80bba9b7 100644
--- a/test/unit/python/sample_files/write_init_files/physics_inputs_protect.F90
+++ b/test/unit/python/sample_files/write_init_files/physics_inputs_protect.F90
@@ -204,16 +204,7 @@ subroutine physics_read_data(file, suite_names, timestep, read_initialized_varia
if (constituent_errflg /= 0) then
call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
end if
- if (constituent_has_default) then
- call const_props(constituent_idx)%default_value(constituent_default_value, constituent_errflg, constituent_errmsg)
- if (constituent_errflg /= 0) then
- call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
- end if
- field_data_ptr(:,:,constituent_idx) = constituent_default_value
- if (masterproc) then
- write(iulog,*) 'Constituent ', trim(std_name), ' initialized to default value: ', constituent_default_value
- end if
- else
+ if (.not. constituent_has_default) then
! Intialize to constituent's configured minimum value
call const_props(constituent_idx)%minimum(constituent_min_value, constituent_errflg, constituent_errmsg)
field_data_ptr(:,:,constituent_idx) = constituent_min_value
diff --git a/test/unit/python/sample_files/write_init_files/physics_inputs_scalar.F90 b/test/unit/python/sample_files/write_init_files/physics_inputs_scalar.F90
index 99602499..6f8d5330 100644
--- a/test/unit/python/sample_files/write_init_files/physics_inputs_scalar.F90
+++ b/test/unit/python/sample_files/write_init_files/physics_inputs_scalar.F90
@@ -204,16 +204,7 @@ subroutine physics_read_data(file, suite_names, timestep, read_initialized_varia
if (constituent_errflg /= 0) then
call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
end if
- if (constituent_has_default) then
- call const_props(constituent_idx)%default_value(constituent_default_value, constituent_errflg, constituent_errmsg)
- if (constituent_errflg /= 0) then
- call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
- end if
- field_data_ptr(:,:,constituent_idx) = constituent_default_value
- if (masterproc) then
- write(iulog,*) 'Constituent ', trim(std_name), ' initialized to default value: ', constituent_default_value
- end if
- else
+ if (.not. constituent_has_default) then
! Intialize to constituent's configured minimum value
call const_props(constituent_idx)%minimum(constituent_min_value, constituent_errflg, constituent_errmsg)
field_data_ptr(:,:,constituent_idx) = constituent_min_value
diff --git a/test/unit/python/sample_files/write_init_files/physics_inputs_simple.F90 b/test/unit/python/sample_files/write_init_files/physics_inputs_simple.F90
index 737614df..b5873948 100644
--- a/test/unit/python/sample_files/write_init_files/physics_inputs_simple.F90
+++ b/test/unit/python/sample_files/write_init_files/physics_inputs_simple.F90
@@ -204,16 +204,7 @@ subroutine physics_read_data(file, suite_names, timestep, read_initialized_varia
if (constituent_errflg /= 0) then
call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
end if
- if (constituent_has_default) then
- call const_props(constituent_idx)%default_value(constituent_default_value, constituent_errflg, constituent_errmsg)
- if (constituent_errflg /= 0) then
- call endrun(constituent_errmsg, file=__FILE__, line=__LINE__)
- end if
- field_data_ptr(:,:,constituent_idx) = constituent_default_value
- if (masterproc) then
- write(iulog,*) 'Constituent ', trim(std_name), ' initialized to default value: ', constituent_default_value
- end if
- else
+ if (.not. constituent_has_default) then
! Intialize to constituent's configured minimum value
call const_props(constituent_idx)%minimum(constituent_min_value, constituent_errflg, constituent_errmsg)
field_data_ptr(:,:,constituent_idx) = constituent_min_value