From 89a0034ea1124fc5c94af31be8af57e8275f7073 Mon Sep 17 00:00:00 2001 From: alperaltuntas Date: Wed, 24 Dec 2025 07:49:29 -0700 Subject: [PATCH] Enable wave diagnostics for WW3: - Introduce new diagnostics: T01, T01M, THM - By default, enable the following daily diags in monthly files for WW3 cpl hist: - Sw_Hs:Sw_t01:Sw_t0m1:Sw_thm:Sw_lamult:Sw_ustokes:Sw_vstokes. --- cime_config/namelist_definition_drv.xml | 4 +++ mediator/esmFldsExchange_cesm_mod.F90 | 41 ++++++++++++++++++++++++- mediator/fd_cesm.yaml | 12 ++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) diff --git a/cime_config/namelist_definition_drv.xml b/cime_config/namelist_definition_drv.xml index e33d9455f..39f67ce34 100644 --- a/cime_config/namelist_definition_drv.xml +++ b/cime_config/namelist_definition_drv.xml @@ -2095,6 +2095,7 @@ ALLCOMP_attributes .false. + .true. Auxiliary mediator wav2med average history output every day. Note that ww3dev will use this configuration variable and send @@ -2106,6 +2107,7 @@ MED_attributes Sw_hs_avg:Sw_Tm1_avg:Sw_thm_avg:Sw_u_avg:Sw_v_avg:Sw_ustokes_avg:Sw_vstokes_avg:Sw_tusx_avg:Sw_tusy_avg:Sw_thp0_avg:Sw_fp0_avg:Sw_phs0_avg:Sw_phs1_avg:Sw_pdir0_avg:Sw_pdir1_avg:Sw_pTm10_avg:Sw_pTm11_avg + Sw_Hs:Sw_t01:Sw_t0m1:Sw_thm:Sw_lamult:Sw_ustokes:Sw_vstokes Auxiliary mediator wav2med file1 colon delimited output fields. NOTE: these are assumed to be time averaged over a day in @@ -2137,6 +2139,7 @@ MED_attributes .false. + .true. Auxiliary mediator wav2med file1 time averaged flag for file output. If this flag is set to .false. only instantaneous output will be created in the auxiliary file. @@ -2147,6 +2150,7 @@ MED_attributes wav.24h.avg + ww3 diff --git a/mediator/esmFldsExchange_cesm_mod.F90 b/mediator/esmFldsExchange_cesm_mod.F90 index 5872b5b19..197d1e38f 100644 --- a/mediator/esmFldsExchange_cesm_mod.F90 +++ b/mediator/esmFldsExchange_cesm_mod.F90 @@ -2342,7 +2342,7 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc) call addmrg_to(compocn, 'Sw_lamult', mrg_from=compwav, mrg_fld='Sw_lamult', mrg_type='copy') end if end if - if (ocn_name == 'mpaso') then + if (ocn_name == 'mpaso' .or. ocn_name == 'mom') then !----------------------------- ! to ocn: !----------------------------- @@ -2372,6 +2372,45 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc) !----------------------------- ! to ocn: !----------------------------- + if (phase == 'advertise') then + call addfld_from(compwav, 'Sw_t0m1') + call addfld_to(compocn, 'Sw_t0m1') + else + if ( fldchk(is_local%wrap%FBExp(compocn) , 'Sw_t0m1', rc=rc) .and. & + fldchk(is_local%wrap%FBImp(compwav, compwav), 'Sw_t0m1', rc=rc)) then + call addmap_from(compwav, 'Sw_t0m1', compocn, mapbilnr_nstod, 'one', wav2ocn_map) + call addmrg_to(compocn, 'Sw_t0m1', mrg_from=compwav, mrg_fld='Sw_t0m1', mrg_type='copy') + end if + end if + !----------------------------- + ! to ocn: + !----------------------------- + if (phase == 'advertise') then + call addfld_from(compwav, 'Sw_t01') + call addfld_to(compocn, 'Sw_t01') + else + if ( fldchk(is_local%wrap%FBExp(compocn) , 'Sw_t01', rc=rc) .and. & + fldchk(is_local%wrap%FBImp(compwav, compwav), 'Sw_t01', rc=rc)) then + call addmap_from(compwav, 'Sw_t01', compocn, mapbilnr_nstod, 'one', wav2ocn_map) + call addmrg_to(compocn, 'Sw_t01', mrg_from=compwav, mrg_fld='Sw_t01', mrg_type='copy') + end if + end if + !----------------------------- + ! to ocn: + !----------------------------- + if (phase == 'advertise') then + call addfld_from(compwav, 'Sw_thm') + call addfld_to(compocn, 'Sw_thm') + else + if ( fldchk(is_local%wrap%FBExp(compocn) , 'Sw_thm', rc=rc) .and. & + fldchk(is_local%wrap%FBImp(compwav, compwav), 'Sw_thm', rc=rc)) then + call addmap_from(compwav, 'Sw_thm', compocn, mapbilnr_nstod, 'one', wav2ocn_map) + call addmrg_to(compocn, 'Sw_thm', mrg_from=compwav, mrg_fld='Sw_thm', mrg_type='copy') + end if + end if + !----------------------------- + ! to ocn: + !----------------------------- if (phase == 'advertise') then call addfld_from(compwav, 'Sw_ustokes_wavenumber_1') call addfld_to(compocn, 'Sw_ustokes_wavenumber_1') diff --git a/mediator/fd_cesm.yaml b/mediator/fd_cesm.yaml index 96489eca2..7d1c46a15 100644 --- a/mediator/fd_cesm.yaml +++ b/mediator/fd_cesm.yaml @@ -1104,6 +1104,18 @@ canonical_units: m description: ocean import - Significant wave height # + - standard_name: Sw_t0m1 + canonical_units: s + description: Wind sea mean wave period (Tm0,-1) + # + - standard_name: Sw_t01 + canonical_units: s + description: Wind sea mean wave period (Tm0,1) + # + - standard_name: Sw_thm + canonical_units: radians + description: Mean wave direction + # - standard_name: Sw_Fp canonical_units: 1 description: ocean import - Peak wave frequency