From 992089540213b2575444e5e13d9fc88d06b18b55 Mon Sep 17 00:00:00 2001 From: Keith Lindsay Date: Mon, 19 Mar 2018 17:38:43 -0600 Subject: [PATCH] remove Jint_100m_*tot diagnostics change default frequency of full-depth Jint_*tot diagnostics to never misc code cleanup Testing: marbl_dev_klindsay_n113_marbl_dev_n78_cesm_pop_2_1_20180205 aux_pop_MARBL cheyenne/{intel,gnu}: (baseline comparison to previous commit on bugfix/1 branch) except for tests mentioned below, all tests pass some MEMCOMP failures Files Modified: modified: autogenerated_src/default_diagnostics.json modified: src/default_diagnostics.yaml modified: src/marbl_ciso_mod.F90 modified: src/marbl_diagnostics_mod.F90 --- autogenerated_src/default_diagnostics.json | 69 ++--------- src/default_diagnostics.yaml | 60 ++------- src/marbl_ciso_mod.F90 | 14 +-- src/marbl_diagnostics_mod.F90 | 136 +++------------------ 4 files changed, 40 insertions(+), 239 deletions(-) diff --git a/autogenerated_src/default_diagnostics.json b/autogenerated_src/default_diagnostics.json index 33d7d89c..0b7b552e 100644 --- a/autogenerated_src/default_diagnostics.json +++ b/autogenerated_src/default_diagnostics.json @@ -580,31 +580,11 @@ "units": "mmol/m^3 cm/s", "vertical_grid": "none" }, - "CISO_Jint_100m_13Ctot": { - "dependencies": { - "ciso_on": ".true." - }, - "frequency": "medium", - "longname": "13Ctot Source Sink Term Vertical Integral, 0-100m", - "operator": "average", - "units": "mmol/m^3 cm/s", - "vertical_grid": "none" - }, - "CISO_Jint_100m_14Ctot": { - "dependencies": { - "ciso_on": ".true." - }, - "frequency": "medium", - "longname": "14Ctot Source Sink Term Vertical Integral, 0-100m", - "operator": "average", - "units": "mmol/m^3 cm/s", - "vertical_grid": "none" - }, "CISO_Jint_13Ctot": { "dependencies": { "ciso_on": ".true." }, - "frequency": "medium", + "frequency": "never", "longname": "13Ctot Source Sink Term Vertical Integral", "operator": "average", "units": "mmol/m^3 cm/s", @@ -614,7 +594,7 @@ "dependencies": { "ciso_on": ".true." }, - "frequency": "medium", + "frequency": "never", "longname": "14Ctot Source Sink Term Vertical Integral", "operator": "average", "units": "mmol/m^3 cm/s", @@ -1326,71 +1306,36 @@ "units": "mmol/m^2/s", "vertical_grid": "none" }, - "Jint_100m_Ctot": { - "frequency": "medium", - "longname": "Vertical Integral of Conservative Subterms of Source Sink Term for Ctot, 0-100m", - "operator": "average", - "units": "mmol/m^3 cm/s", - "vertical_grid": "none" - }, - "Jint_100m_Fetot": { - "frequency": "medium", - "longname": "Vertical Integral of Conservative Subterms of Source Sink Term for Fetot, 0-100m", - "operator": "average", - "units": "mmol/m^3 cm/s", - "vertical_grid": "none" - }, - "Jint_100m_Ntot": { - "frequency": "medium", - "longname": "Vertical Integral of Conservative Subterms of Source Sink Term for Ntot, 0-100m", - "operator": "average", - "units": "mmol/m^3 cm/s", - "vertical_grid": "none" - }, - "Jint_100m_Ptot": { - "frequency": "medium", - "longname": "Vertical Integral of Conservative Subterms of Source Sink Term for Ptot, 0-100m", - "operator": "average", - "units": "mmol/m^3 cm/s", - "vertical_grid": "none" - }, - "Jint_100m_Sitot": { - "frequency": "medium", - "longname": "Vertical Integral of Conservative Subterms of Source Sink Term for Sitot, 0-100m", - "operator": "average", - "units": "mmol/m^3 cm/s", - "vertical_grid": "none" - }, "Jint_Ctot": { - "frequency": "medium", + "frequency": "never", "longname": "Vertical Integral of Conservative Subterms of Source Sink Term for Ctot", "operator": "average", "units": "mmol/m^3 cm/s", "vertical_grid": "none" }, "Jint_Fetot": { - "frequency": "medium", + "frequency": "never", "longname": "Vertical Integral of Conservative Subterms of Source Sink Term for Fetot", "operator": "average", "units": "mmol/m^3 cm/s", "vertical_grid": "none" }, "Jint_Ntot": { - "frequency": "medium", + "frequency": "never", "longname": "Vertical Integral of Conservative Subterms of Source Sink Term for Ntot", "operator": "average", "units": "mmol/m^3 cm/s", "vertical_grid": "none" }, "Jint_Ptot": { - "frequency": "medium", + "frequency": "never", "longname": "Vertical Integral of Conservative Subterms of Source Sink Term for Ptot", "operator": "average", "units": "mmol/m^3 cm/s", "vertical_grid": "none" }, "Jint_Sitot": { - "frequency": "medium", + "frequency": "never", "longname": "Vertical Integral of Conservative Subterms of Source Sink Term for Sitot", "operator": "average", "units": "mmol/m^3 cm/s", diff --git a/src/default_diagnostics.yaml b/src/default_diagnostics.yaml index 0b1fe894..a8388a1e 100644 --- a/src/default_diagnostics.yaml +++ b/src/default_diagnostics.yaml @@ -414,61 +414,31 @@ Jint_Ctot : longname : Vertical Integral of Conservative Subterms of Source Sink Term for Ctot units : mmol/m^3 cm/s vertical_grid : none - frequency : medium - operator : average -Jint_100m_Ctot : - longname : Vertical Integral of Conservative Subterms of Source Sink Term for Ctot, 0-100m - units : mmol/m^3 cm/s - vertical_grid : none - frequency : medium + frequency : never operator : average Jint_Ntot : longname : Vertical Integral of Conservative Subterms of Source Sink Term for Ntot units : mmol/m^3 cm/s vertical_grid : none - frequency : medium - operator : average -Jint_100m_Ntot : - longname : Vertical Integral of Conservative Subterms of Source Sink Term for Ntot, 0-100m - units : mmol/m^3 cm/s - vertical_grid : none - frequency : medium + frequency : never operator : average Jint_Ptot : longname : Vertical Integral of Conservative Subterms of Source Sink Term for Ptot units : mmol/m^3 cm/s vertical_grid : none - frequency : medium - operator : average -Jint_100m_Ptot : - longname : Vertical Integral of Conservative Subterms of Source Sink Term for Ptot, 0-100m - units : mmol/m^3 cm/s - vertical_grid : none - frequency : medium + frequency : never operator : average Jint_Sitot : longname : Vertical Integral of Conservative Subterms of Source Sink Term for Sitot units : mmol/m^3 cm/s vertical_grid : none - frequency : medium - operator : average -Jint_100m_Sitot : - longname : Vertical Integral of Conservative Subterms of Source Sink Term for Sitot, 0-100m - units : mmol/m^3 cm/s - vertical_grid : none - frequency : medium + frequency : never operator : average Jint_Fetot : longname : Vertical Integral of Conservative Subterms of Source Sink Term for Fetot units : mmol/m^3 cm/s vertical_grid : none - frequency : medium - operator : average -Jint_100m_Fetot : - longname : Vertical Integral of Conservative Subterms of Source Sink Term for Fetot, 0-100m - units : mmol/m^3 cm/s - vertical_grid : none - frequency : medium + frequency : never operator : average # Particulate 2D diags @@ -1056,7 +1026,7 @@ CISO_Jint_13Ctot : longname : 13Ctot Source Sink Term Vertical Integral units : mmol/m^3 cm/s vertical_grid : none - frequency : medium + frequency : never operator : average CISO_Jint_14Ctot : dependencies : @@ -1064,23 +1034,7 @@ CISO_Jint_14Ctot : longname : 14Ctot Source Sink Term Vertical Integral units : mmol/m^3 cm/s vertical_grid : none - frequency : medium - operator : average -CISO_Jint_100m_13Ctot : - dependencies : - ciso_on : .true. - longname : 13Ctot Source Sink Term Vertical Integral, 0-100m - units : mmol/m^3 cm/s - vertical_grid : none - frequency : medium - operator : average -CISO_Jint_100m_14Ctot : - dependencies : - ciso_on : .true. - longname : 14Ctot Source Sink Term Vertical Integral, 0-100m - units : mmol/m^3 cm/s - vertical_grid : none - frequency : medium + frequency : never operator : average calcToSed_13C : dependencies : diff --git a/src/marbl_ciso_mod.F90 b/src/marbl_ciso_mod.F90 index 182f5a41..d0621dc9 100644 --- a/src/marbl_ciso_mod.F90 +++ b/src/marbl_ciso_mod.F90 @@ -870,29 +870,29 @@ subroutine marbl_ciso_set_interior_forcing( & autotroph_d14C, & autotrophCaCO3_d13C, & autotrophCaCO3_d14C, & - DIC_d13C, & - DIC_d14C, & - DOCtot_d13C, & - DOCtot_d14C, & - zooC_d13C, & - zooC_d14C, & photo13C, & photo14C, & eps_autotroph, & mui_to_co2star, & Ca13CO3_prod, & Ca14CO3_prod, & + DIC_d13C, & + DIC_d14C, & + DOCtot_d13C, & + DOCtot_d14C, & + zooC_d13C, & + zooC_d14C, & DO13Ctot_prod, & DO14Ctot_prod, & DO13Ctot_remin, & DO14Ctot_remin, & eps_aq_g, & eps_dic_g, & + decay_14Ctot, & PO13C, & PO14C, & P_Ca13CO3, & P_Ca14CO3, & - decay_14Ctot, & column_dtracer, & marbl_tracer_indices,& marbl_interior_diags,& diff --git a/src/marbl_diagnostics_mod.F90 b/src/marbl_diagnostics_mod.F90 index 29c4c6ff..3d41680f 100644 --- a/src/marbl_diagnostics_mod.F90 +++ b/src/marbl_diagnostics_mod.F90 @@ -91,15 +91,10 @@ module marbl_diagnostics_mod integer(int_kind) :: DOCr_remin_zint integer(int_kind) :: DOCr_remin_zint_100m integer(int_kind) :: Jint_Ctot - integer(int_kind) :: Jint_100m_Ctot integer(int_kind) :: Jint_Ntot - integer(int_kind) :: Jint_100m_Ntot integer(int_kind) :: Jint_Ptot - integer(int_kind) :: Jint_100m_Ptot integer(int_kind) :: Jint_Sitot - integer(int_kind) :: Jint_100m_Sitot integer(int_kind) :: Jint_Fetot - integer(int_kind) :: Jint_100m_Fetot ! Particulate 2D diags integer(int_kind) :: calcToSed @@ -319,8 +314,6 @@ module marbl_diagnostics_mod integer (int_kind) :: CISO_DO14Ctot_remin ! do14ctot remineralization integer (int_kind) :: CISO_Jint_13Ctot ! vertically integrated source sink term, 13Ctot integer (int_kind) :: CISO_Jint_14Ctot ! vertically integrated source sink term, 14Ctot - integer (int_kind) :: CISO_Jint_100m_13Ctot ! vertically integrated source sink term, 0-100m, 13Ctot - integer (int_kind) :: CISO_Jint_100m_14Ctot ! vertically integrated source sink term, 0-100m, 14Ctot integer (int_kind) :: CISO_zooC_d13C ! if for d13C of zooC integer (int_kind) :: CISO_zooC_d14C ! if for d14C of zooC integer (int_kind) :: CISO_DOCtot_d13C ! if for d13C of DOCtot @@ -1159,18 +1152,6 @@ subroutine marbl_diagnostics_init( & return end if - lname = 'Vertical Integral of Conservative Subterms of Source Sink Term for Ctot, 0-100m' - sname = 'Jint_100m_Ctot' - units = 'mmol/m^3 cm/s' - vgrid = 'none' - truncate = .false. - call diags%add_diagnostic(lname, sname, units, vgrid, truncate, & - ind%Jint_100m_Ctot, marbl_status_log) - if (marbl_status_log%labort_marbl) then - call log_add_diagnostics_error(marbl_status_log, sname, subname) - return - end if - lname = 'Vertical Integral of Conservative Subterms of Source Sink Term for Ntot' sname = 'Jint_Ntot' units = 'mmol/m^3 cm/s' @@ -1183,18 +1164,6 @@ subroutine marbl_diagnostics_init( & return end if - lname = 'Vertical Integral of Conservative Subterms of Source Sink Term for Ntot, 0-100m' - sname = 'Jint_100m_Ntot' - units = 'mmol/m^3 cm/s' - vgrid = 'none' - truncate = .false. - call diags%add_diagnostic(lname, sname, units, vgrid, truncate, & - ind%Jint_100m_Ntot, marbl_status_log) - if (marbl_status_log%labort_marbl) then - call log_add_diagnostics_error(marbl_status_log, sname, subname) - return - end if - lname = 'Vertical Integral of Conservative Subterms of Source Sink Term for Ptot' sname = 'Jint_Ptot' units = 'mmol/m^3 cm/s' @@ -1207,18 +1176,6 @@ subroutine marbl_diagnostics_init( & return end if - lname = 'Vertical Integral of Conservative Subterms of Source Sink Term for Ptot, 0-100m' - sname = 'Jint_100m_Ptot' - units = 'mmol/m^3 cm/s' - vgrid = 'none' - truncate = .false. - call diags%add_diagnostic(lname, sname, units, vgrid, truncate, & - ind%Jint_100m_Ptot, marbl_status_log) - if (marbl_status_log%labort_marbl) then - call log_add_diagnostics_error(marbl_status_log, sname, subname) - return - end if - lname = 'Vertical Integral of Conservative Subterms of Source Sink Term for Sitot' sname = 'Jint_Sitot' units = 'mmol/m^3 cm/s' @@ -1231,18 +1188,6 @@ subroutine marbl_diagnostics_init( & return end if - lname = 'Vertical Integral of Conservative Subterms of Source Sink Term for Sitot, 0-100m' - sname = 'Jint_100m_Sitot' - units = 'mmol/m^3 cm/s' - vgrid = 'none' - truncate = .false. - call diags%add_diagnostic(lname, sname, units, vgrid, truncate, & - ind%Jint_100m_Sitot, marbl_status_log) - if (marbl_status_log%labort_marbl) then - call log_add_diagnostics_error(marbl_status_log, sname, subname) - return - end if - lname = 'Vertical Integral of Conservative Subterms of Source Sink Term for Fetot' sname = 'Jint_Fetot' units = 'mmol/m^3 cm/s' @@ -1255,18 +1200,6 @@ subroutine marbl_diagnostics_init( & return end if - lname = 'Vertical Integral of Conservative Subterms of Source Sink Term for Fetot, 0-100m' - sname = 'Jint_100m_Fetot' - units = 'mmol/m^3 cm/s' - vgrid = 'none' - truncate = .false. - call diags%add_diagnostic(lname, sname, units, vgrid, truncate, & - ind%Jint_100m_Fetot, marbl_status_log) - if (marbl_status_log%labort_marbl) then - call log_add_diagnostics_error(marbl_status_log, sname, subname) - return - end if - ! Particulate 2D diags lname = 'CaCO3 Flux to Sediments' sname = 'calcToSed' @@ -3654,30 +3587,6 @@ subroutine marbl_diagnostics_init( & return end if - lname = '13Ctot Source Sink Term Vertical Integral, 0-100m' - sname = 'CISO_Jint_100m_13Ctot' - units = 'mmol/m^3 cm/s' - vgrid = 'none' - truncate = .false. - call diags%add_diagnostic(lname, sname, units, vgrid, truncate, & - ind%CISO_Jint_100m_13Ctot, marbl_status_log) - if (marbl_status_log%labort_marbl) then - call log_add_diagnostics_error(marbl_status_log, sname, subname) - return - end if - - lname = '14Ctot Source Sink Term Vertical Integral, 0-100m' - sname = 'CISO_Jint_100m_14Ctot' - units = 'mmol/m^3 cm/s' - vgrid = 'none' - truncate = .false. - call diags%add_diagnostic(lname, sname, units, vgrid, truncate, & - ind%CISO_Jint_100m_14Ctot, marbl_status_log) - if (marbl_status_log%labort_marbl) then - call log_add_diagnostics_error(marbl_status_log, sname, subname) - return - end if - ! Nonstandard autotroph 2D and 3D fields for each autotroph if (.not.ind%lconstructed()) then allocate(ind%CISO_eps_autotroph(autotroph_cnt)) @@ -5026,7 +4935,6 @@ subroutine store_diagnostics_carbon_fluxes(marbl_domain, POC, P_CaCO3, dtracers, call compute_vertical_integrals(work, delta_z, kmt, & full_depth_integral=diags(ind%Jint_Ctot)%field_2d(1), & - near_surface_integral=diags(ind%Jint_100m_Ctot)%field_2d(1), & integrated_terms = POC%sed_loss + P_CaCO3%sed_loss) if (abs(diags(ind%Jint_Ctot)%field_2d(1)) .gt. Jint_Ctot_thres) then @@ -5097,7 +5005,6 @@ subroutine store_diagnostics_nitrogen_fluxes(marbl_domain, & call compute_vertical_integrals(work, delta_z, kmt, & full_depth_integral=diags(ind%Jint_Ntot)%field_2d(1), & - near_surface_integral=diags(ind%Jint_100m_Ntot)%field_2d(1), & integrated_terms = PON_sed_loss) if (abs(diags(ind%Jint_Ntot)%field_2d(1)) .gt. Jint_Ntot_thres) then @@ -5163,7 +5070,6 @@ subroutine store_diagnostics_phosphorus_fluxes(marbl_domain, POP, & call compute_vertical_integrals(work, delta_z, kmt, & full_depth_integral=diags(ind%Jint_Ptot)%field_2d(1), & - near_surface_integral=diags(ind%Jint_100m_Ptot)%field_2d(1), & integrated_terms = POP%sed_loss) if (abs(diags(ind%Jint_Ptot)%field_2d(1)) .gt. Jint_Ptot_thres) then @@ -5220,7 +5126,6 @@ subroutine store_diagnostics_silicon_fluxes(marbl_domain, P_SiO2, dtracers, & call compute_vertical_integrals(work, delta_z, kmt, & full_depth_integral=diags(ind%Jint_Sitot)%field_2d(1), & - near_surface_integral=diags(ind%Jint_100m_Sitot)%field_2d(1), & integrated_terms = P_SiO2%sed_loss) if (abs(diags(ind%Jint_Sitot)%field_2d(1)) .gt. Jint_Sitot_thres) then @@ -5278,7 +5183,6 @@ subroutine store_diagnostics_iron_fluxes(marbl_domain, P_iron, dust, & call compute_vertical_integrals(work, delta_z, kmt, & full_depth_integral=diags(ind%Jint_Fetot)%field_2d(1), & - near_surface_integral=diags(ind%Jint_100m_Fetot)%field_2d(1), & integrated_terms = P_iron%sed_loss - fesedflux) if (abs(diags(ind%Jint_Fetot)%field_2d(1)) .gt. Jint_Fetot_thres) then @@ -5323,29 +5227,29 @@ subroutine store_diagnostics_ciso_interior(& autotroph_d14C, & autotrophCaCO3_d13C, & autotrophCaCO3_d14C, & - DIC_d13C, & - DIC_d14C, & - DOCtot_d13C, & - DOCtot_d14C, & - zooC_d13C, & - zooC_d14C, & photo13C, & photo14C, & eps_autotroph, & mui_to_co2star, & Ca13CO3_prod, & Ca14CO3_prod, & + DIC_d13C, & + DIC_d14C, & + DOCtot_d13C, & + DOCtot_d14C, & + zooC_d13C, & + zooC_d14C, & DO13Ctot_prod, & DO14Ctot_prod, & DO13Ctot_remin, & DO14Ctot_remin, & eps_aq_g, & eps_dic_g, & + decay_14Ctot, & PO13C, & PO14C, & P_Ca13CO3, & P_Ca14CO3, & - decay_14Ctot, & dtracers, & marbl_tracer_indices,& marbl_diags, & @@ -5375,29 +5279,29 @@ subroutine store_diagnostics_ciso_interior(& real (r8), intent(in), dimension(marbl_domain%km) :: & DIC_d13C , & ! d13C of DIC - DOCtot_d13C , & ! d13C of DOCtot - zooC_d13C , & ! d13C of zooC DIC_d14C , & ! d14C of DIC + DOCtot_d13C , & ! d13C of DOCtot DOCtot_d14C , & ! d14C of DOCtot + zooC_d13C , & ! d13C of zooC zooC_d14C , & ! d14C of zooC DO13Ctot_prod , & ! production of 13C DOCtot (mmol C/m^3/sec) - DO13Ctot_remin , & ! remineralization of 13C DOCtot (mmol C/m^3/sec) DO14Ctot_prod , & ! production of 14C DOCtot (mmol C/m^3/sec) + DO13Ctot_remin , & ! remineralization of 13C DOCtot (mmol C/m^3/sec) DO14Ctot_remin , & ! remineralization of 14C DOCtot (mmol C/m^3/sec) eps_aq_g , & ! equilibrium fractionation (CO2_gaseous <-> CO2_aq) eps_dic_g , & ! equilibrium fractionation between total DIC and gaseous CO2 decay_14Ctot ! 14C decay loss term - real (r8), intent(in) :: dtracers(:,:) ! (tracer_cnt, km) computed source/sink terms - - type(marbl_tracer_index_type), intent(in) :: marbl_tracer_indices - type(column_sinking_particle_type), intent(in) :: & PO13C, & ! base units = nmol 13C PO14C, & ! base units = nmol 14C P_Ca13CO3, & ! base units = nmol 13C CaCO3 P_Ca14CO3 ! base units = nmol 14C CaCO3 + real (r8), intent(in) :: dtracers(:,:) ! (tracer_cnt, km) computed source/sink terms + + type(marbl_tracer_index_type), intent(in) :: marbl_tracer_indices + type(marbl_diagnostics_type), intent(inout) :: & marbl_diags @@ -5440,7 +5344,7 @@ subroutine store_diagnostics_ciso_interior(& diags(ind%CISO_photo13C_TOT_zint)%field_2d(1) = sum(delta_z * sum(photo13C, dim=1)) diags(ind%CISO_photo14C_TOT_zint)%field_2d(1) = sum(delta_z * sum(photo14C, dim=1)) - ! Vertical integrals - CISO_Jint_13Ctot and Jint_100m_13Ctot + ! Vertical integrals - CISO_Jint_13Ctot work(:) = dtracers(di13c_ind,:) + dtracers(do13ctot_ind,:) + dtracers(zoo13C_ind,:) & + sum(dtracers(marbl_tracer_indices%auto_inds(:)%C13_ind,:), dim=1) @@ -5452,7 +5356,6 @@ subroutine store_diagnostics_ciso_interior(& end do call compute_vertical_integrals(work, delta_z, kmt, & full_depth_integral=diags(ind%CISO_Jint_13Ctot)%field_2d(1), & - near_surface_integral=diags(ind%CISO_Jint_100m_13Ctot)%field_2d(1), & integrated_terms = PO13C%sed_loss + P_Ca13CO3%sed_loss) if (abs(diags(ind%CISO_Jint_13Ctot)%field_2d(1)) .gt. CISO_Jint_13Ctot_thres) then @@ -5463,7 +5366,7 @@ subroutine store_diagnostics_ciso_interior(& return end if - ! Vertical integral - CISO_Jint_14Ctot and Jint_100m_14Ctot + ! Vertical integral - CISO_Jint_14Ctot work(:) = dtracers(di14c_ind,:) + dtracers(do14ctot_ind,:) + dtracers(zoo14C_ind,:) & + sum(dtracers(marbl_tracer_indices%auto_inds(:)%C14_ind,:), dim=1) + decay_14Ctot @@ -5475,13 +5378,12 @@ subroutine store_diagnostics_ciso_interior(& end do call compute_vertical_integrals(work, delta_z, kmt, & full_depth_integral=diags(ind%CISO_Jint_14Ctot)%field_2d(1), & - near_surface_integral=diags(ind%CISO_Jint_100m_14Ctot)%field_2d(1), & integrated_terms = PO14C%sed_loss + P_Ca14CO3%sed_loss) - if (abs(diags(ind%CISO_Jint_14ctot)%field_2d(1)) .gt. CISO_Jint_14ctot_thres) then + if (abs(diags(ind%CISO_Jint_14Ctot)%field_2d(1)) .gt. CISO_Jint_14Ctot_thres) then write(log_message,"(A,E11.3e3,A,E11.3e3)") & - 'abs(CISO_Jint_14ctot)=', abs(diags(ind%CISO_Jint_14ctot)%field_2d(1)), & - ' exceeds CISO_Jint_14ctot_thres=', CISO_Jint_14Ctot_thres + 'abs(CISO_Jint_14Ctot)=', abs(diags(ind%CISO_Jint_14Ctot)%field_2d(1)), & + ' exceeds CISO_Jint_14Ctot_thres=', CISO_Jint_14Ctot_thres call marbl_status_log%log_error(log_message, subname, ElemInd=1) return end if