Skip to content

Commit 63ed4a4

Browse files
committed
Accumulate fluxes%salt_flux_added and pass to generic_tracer_update_from_coupler
1 parent 69f7199 commit 63ed4a4

4 files changed

+40
-3
lines changed

MOM6/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ target_sources(OM3_mom6 PRIVATE
6565
MOM6/src/core/MOM_dynamics_unsplit.F90
6666
MOM6/src/core/MOM_dynamics_unsplit_RK2.F90
6767
MOM6/src/core/MOM.F90
68-
MOM6/src/core/MOM_forcing_type.F90
6968
MOM6/src/core/MOM_grid.F90
7069
MOM6/src/core/MOM_interface_heights.F90
7170
MOM6/src/core/MOM_isopycnal_slopes.F90
@@ -375,6 +374,7 @@ add_patched_source(OM3_mom6 MOM6/config_src/drivers/nuopc_cap/mom_ocean_model_nu
375374
add_patched_source(OM3_mom6 MOM6/config_src/infra/FMS2/MOM_couplertype_infra.F90)
376375
add_patched_source(OM3_mom6 MOM6/src/framework/MOM_coupler_types.F90)
377376
add_patched_source(OM3_mom6 MOM6/src/tracer/MOM_generic_tracer.F90)
377+
add_patched_source(OM3_mom6 MOM6/src/core/MOM_forcing_type.F90)
378378

379379
### Install and Export
380380

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
diff --git a/MOM6/src/core/MOM_forcing_type.F90 b/MOM6/src/core/MOM_forcing_type.F90.new
2+
index 200bbd7..fca9187 100644
3+
--- a/MOM6/src/core/MOM_forcing_type.F90
4+
+++ b/MOM6/src/core/MOM_forcing_type.F90.new
5+
@@ -2080,6 +2080,11 @@ subroutine fluxes_accumulate(flux_tmp, fluxes, G, wt2, forces)
6+
7+
fluxes%salt_flux(i,j) = wt1*fluxes%salt_flux(i,j) + wt2*flux_tmp%salt_flux(i,j)
8+
enddo ; enddo
9+
+ if (associated(fluxes%salt_flux_added) .and. associated(flux_tmp%salt_flux_added)) then
10+
+ do j=js,je ; do i=is,ie
11+
+ fluxes%salt_flux_added(i,j) = wt1*fluxes%salt_flux_added(i,j) + wt2*flux_tmp%salt_flux_added(i,j)
12+
+ enddo ; enddo
13+
+ endif
14+
if (associated(fluxes%heat_added) .and. associated(flux_tmp%heat_added)) then
15+
do j=js,je ; do i=is,ie
16+
fluxes%heat_added(i,j) = wt1*fluxes%heat_added(i,j) + wt2*flux_tmp%heat_added(i,j)

MOM6/patches/MOM_generic_tracer.F90.patch

+22-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
diff --git a/MOM6/src/tracer/MOM_generic_tracer.F90 b/MOM6/src/tracer/MOM_generic_tracer.F90.new
2-
index 131110e..7334a56 100644
2+
index 131110e..ae75b2e 100644
33
--- a/MOM6/src/tracer/MOM_generic_tracer.F90
44
+++ b/MOM6/src/tracer/MOM_generic_tracer.F90.new
5+
@@ -21,7 +21,7 @@ module MOM_generic_tracer
6+
use generic_tracer, only: generic_tracer_coupler_get, generic_tracer_coupler_set
7+
use generic_tracer, only: generic_tracer_end, generic_tracer_get_list, do_generic_tracer
8+
use generic_tracer, only: generic_tracer_update_from_bottom,generic_tracer_vertdiff_G
9+
- use generic_tracer, only: generic_tracer_coupler_accumulate
10+
+ use generic_tracer, only: generic_tracer_coupler_accumulate, generic_tracer_update_from_coupler
11+
12+
use g_tracer_utils, only: g_tracer_get_name,g_tracer_set_values,g_tracer_set_common,g_tracer_get_common
13+
use g_tracer_utils, only: g_tracer_get_next,g_tracer_type,g_tracer_is_prog,g_tracer_flux_init
514
@@ -352,7 +352,9 @@ contains
615
enddo ; enddo ; enddo
716

@@ -13,3 +22,15 @@ index 131110e..7334a56 100644
1322
do k=2,nk ; do j=jsc,jec ; do i=isc,iec
1423
if (tr_ptr(i,j,k) /= CS%tracer_land_val) then
1524
tr_ptr(i,j,k) = 0.0
25+
@@ -507,6 +509,11 @@ contains
26+
! the fluxes without coming into this subroutine.
27+
! MOM5 has to modified to conform.
28+
29+
+ !
30+
+ !Call the generic_tracer's update_from_coupler routine (convert salt_flux_added to g/m^2/sec)
31+
+ !
32+
+ call generic_tracer_update_from_coupler(G%isd, G%jsd, 1000*(US%RZ_T_to_kg_m2s*fluxes%salt_flux_added))
33+
+
34+
!
35+
!Add contribution of river to surface flux
36+
!

0 commit comments

Comments
 (0)