From f2ff0b1be71182e5fc299f6318551c59c143329d Mon Sep 17 00:00:00 2001 From: Michael Levy Date: Tue, 28 Aug 2018 10:13:19 -0600 Subject: [PATCH] Add _flux and _tendency to glo_avg vars This should be the last of the code clean-up commits following review of #308 --- src/marbl_glo_avg_mod.F90 | 132 ++++++++++++++-------------- src/marbl_interface.F90 | 12 +-- src/marbl_interior_tendency_mod.F90 | 127 +++++++++++++------------- src/marbl_surface_flux_mod.F90 | 12 +-- 4 files changed, 144 insertions(+), 139 deletions(-) diff --git a/src/marbl_glo_avg_mod.F90 b/src/marbl_glo_avg_mod.F90 index d9624363..3bf81b77 100644 --- a/src/marbl_glo_avg_mod.F90 +++ b/src/marbl_glo_avg_mod.F90 @@ -7,85 +7,85 @@ module marbl_glo_avg_mod implicit none public - integer (int_kind) :: glo_avg_field_ind_interior_CaCO3_bury = 0 - integer (int_kind) :: glo_avg_field_ind_interior_POC_bury = 0 - integer (int_kind) :: glo_avg_field_ind_interior_POP_bury = 0 - integer (int_kind) :: glo_avg_field_ind_interior_bSi_bury = 0 - integer (int_kind) :: glo_avg_field_ind_interior_d_POC_bury_d_bury_coeff = 0 - integer (int_kind) :: glo_avg_field_ind_interior_d_POP_bury_d_bury_coeff = 0 - integer (int_kind) :: glo_avg_field_ind_interior_d_bSi_bury_d_bury_coeff = 0 - - integer (int_kind) :: glo_avg_field_ind_surface_C_input = 0 - integer (int_kind) :: glo_avg_field_ind_surface_P_input = 0 - integer (int_kind) :: glo_avg_field_ind_surface_Si_input = 0 - - integer (int_kind) :: glo_scalar_ind_interior_POC_bury_coeff = 0 - integer (int_kind) :: glo_scalar_ind_interior_POP_bury_coeff = 0 - integer (int_kind) :: glo_scalar_ind_interior_bSi_bury_coeff = 0 + integer (int_kind) :: glo_avg_field_ind_interior_tendency_CaCO3_bury = 0 + integer (int_kind) :: glo_avg_field_ind_interior_tendency_POC_bury = 0 + integer (int_kind) :: glo_avg_field_ind_interior_tendency_POP_bury = 0 + integer (int_kind) :: glo_avg_field_ind_interior_tendency_bSi_bury = 0 + integer (int_kind) :: glo_avg_field_ind_interior_tendency_d_POC_bury_d_bury_coeff = 0 + integer (int_kind) :: glo_avg_field_ind_interior_tendency_d_POP_bury_d_bury_coeff = 0 + integer (int_kind) :: glo_avg_field_ind_interior_tendency_d_bSi_bury_d_bury_coeff = 0 + + integer (int_kind) :: glo_avg_field_ind_surface_flux_C_input = 0 + integer (int_kind) :: glo_avg_field_ind_surface_flux_P_input = 0 + integer (int_kind) :: glo_avg_field_ind_surface_flux_Si_input = 0 + + integer (int_kind) :: glo_scalar_ind_interior_tendency_POC_bury_coeff = 0 + integer (int_kind) :: glo_scalar_ind_interior_tendency_POP_bury_coeff = 0 + integer (int_kind) :: glo_scalar_ind_interior_tendency_bSi_bury_coeff = 0 contains !***************************************************************************** subroutine marbl_glo_avg_var_cnts_compute( & - glo_avg_field_cnt_interior, & - glo_avg_field_cnt_surface, & - glo_scalar_cnt_interior, & - glo_scalar_cnt_surface) + glo_avg_field_cnt_interior_tendency, & + glo_avg_field_cnt_surface_flux, & + glo_scalar_cnt_interior_tendency, & + glo_scalar_cnt_surface_flux) use marbl_settings_mod, only : ladjust_bury_coeff - integer (int_kind), intent(out) :: glo_avg_field_cnt_interior - integer (int_kind), intent(out) :: glo_avg_field_cnt_surface - integer (int_kind), intent(out) :: glo_scalar_cnt_interior - integer (int_kind), intent(out) :: glo_scalar_cnt_surface + integer (int_kind), intent(out) :: glo_avg_field_cnt_interior_tendency + integer (int_kind), intent(out) :: glo_avg_field_cnt_surface_flux + integer (int_kind), intent(out) :: glo_scalar_cnt_interior_tendency + integer (int_kind), intent(out) :: glo_scalar_cnt_surface_flux - glo_avg_field_cnt_interior = 0 - glo_avg_field_cnt_surface = 0 - glo_scalar_cnt_interior = 0 - glo_scalar_cnt_surface = 0 + glo_avg_field_cnt_interior_tendency = 0 + glo_avg_field_cnt_surface_flux = 0 + glo_scalar_cnt_interior_tendency = 0 + glo_scalar_cnt_surface_flux = 0 if (ladjust_bury_coeff) then - glo_avg_field_cnt_interior = glo_avg_field_cnt_interior + 1 - glo_avg_field_ind_interior_CaCO3_bury = glo_avg_field_cnt_interior + glo_avg_field_cnt_interior_tendency = glo_avg_field_cnt_interior_tendency + 1 + glo_avg_field_ind_interior_tendency_CaCO3_bury = glo_avg_field_cnt_interior_tendency - glo_avg_field_cnt_interior = glo_avg_field_cnt_interior + 1 - glo_avg_field_ind_interior_POC_bury = glo_avg_field_cnt_interior + glo_avg_field_cnt_interior_tendency = glo_avg_field_cnt_interior_tendency + 1 + glo_avg_field_ind_interior_tendency_POC_bury = glo_avg_field_cnt_interior_tendency - glo_avg_field_cnt_interior = glo_avg_field_cnt_interior + 1 - glo_avg_field_ind_interior_POP_bury = glo_avg_field_cnt_interior + glo_avg_field_cnt_interior_tendency = glo_avg_field_cnt_interior_tendency + 1 + glo_avg_field_ind_interior_tendency_POP_bury = glo_avg_field_cnt_interior_tendency - glo_avg_field_cnt_interior = glo_avg_field_cnt_interior + 1 - glo_avg_field_ind_interior_bSi_bury = glo_avg_field_cnt_interior + glo_avg_field_cnt_interior_tendency = glo_avg_field_cnt_interior_tendency + 1 + glo_avg_field_ind_interior_tendency_bSi_bury = glo_avg_field_cnt_interior_tendency - glo_avg_field_cnt_interior = glo_avg_field_cnt_interior + 1 - glo_avg_field_ind_interior_d_POC_bury_d_bury_coeff = glo_avg_field_cnt_interior + glo_avg_field_cnt_interior_tendency = glo_avg_field_cnt_interior_tendency + 1 + glo_avg_field_ind_interior_tendency_d_POC_bury_d_bury_coeff = glo_avg_field_cnt_interior_tendency - glo_avg_field_cnt_interior = glo_avg_field_cnt_interior + 1 - glo_avg_field_ind_interior_d_POP_bury_d_bury_coeff = glo_avg_field_cnt_interior + glo_avg_field_cnt_interior_tendency = glo_avg_field_cnt_interior_tendency + 1 + glo_avg_field_ind_interior_tendency_d_POP_bury_d_bury_coeff = glo_avg_field_cnt_interior_tendency - glo_avg_field_cnt_interior = glo_avg_field_cnt_interior + 1 - glo_avg_field_ind_interior_d_bSi_bury_d_bury_coeff = glo_avg_field_cnt_interior + glo_avg_field_cnt_interior_tendency = glo_avg_field_cnt_interior_tendency + 1 + glo_avg_field_ind_interior_tendency_d_bSi_bury_d_bury_coeff = glo_avg_field_cnt_interior_tendency - glo_avg_field_cnt_surface = glo_avg_field_cnt_surface + 1 - glo_avg_field_ind_surface_C_input = glo_avg_field_cnt_surface + glo_avg_field_cnt_surface_flux = glo_avg_field_cnt_surface_flux + 1 + glo_avg_field_ind_surface_flux_C_input = glo_avg_field_cnt_surface_flux - glo_avg_field_cnt_surface = glo_avg_field_cnt_surface + 1 - glo_avg_field_ind_surface_P_input = glo_avg_field_cnt_surface + glo_avg_field_cnt_surface_flux = glo_avg_field_cnt_surface_flux + 1 + glo_avg_field_ind_surface_flux_P_input = glo_avg_field_cnt_surface_flux - glo_avg_field_cnt_surface = glo_avg_field_cnt_surface + 1 - glo_avg_field_ind_surface_Si_input = glo_avg_field_cnt_surface + glo_avg_field_cnt_surface_flux = glo_avg_field_cnt_surface_flux + 1 + glo_avg_field_ind_surface_flux_Si_input = glo_avg_field_cnt_surface_flux - glo_scalar_cnt_interior = glo_scalar_cnt_interior + 1 - glo_scalar_ind_interior_POC_bury_coeff = glo_scalar_cnt_interior + glo_scalar_cnt_interior_tendency = glo_scalar_cnt_interior_tendency + 1 + glo_scalar_ind_interior_tendency_POC_bury_coeff = glo_scalar_cnt_interior_tendency - glo_scalar_cnt_interior = glo_scalar_cnt_interior + 1 - glo_scalar_ind_interior_POP_bury_coeff = glo_scalar_cnt_interior + glo_scalar_cnt_interior_tendency = glo_scalar_cnt_interior_tendency + 1 + glo_scalar_ind_interior_tendency_POP_bury_coeff = glo_scalar_cnt_interior_tendency - glo_scalar_cnt_interior = glo_scalar_cnt_interior + 1 - glo_scalar_ind_interior_bSi_bury_coeff = glo_scalar_cnt_interior + glo_scalar_cnt_interior_tendency = glo_scalar_cnt_interior_tendency + 1 + glo_scalar_ind_interior_tendency_bSi_bury_coeff = glo_scalar_cnt_interior_tendency end if end subroutine marbl_glo_avg_var_cnts_compute @@ -169,57 +169,57 @@ subroutine marbl_glo_avg_init_rmean_vals( & rmean_d_bSi_bury_d_bury_coeff_integral = rmean_bSi_bury_integral / parm_init_bSi_bury_coeff - glo_ind = glo_avg_field_ind_interior_CaCO3_bury + glo_ind = glo_avg_field_ind_interior_tendency_CaCO3_bury glo_avg_rmean_interior(glo_ind)%sname = 'MARBL_rmean_glo_avg_CaCO3_bury' glo_avg_rmean_interior(glo_ind)%init_val = rmean_CaCO3_bury_integral - glo_ind = glo_avg_field_ind_interior_POC_bury + glo_ind = glo_avg_field_ind_interior_tendency_POC_bury glo_avg_rmean_interior(glo_ind)%sname = 'MARBL_rmean_glo_avg_POC_bury' glo_avg_rmean_interior(glo_ind)%init_val = rmean_POC_bury_integral - glo_ind = glo_avg_field_ind_interior_POP_bury + glo_ind = glo_avg_field_ind_interior_tendency_POP_bury glo_avg_rmean_interior(glo_ind)%sname = 'MARBL_rmean_glo_avg_POP_bury' glo_avg_rmean_interior(glo_ind)%init_val = rmean_POP_bury_integral - glo_ind = glo_avg_field_ind_interior_bSi_bury + glo_ind = glo_avg_field_ind_interior_tendency_bSi_bury glo_avg_rmean_interior(glo_ind)%sname = 'MARBL_rmean_glo_avg_bSi_bury' glo_avg_rmean_interior(glo_ind)%init_val = rmean_bSi_bury_integral - glo_ind = glo_avg_field_ind_interior_d_POC_bury_d_bury_coeff + glo_ind = glo_avg_field_ind_interior_tendency_d_POC_bury_d_bury_coeff glo_avg_rmean_interior(glo_ind)%sname = 'MARBL_rmean_glo_avg_d_POC_bury_d_bury_coeff' glo_avg_rmean_interior(glo_ind)%init_val = rmean_d_POC_bury_d_bury_coeff_integral - glo_ind = glo_avg_field_ind_interior_d_POP_bury_d_bury_coeff + glo_ind = glo_avg_field_ind_interior_tendency_d_POP_bury_d_bury_coeff glo_avg_rmean_interior(glo_ind)%sname = 'MARBL_rmean_glo_avg_d_POP_bury_d_bury_coeff' glo_avg_rmean_interior(glo_ind)%init_val = rmean_d_POP_bury_d_bury_coeff_integral - glo_ind = glo_avg_field_ind_interior_d_bSi_bury_d_bury_coeff + glo_ind = glo_avg_field_ind_interior_tendency_d_bSi_bury_d_bury_coeff glo_avg_rmean_interior(glo_ind)%sname = 'MARBL_rmean_glo_avg_d_bSi_bury_d_bury_coeff' glo_avg_rmean_interior(glo_ind)%init_val = rmean_d_bSi_bury_d_bury_coeff_integral - glo_ind = glo_avg_field_ind_surface_C_input + glo_ind = glo_avg_field_ind_surface_flux_C_input glo_avg_rmean_surface(glo_ind)%sname = 'MARBL_rmean_glo_avg_C_input' glo_avg_rmean_surface(glo_ind)%init_val = rmean_C_input_integral - glo_ind = glo_avg_field_ind_surface_P_input + glo_ind = glo_avg_field_ind_surface_flux_P_input glo_avg_rmean_surface(glo_ind)%sname = 'MARBL_rmean_glo_avg_P_input' glo_avg_rmean_surface(glo_ind)%init_val = rmean_P_input_integral - glo_ind = glo_avg_field_ind_surface_Si_input + glo_ind = glo_avg_field_ind_surface_flux_Si_input glo_avg_rmean_surface(glo_ind)%sname = 'MARBL_rmean_glo_avg_Si_input' glo_avg_rmean_surface(glo_ind)%init_val = rmean_Si_input_integral - glo_ind = glo_scalar_ind_interior_POC_bury_coeff + glo_ind = glo_scalar_ind_interior_tendency_POC_bury_coeff glo_scalar_rmean_interior(glo_ind)%sname = 'MARBL_rmean_glo_scalar_POC_bury_coeff' glo_scalar_rmean_interior(glo_ind)%init_val = parm_init_POC_bury_coeff - glo_ind = glo_scalar_ind_interior_POP_bury_coeff + glo_ind = glo_scalar_ind_interior_tendency_POP_bury_coeff glo_scalar_rmean_interior(glo_ind)%sname = 'MARBL_rmean_glo_scalar_POP_bury_coeff' glo_scalar_rmean_interior(glo_ind)%init_val = parm_init_POP_bury_coeff - glo_ind = glo_scalar_ind_interior_bSi_bury_coeff + glo_ind = glo_scalar_ind_interior_tendency_bSi_bury_coeff glo_scalar_rmean_interior(glo_ind)%sname = 'MARBL_rmean_glo_scalar_bSi_bury_coeff' glo_scalar_rmean_interior(glo_ind)%init_val = parm_init_bSi_bury_coeff end if diff --git a/src/marbl_interface.F90 b/src/marbl_interface.F90 index d5461210..2b4f71fa 100644 --- a/src/marbl_interface.F90 +++ b/src/marbl_interface.F90 @@ -923,12 +923,12 @@ subroutine set_global_scalars(this, field_source) character(len=*), intent(in) :: field_source ! 'interior_tendency' or 'surface_flux`' if (field_source == 'interior_tendency') then - call marbl_interior_tendency_adjust_bury_coeff( & - marbl_particulate_share = this%particulate_share, & - glo_avg_rmean_interior = this%glo_avg_rmean_interior, & - glo_avg_rmean_surface = this%glo_avg_rmean_surface, & - glo_scalar_rmean_interior = this%glo_scalar_rmean_interior, & - glo_scalar_interior = this%glo_scalar_interior) + call marbl_interior_tendency_adjust_bury_coeff( & + marbl_particulate_share = this%particulate_share, & + glo_avg_rmean_interior_tendency = this%glo_avg_rmean_interior, & + glo_avg_rmean_surface_flux = this%glo_avg_rmean_surface, & + glo_scalar_rmean_interior_tendency = this%glo_scalar_rmean_interior, & + glo_scalar_interior_tendency = this%glo_scalar_interior) end if end subroutine set_global_scalars diff --git a/src/marbl_interior_tendency_mod.F90 b/src/marbl_interior_tendency_mod.F90 index 9bd22cf5..2c56d30f 100644 --- a/src/marbl_interior_tendency_mod.F90 +++ b/src/marbl_interior_tendency_mod.F90 @@ -617,51 +617,54 @@ end subroutine compute_PAR !*********************************************************************** subroutine marbl_interior_tendency_adjust_bury_coeff(marbl_particulate_share, & - glo_avg_rmean_interior, glo_avg_rmean_surface, & - glo_scalar_rmean_interior, glo_scalar_interior) - - use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_CaCO3_bury - use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_POC_bury - use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_POP_bury - use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_bSi_bury - use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_d_POC_bury_d_bury_coeff - use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_d_POP_bury_d_bury_coeff - use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_d_bSi_bury_d_bury_coeff - use marbl_glo_avg_mod, only : glo_avg_field_ind_surface_C_input - use marbl_glo_avg_mod, only : glo_avg_field_ind_surface_P_input - use marbl_glo_avg_mod, only : glo_avg_field_ind_surface_Si_input - use marbl_glo_avg_mod, only : glo_scalar_ind_interior_POC_bury_coeff - use marbl_glo_avg_mod, only : glo_scalar_ind_interior_POP_bury_coeff - use marbl_glo_avg_mod, only : glo_scalar_ind_interior_bSi_bury_coeff + glo_avg_rmean_interior_tendency, glo_avg_rmean_surface_flux, & + glo_scalar_rmean_interior_tendency, glo_scalar_interior_tendency) + + use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_tendency_CaCO3_bury + use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_tendency_POC_bury + use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_tendency_POP_bury + use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_tendency_bSi_bury + use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_tendency_d_POC_bury_d_bury_coeff + use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_tendency_d_POP_bury_d_bury_coeff + use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_tendency_d_bSi_bury_d_bury_coeff + use marbl_glo_avg_mod, only : glo_avg_field_ind_surface_flux_C_input + use marbl_glo_avg_mod, only : glo_avg_field_ind_surface_flux_P_input + use marbl_glo_avg_mod, only : glo_avg_field_ind_surface_flux_Si_input + use marbl_glo_avg_mod, only : glo_scalar_ind_interior_tendency_POC_bury_coeff + use marbl_glo_avg_mod, only : glo_scalar_ind_interior_tendency_POP_bury_coeff + use marbl_glo_avg_mod, only : glo_scalar_ind_interior_tendency_bSi_bury_coeff type (marbl_particulate_share_type), intent(inout) :: marbl_particulate_share - type (marbl_running_mean_0d_type) , intent(in) :: glo_avg_rmean_interior(:) - type (marbl_running_mean_0d_type) , intent(in) :: glo_avg_rmean_surface(:) - type (marbl_running_mean_0d_type) , intent(in) :: glo_scalar_rmean_interior(:) - real (r8) , intent(inout) :: glo_scalar_interior(:) + type (marbl_running_mean_0d_type) , intent(in) :: glo_avg_rmean_interior_tendency(:) + type (marbl_running_mean_0d_type) , intent(in) :: glo_avg_rmean_surface_flux(:) + type (marbl_running_mean_0d_type) , intent(in) :: glo_scalar_rmean_interior_tendency(:) + real (r8) , intent(inout) :: glo_scalar_interior_tendency(:) !----------------------------------------------------------------------- if (.not. ladjust_bury_coeff) return associate( & - POC_bury_coeff => marbl_particulate_share%POC_bury_coeff, & - POP_bury_coeff => marbl_particulate_share%POP_bury_coeff, & - bSi_bury_coeff => marbl_particulate_share%bSi_bury_coeff, & - rmean_CaCO3_bury_avg => glo_avg_rmean_interior(glo_avg_field_ind_interior_CaCO3_bury)%rmean, & - rmean_POC_bury_avg => glo_avg_rmean_interior(glo_avg_field_ind_interior_POC_bury)%rmean, & - rmean_POP_bury_avg => glo_avg_rmean_interior(glo_avg_field_ind_interior_POP_bury)%rmean, & - rmean_bSi_bury_avg => glo_avg_rmean_interior(glo_avg_field_ind_interior_bSi_bury)%rmean, & - rmean_POC_bury_deriv_avg => glo_avg_rmean_interior(glo_avg_field_ind_interior_d_POC_bury_d_bury_coeff)%rmean, & - rmean_POP_bury_deriv_avg => glo_avg_rmean_interior(glo_avg_field_ind_interior_d_POP_bury_d_bury_coeff)%rmean, & - rmean_bSi_bury_deriv_avg => glo_avg_rmean_interior(glo_avg_field_ind_interior_d_bSi_bury_d_bury_coeff)%rmean, & - rmean_C_input_avg => glo_avg_rmean_surface(glo_avg_field_ind_surface_C_input)%rmean, & - rmean_P_input_avg => glo_avg_rmean_surface(glo_avg_field_ind_surface_P_input)%rmean, & - rmean_Si_input_avg => glo_avg_rmean_surface(glo_avg_field_ind_surface_Si_input)%rmean, & - rmean_POC_bury_coeff => glo_scalar_rmean_interior(glo_scalar_ind_interior_POC_bury_coeff)%rmean, & - rmean_POP_bury_coeff => glo_scalar_rmean_interior(glo_scalar_ind_interior_POP_bury_coeff)%rmean, & - rmean_bSi_bury_coeff => glo_scalar_rmean_interior(glo_scalar_ind_interior_bSi_bury_coeff)%rmean & - ) + POC_bury_coeff => marbl_particulate_share%POC_bury_coeff, & + POP_bury_coeff => marbl_particulate_share%POP_bury_coeff, & + bSi_bury_coeff => marbl_particulate_share%bSi_bury_coeff, & + rmean_CaCO3_bury_avg => glo_avg_rmean_interior_tendency(glo_avg_field_ind_interior_tendency_CaCO3_bury)%rmean, & + rmean_POC_bury_avg => glo_avg_rmean_interior_tendency(glo_avg_field_ind_interior_tendency_POC_bury)%rmean, & + rmean_POP_bury_avg => glo_avg_rmean_interior_tendency(glo_avg_field_ind_interior_tendency_POP_bury)%rmean, & + rmean_bSi_bury_avg => glo_avg_rmean_interior_tendency(glo_avg_field_ind_interior_tendency_bSi_bury)%rmean, & + rmean_POC_bury_deriv_avg => & + glo_avg_rmean_interior_tendency(glo_avg_field_ind_interior_tendency_d_POC_bury_d_bury_coeff)%rmean, & + rmean_POP_bury_deriv_avg => & + glo_avg_rmean_interior_tendency(glo_avg_field_ind_interior_tendency_d_POP_bury_d_bury_coeff)%rmean, & + rmean_bSi_bury_deriv_avg => & + glo_avg_rmean_interior_tendency(glo_avg_field_ind_interior_tendency_d_bSi_bury_d_bury_coeff)%rmean, & + rmean_C_input_avg => glo_avg_rmean_surface_flux(glo_avg_field_ind_surface_flux_C_input)%rmean, & + rmean_P_input_avg => glo_avg_rmean_surface_flux(glo_avg_field_ind_surface_flux_P_input)%rmean, & + rmean_Si_input_avg => glo_avg_rmean_surface_flux(glo_avg_field_ind_surface_flux_Si_input)%rmean, & + rmean_POC_bury_coeff => glo_scalar_rmean_interior_tendency(glo_scalar_ind_interior_tendency_POC_bury_coeff)%rmean, & + rmean_POP_bury_coeff => glo_scalar_rmean_interior_tendency(glo_scalar_ind_interior_tendency_POP_bury_coeff)%rmean, & + rmean_bSi_bury_coeff => glo_scalar_rmean_interior_tendency(glo_scalar_ind_interior_tendency_bSi_bury_coeff)%rmean & + ) ! Newton's method for POC_bury(coeff) + CaCO3_bury - C_input = 0 @@ -681,9 +684,9 @@ subroutine marbl_interior_tendency_adjust_bury_coeff(marbl_particulate_share, & ! copy computed bury coefficients into output argument - glo_scalar_interior(glo_scalar_ind_interior_POC_bury_coeff) = POC_bury_coeff - glo_scalar_interior(glo_scalar_ind_interior_POP_bury_coeff) = POP_bury_coeff - glo_scalar_interior(glo_scalar_ind_interior_bSi_bury_coeff) = bSi_bury_coeff + glo_scalar_interior_tendency(glo_scalar_ind_interior_tendency_POC_bury_coeff) = POC_bury_coeff + glo_scalar_interior_tendency(glo_scalar_ind_interior_tendency_POP_bury_coeff) = POP_bury_coeff + glo_scalar_interior_tendency(glo_scalar_ind_interior_tendency_bSi_bury_coeff) = bSi_bury_coeff end associate @@ -2561,13 +2564,13 @@ subroutine compute_particulate_terms(k, domain, & use marbl_settings_mod, only : o2_sf_o2_range_hi use marbl_settings_mod, only : o2_sf_o2_range_lo use marbl_settings_mod, only : o2_sf_val_lo_o2 - use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_CaCO3_bury - use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_POC_bury - use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_POP_bury - use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_bSi_bury - use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_d_POC_bury_d_bury_coeff - use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_d_POP_bury_d_bury_coeff - use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_d_bSi_bury_d_bury_coeff + use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_tendency_CaCO3_bury + use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_tendency_POC_bury + use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_tendency_POP_bury + use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_tendency_bSi_bury + use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_tendency_d_POC_bury_d_bury_coeff + use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_tendency_d_POP_bury_d_bury_coeff + use marbl_glo_avg_mod, only : glo_avg_field_ind_interior_tendency_d_bSi_bury_d_bury_coeff use marbl_interior_tendency_share_mod, only : marbl_interior_tendency_share_export_particulate integer (int_kind) , intent(in) :: k ! vertical model level @@ -3014,18 +3017,20 @@ subroutine compute_particulate_terms(k, domain, & POP%sed_loss(k) = POP%to_floor * min(POM_bury_frac_max, POP_bury_coeff * bury_frac) if (ladjust_bury_coeff) then - glo_avg_fields_interior(glo_avg_field_ind_interior_POC_bury) = POC%sed_loss(k) + glo_avg_fields_interior(glo_avg_field_ind_interior_tendency_POC_bury) = POC%sed_loss(k) if (POC_bury_coeff * bury_frac < POM_bury_frac_max) then - glo_avg_fields_interior(glo_avg_field_ind_interior_d_POC_bury_d_bury_coeff) = POC%to_floor * bury_frac + glo_avg_fields_interior(glo_avg_field_ind_interior_tendency_d_POC_bury_d_bury_coeff) = & + POC%to_floor * bury_frac else - glo_avg_fields_interior(glo_avg_field_ind_interior_d_POC_bury_d_bury_coeff) = c0 + glo_avg_fields_interior(glo_avg_field_ind_interior_tendency_d_POC_bury_d_bury_coeff) = c0 endif - glo_avg_fields_interior(glo_avg_field_ind_interior_POP_bury) = POP%sed_loss(k) + glo_avg_fields_interior(glo_avg_field_ind_interior_tendency_POP_bury) = POP%sed_loss(k) if (POP_bury_coeff * bury_frac < POM_bury_frac_max) then - glo_avg_fields_interior(glo_avg_field_ind_interior_d_POP_bury_d_bury_coeff) = POP%to_floor * bury_frac + glo_avg_fields_interior(glo_avg_field_ind_interior_tendency_d_POP_bury_d_bury_coeff) = & + POP%to_floor * bury_frac else - glo_avg_fields_interior(glo_avg_field_ind_interior_d_POP_bury_d_bury_coeff) = c0 + glo_avg_fields_interior(glo_avg_field_ind_interior_tendency_d_POP_bury_d_bury_coeff) = c0 endif endif @@ -3051,11 +3056,11 @@ subroutine compute_particulate_terms(k, domain, & POP%to_floor = POP%sflux_out(k) + POP%hflux_out(k) if (ladjust_bury_coeff) then - glo_avg_fields_interior(glo_avg_field_ind_interior_POC_bury) = c0 - glo_avg_fields_interior(glo_avg_field_ind_interior_d_POC_bury_d_bury_coeff) = c0 + glo_avg_fields_interior(glo_avg_field_ind_interior_tendency_POC_bury) = c0 + glo_avg_fields_interior(glo_avg_field_ind_interior_tendency_d_POC_bury_d_bury_coeff) = c0 - glo_avg_fields_interior(glo_avg_field_ind_interior_POP_bury) = c0 - glo_avg_fields_interior(glo_avg_field_ind_interior_d_POP_bury_d_bury_coeff) = c0 + glo_avg_fields_interior(glo_avg_field_ind_interior_tendency_POP_bury) = c0 + glo_avg_fields_interior(glo_avg_field_ind_interior_tendency_d_POP_bury_d_bury_coeff) = c0 endif endif @@ -3076,11 +3081,11 @@ subroutine compute_particulate_terms(k, domain, & endif if (ladjust_bury_coeff) then - glo_avg_fields_interior(glo_avg_field_ind_interior_bSi_bury) = P_SiO2%sed_loss(k) + glo_avg_fields_interior(glo_avg_field_ind_interior_tendency_bSi_bury) = P_SiO2%sed_loss(k) if (bSi_bury_coeff * bury_frac < bSi_bury_frac_max) then - glo_avg_fields_interior(glo_avg_field_ind_interior_d_bSi_bury_d_bury_coeff) = P_SiO2%to_floor * bury_frac + glo_avg_fields_interior(glo_avg_field_ind_interior_tendency_d_bSi_bury_d_bury_coeff) = P_SiO2%to_floor * bury_frac else - glo_avg_fields_interior(glo_avg_field_ind_interior_d_bSi_bury_d_bury_coeff) = c0 + glo_avg_fields_interior(glo_avg_field_ind_interior_tendency_d_bSi_bury_d_bury_coeff) = c0 endif endif @@ -3102,7 +3107,7 @@ subroutine compute_particulate_terms(k, domain, & endif if (ladjust_bury_coeff) then - glo_avg_fields_interior(glo_avg_field_ind_interior_CaCO3_bury) = P_CaCO3%sed_loss(k) + glo_avg_fields_interior(glo_avg_field_ind_interior_tendency_CaCO3_bury) = P_CaCO3%sed_loss(k) endif !---------------------------------------------------------------------------------- diff --git a/src/marbl_surface_flux_mod.F90 b/src/marbl_surface_flux_mod.F90 index 33134704..7beb6161 100644 --- a/src/marbl_surface_flux_mod.F90 +++ b/src/marbl_surface_flux_mod.F90 @@ -83,9 +83,9 @@ subroutine marbl_surface_flux_compute( & use marbl_settings_mod, only : xkw_coeff use marbl_surface_flux_share_mod, only : marbl_surface_flux_share_export_variables use marbl_ciso_surface_flux_mod, only : marbl_ciso_surface_flux_compute - use marbl_glo_avg_mod, only : glo_avg_field_ind_surface_C_input - use marbl_glo_avg_mod, only : glo_avg_field_ind_surface_P_input - use marbl_glo_avg_mod, only : glo_avg_field_ind_surface_Si_input + use marbl_glo_avg_mod, only : glo_avg_field_ind_surface_flux_C_input + use marbl_glo_avg_mod, only : glo_avg_field_ind_surface_flux_P_input + use marbl_glo_avg_mod, only : glo_avg_field_ind_surface_flux_Si_input integer (int_kind) , intent(in) :: num_elements type(marbl_surface_flux_forcing_indexing_type), intent(in) :: surface_flux_forcing_ind @@ -461,13 +461,13 @@ subroutine marbl_surface_flux_compute( & sio3_ind => marbl_tracer_indices%sio3_ind & ) - glo_avg_fields_surface(:,glo_avg_field_ind_surface_C_input) = & + glo_avg_fields_surface(:,glo_avg_field_ind_surface_flux_C_input) = & ext_C_flux(:) + surface_fluxes(:,dic_ind) - flux_co2(:) + surface_fluxes(:,doc_ind) + surface_fluxes(:,docr_ind) - glo_avg_fields_surface(:,glo_avg_field_ind_surface_P_input) = & + glo_avg_fields_surface(:,glo_avg_field_ind_surface_flux_P_input) = & ext_P_flux(:) + surface_fluxes(:,po4_ind) + surface_fluxes(:,dop_ind) + surface_fluxes(:,dopr_ind) - glo_avg_fields_surface(:,glo_avg_field_ind_surface_Si_input) = & + glo_avg_fields_surface(:,glo_avg_field_ind_surface_flux_Si_input) = & ext_Si_flux(:) + surface_fluxes(:,sio3_ind) end associate end if